Мазмұны:

Beargardian: 5 қадам
Beargardian: 5 қадам

Бейне: Beargardian: 5 қадам

Бейне: Beargardian: 5 қадам
Бейне: Teddy Bear SCP-6330 Guardians of the Innocent (SCP Animation) 2024, Қараша
Anonim
Бергардиан
Бергардиан

Сәлем балалар мектепке, маған жоба туралы идея қажет болды. Мен ойладым, бұл таңқурай пи бар жоба болуы керек және ол жергілікті. Кенеттен менде керемет идея пайда болды, мен бұл идеяны қалай алғанымды сұрамаймын, бірақ мен нәресте мониторын жаңарту туралы ойладым. Бұл идея туралы бір сәт ойланыңыз, нәресте мониторларының көпшілігінде баланың бөлмесін тыңдау функциясы бар.

Ерекшеліктері

  • Түстері реттелетін шағын жарық шоуы
  • Сізге тірі суреттерді көрсететін камера
  • Музыка ойнауға арналған динамик
  • Баланың қозғалысын түсіру үшін сенсорлар
  • Мұның бәрі сайтта көрсетіледі

Қысқа ақпарат

Мұны қысқаша нұсқада түсіндірейік. Бізге веб -сайт қажет, мен бұл жобада мен Flask -ты қолданамын, бізге мәліметтер базасы қажет, мен mysql -ді қолданамын, сонымен қатар бұл аппараттық құралмен жұмыс істейтін сценарий, және бұл python (3) -де және соңғы рет серверді орнату қажет. бұл PI бойынша nginx болар еді.

Бізге не керек

  • Таңқурай Pi 3
  • Басқыш 28BYJ
  • ULN2003 қадамдық модуль драйвері
  • 330 Ом 3 резисторы бар rgb сымы
  • Pi NoIR камерасы V2
  • HC-SR04 ультрадыбыстық сенсоры
  • Ardiuno микро модулі
  • MAX98357A
  • Динамик 8 Ом
  • Және аю сатып алуды ұмытпаңыз

Таңқурай pi орнату ----------------------------------------------- -------------------------------------------------- --------------------------

Алдымен біз Pi орнатуымыз керек. Шпатлевка арқылы кіруді бастаңыз, егер сізде шпатлук болмаса, мен сізге жүктеуді ұсынамын, ssh көмегімен Pi статикалық IP -ін теріңіз және сіз онымен жүресіз. Егер сізге Raspberry Pi орнату қажет болса, онда менде жаман жаңалық болды, мен бұл жобада түсіндірмеймін.

Пакеттерді орнатыңыз

sudo apt жаңарту

sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3

Виртуалды орта

python3 -m pip install -pip setuptools дөңгелегінің виртуалды жүйесін жаңарту

mkdir {your project foldername} && cd {your project foldername} python3 -m venv --system-site-packages env source env/bin/activate python -m pip mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask- MySQL mysql-Connector-python passlib

Енді сіз өзіңіздің қалтаңыздағы git репозиторийін клондауыңыз керек

github.com/NMCT-S2-Project-I/Project-I.git

Егер сіз жоба қалтасына қарасаңыз, сізде 5 қалтаны көру керек

  • конф
  • орт
  • сенсор
  • шаршы метр
  • желі

Дерекқор

sudo systemctl күйі mysql

ss -lt | grep mysql sudo mysql

дерекқорда барлық артықшылықтары бар пайдаланушыны құрыңыз және дерекқорды жасаңыз

'password' арқылы анықталған 'user'@'localhost' пайдаланушысын жасау;

мәліметтер базасының атауын құру; сіздің дерекқорыңыздың атауындағы барлық артықшылықтарды беріңіз.* грант опциясымен 'user'@'localhost';

Серверге арналған конфигурациялық файлдар

Uwsgi-flask.ini-де сіз 'module =…' '' module = web: app '-ке және сіз жасаған виртуалды желіге жолды өзгертесіз. Басқа файлдарда каталогтың нақты абсолюттік жолдарының жолдарын өзгерту қажет.

Файлдарды дұрыс орынға қоюға болатынын түсінгеннен кейін.

sudo cp conf/project1-*. service/etc/systemd/system/

sudo systemctl демонды қайта жүктеу sudo systemctl start project1-* sudo systemctl күй жобасы1-*

енді біз оны қол жетімді етуіміз керек

sudo cp conf/nginx/etc/nginx/sites-available/project1

sudo rm/etc/nginx/sites-enabled/default sudo ln -s/etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project1 sudo systemctl nginx.service sudo nginx -t

Егер бәрі ойдағыдай болса, сіз осы команданың көмегімен сәлем әлеміне ие боласыз

wget -qO - жергілікті хост

Орындалды! Бұл сіздің жүйені іске қосуға мүмкіндік беретін бөлігі …

1 -қадам: Аппараттық құралдарды Pi -ге қосу

Аппараттық құралдарды Pi -ге қосу
Аппараттық құралдарды Pi -ге қосу

BCM көмегімен

аудио MAX98357A

  • BCK - GPIO 18
  • GPIO 21 деректері
  • LRCK - GPIO 19

жарық

  • қызыл GPIO 17
  • GPIO 27 үшін жасыл
  • көк GPIO 22

мотор модулі ULN2003

  • 1 -шi GPIO 5 -ке жалғаңыз
  • 2 -ші GPIO 6 -ға бекітіңіз
  • GPIO 13 -ке 3 -түйреуіш
  • 4 -ші GPIO 26 -ға бекітіңіз

микро

D0 - GPIO 21

ультрадыбыстық сенсор

  • GPIO 16 іске қосыңыз
  • GPIO 20 жаңғырығы

2 -қадам: Негізгі бағдарламаларды кодтау

Мен бұл жерде егжей -тегжейлі білмеймін, бірақ сіз менің кодты github -да тексере аласыз.

Бастау үшін мен html мен CSS индексін, логинді, тіркеуді, негізгі экранды, музыканы, музыканы, қондырманы, жарықты, камераны, камера параметрлерін, сенсорды, бақылау тақтасының бетін жасадым. Html файлдары үлгілерде және CSS файлдары static/css қалтасында болуы керек. Сіз CSS -ті өзіңіз қалағандай теңшей аласыз.

Егер сіз бұл бөлікті жасасаңыз, колбаны орнатуыңыз керек. Флакон сәлем әлемінің мысалын қолдануға оңай

алдымен # импорт колбасы

колбадан импорттау * @app.route ('/') def index (): render_template қайтару ('index.html')

Енді менің кодымда бұл толтырылған, сізге тек дерекқордың пайдаланушысы мен құпия сөзін өзгерту қажет, және сіз, әрине, github -да таба алатын дерекқорды жасаңыз.

3 -қадам: Мәліметтер қорын құру

Мәліметтер қорын құру
Мәліметтер қорын құру

Нағыз жанкүйерлер үшін мен сізге сол дерекқорды қалай құру керектігін айтамын.

Егер сіз бірінші қадамды жасамаған болсаңыз, алдымен бізге мәліметтер базасын құру керек.

beargardian мәліметтер базасын құру;

Сіз мұны жасағаннан кейін кестені mysql workbench немесе phpadmin -де жасайсыз

пайдаланушы кестесі бар

  • Қолданушының ID
  • аты
  • тек
  • электрондық пошта
  • әкесінің аты
  • sha1 көмегімен құпия сөз
  • пайдаланушы қалтасы
  • музыкалық музыка (int)
  • ойын жарығы (int)
  • ойнату жазбасы (int)

музыкалық үстел бар

  • musicID
  • өлең
  • жол
  • пайдаланушы қалтасы
  • күй
  • көлемі

жазу кестесі бар

  • жазу ID
  • жол
  • пайдаланушы қалтасы
  • уақыт
  • күн

түсті кесте бар

  • colorID
  • қызыл
  • жасыл
  • көк
  • жарықтық
  • Қолданушының ID

аю үстелі бар

  • bearID (ондық (8))
  • userID әдепкі нөлі
  • есім

сенсорлық үстел бар

  • сенсор ID
  • қашықтық
  • микро
  • аю ID
  • уақыт
  • күн
  • ұйқы уақыты

Енді сіз дерекқорды сәтті құрдыңыз, аппараттық құралға көшейік.

4 -қадам: аппараттық құралдарды кодтау

Мен аздап код көрсетемін және неге олай еткенімді айтамын.

Мен жіптерді қолдануды бастау үшін бұл жобада абсолютті болу керек. Жіп дегеніміз не, хмм жақсы сұрақ! Питонға қауіп төндіретіні - бірден бірнеше бағдарламаны іске қосу. Мәселен, егер сіз түсін өзгертсеңіз, сіз де жаза аласыз. Қолдану оңай, уайымдамаңыз.

_threaddef функциясының атын импорттау (бірдеңе, бірдеңе_қалпында): іске қосылатын код

_thread.start_new_thread (функция_атауы

Егер сіз менің бағдарламама қарасаңыз, logger.info ('…') көрдіңіз. Бұл басып шығару функциясы, бірақ әлдеқайда жақсы, өйткені Pi -де сіз материалдарды басып шығара алмайсыз, сондықтан мен файл жасаймын және оны сол жерде басып шығарамын. Yoe журнал файлын осы кодпен орната алады.

logger = logging.getLogger (_ аты _) logger.setLevel (logging. INFO) # файл өңдеушіні өңдеу = logging. FileHandler ('logger.log') өңдегіші.setLevel (logging. INFO)

# тіркеу форматын жасаңыз

форматтаушы = журналға кіру

# өңдеушілерді тіркеушіге қосыңыз

logger.addHandler (өңдеуші)

logger.info ('жабдықты іске қосу / n ---------------------------------------')

әрі қарай кодтың өзінде мен бәрін түсіндіремін.

Ұсынылған: