Мазмұны:

Көңіл-күй динамигі- қоршаған орта температурасына негізделген көңіл-күйге арналған күшті динамик: 9 қадам
Көңіл-күй динамигі- қоршаған орта температурасына негізделген көңіл-күйге арналған күшті динамик: 9 қадам

Бейне: Көңіл-күй динамигі- қоршаған орта температурасына негізделген көңіл-күйге арналған күшті динамик: 9 қадам

Бейне: Көңіл-күй динамигі- қоршаған орта температурасына негізделген көңіл-күйге арналған күшті динамик: 9 қадам
Бейне: Кемпингке арналған 10 таңғажайып пайдалы өнертабыстар! Сізге қажет болуы мүмкін! 2024, Шілде
Anonim
Көңіл-күй динамигі- қоршаған орта температурасына негізделген көңіл-күй музыкасын ойнатуға арналған күшті динамик
Көңіл-күй динамигі- қоршаған орта температурасына негізделген көңіл-күй музыкасын ойнатуға арналған күшті динамик

Сәлем!

MCT Howest Kortrijk мектебіндегі менің жобам үшін мен көңіл -күй динамигін жасадым, бұл сенсорлы, ақылды Bluetooth динамигі бар құрылғы, СКД және WS2812b диодты жолағы бар. Динамик фондық музыканы температураға байланысты ойнайды, бірақ оны қарапайым Bluetooth ретінде де қолдануға болады. спикер Барлығы Raspberry Pi -де жұмыс істейді (мәліметтер базасы, веб -сервер, Backend).

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

Бұл нұсқаулық менің бірінші жазғаным, сондықтан егер кез келген кастор болса, мен оларға мүмкіндігінше тез жауап беруге тырысамын!

Менің GitHub:

1 -қадам: Жабдықтар

Raspberry Pi 3B және 16 ГБ SD картасы

Менің бүкіл жобам конфигурацияланған суреті бар Raspberry Pi 3B -те жұмыс істейді, мен оны кейінірек түсіндіремін (4 -қадам: Raspberry Pi орнату)

СКД дисплейі 16х2

Мен температураны, жарықтықты және IP мекенжайды басып шығару үшін негізгі СКД дисплейін қолдандым.

Мәліметтер парағы:

DS18B20 температура сенсоры

DS18B20-бұл температураны өлшейтін бір сымды сенсор, Maxim Integrated шығарады. DS18B20 сенсорларының 2 түрі бар, тек компоненті (мен қолдандым) және су өткізбейтін нұсқасы, ол әлдеқайда үлкен, бірақ бұл менің жобам үшін қажет емес, сондықтан мен тек компонентті қолдандым. Сенсор температураны -55 ° C - +125 ° C (-67 ° F - +257 ° F) диапазонында өлшей алады және -10 ° C - +85 ° C аралығында 0,5 ° C дәлдікке ие. Ол сондай -ақ 9 биттен 12 битке дейін бағдарламаланатын ажыратымдылыққа ие.

Мәліметтер парағы:

MCP3008

Менің LDR мен PIR-сенсорымнан алынған мәліметтерді оқу үшін мен SPI интерфейсі бар цифрлық түрлендіргішке 8 каналды 10 каналды MCP3008 қолдандым және бағдарламалау өте оңай.

Мәліметтер парағы:

PIR қозғалыс сенсоры

Менің бөлмеме кіретін және кететін біреу бар екенін анықтау үшін мен пассивті инфрақызыл сенсорды қолдандым, себебі олар қолдануға оңай және кішкентай.

Мәліметтер парағы:

LDR

Мен фоторезисторды немесе LDR (жарықтың төмендеуіне төзімділік немесе жарыққа тәуелді резистор) бөлменің жарықтылығын анықтау үшін қолдандым. Сонымен қатар қараңғыда Ledstripімді қосу үшін.

Динамик - 3 »Диаметрі - 4 Ом 3 Ватт

Бұл кернеу мен амперді есептегеннен кейін таңдаған динамик конусы және бұл менің Adafruit компаниясы шығарған Raspberry Pi жобасына өте жақсы сәйкес келді.

Шолу:

MAX98357 I2S Class-D моно күшейткіші

Бұл динамикпен бірге келетін күшейткіш, ол тек күшейткіш қана емес, сонымен қатар I2S цифрлық аналогты түрлендіргіші, сондықтан ол менің динамик пен аудио жүйеге өте жақсы сәйкес келеді.

Шолу:

Мәліметтер парағы:

Ардуино Уно

Arduino Uno-бұл Arduino.cc шығарған Microchip ATmega328P микроконтроллеріне негізделген ашық бастапқы микроконтроллер тақтасы. Uno тақтасында 14 сандық түйреуіш, 6 аналогтық түйреуіш бар және Arduino IDE бағдарламалық жасақтамасымен толық бағдарламаланған.

Шолу:

Деңгей ауыстырғыш

Бұл Arduino Uno мен Raspberry Pi арасындағы байланысқа және әр түрлі кернеулерге, Arduino: 5V және Raspberry Pi: 3.3V қамқорлық жасайтын шағын тақта. Бұл қажет, себебі жарық диодты жол Arduino -ға қосылған және сол жерде жұмыс істейді, ал қалған барлық заттар Raspberry Pi -де жұмыс істейді.

WS2812B - жолақ

Бұл 60 RGB светодиодтары бар жолақ (егер сіз қаласаңыз, көбірек RGB шамдары бар ұзын жолақтарды сатып алуға болады). Бұл менің жағдайда Arduino Uno -ға қосылған, бірақ басқа көптеген құрылғыларға қосылуы мүмкін және оны пайдалану өте қарапайым.

Мәліметтер парағы:

GPIO T-бөлімі, 1 нан тақтасы және көптеген өтетін сымдар

Маған кернеу тақталары мен өтетін сымдардың барлығын қосу үшін мен GPIO T бөлігін қолданған жоқпын, бірақ сіз оны қай қалта қайда кететінін анық білу үшін пайдалана аласыз.

2 -қадам: схемалық және сымдық

Схема және сымдар
Схема және сымдар
Схема және сымдар
Схема және сымдар

Менің схемамды жасау үшін мен Fritzing қолдандым, бұл әр түрлі көріністе өте қарапайым схеманы құруға мүмкіндік беретін, орнатуға болатын бағдарлама. Мен тақта мен схемалық көріністі қолдандым.

Fritzing жүктеу:

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

3 -қадам: мәліметтер қорының дизайны

Мәліметтер қорының дизайны
Мәліметтер қорының дизайны

Біз 3 сенсордан көптеген деректер жинаймыз (DS18B20 температурасы, LDR жарықтылығы және PIR сенсорынан күй). Сондықтан бұл деректердің барлығын дерекқорда сақтаған дұрыс. Мен дерекқорды қалай конфигурациялау керектігін келесі қадамда түсіндіремін (5 -қадам: Біздің деректер қорын RPi -ге жіберу!) Бірақ алдымен дизайнды немесе ERD (субъектілермен қарым -қатынас диаграммасы) жасау керек. Шахта 3NF көмегімен қалыпқа келтірілді, сондықтан біз компоненттер мен компоненттер тарихын басқа кестеге бөлдік. Біз тыңдалған әндерді қадағалау үшін Музыкалық мәліметтер базасын қолданамыз.

Тұтастай алғанда, бұл әрі қарай жұмыс істеу үшін дерекқордың қарапайым және қарапайым дизайны.

4 -қадам: Raspberry Pi орнату

Енді бізде жобаның кейбір негіздері бар. Raspberry Pi орнатуды бастайық!

1 -бөлім: SD картасын конфигурациялау

1) Қажетті бағдарламалық қамтамасыз ету мен файлдарды жүктеңіз

Бұл толық процесс үшін сізге 2 бағдарламалық қамтамасыз ету мен 1 ОЖ, яғни Raspbian жүктеу керек. Бірінші бағдарламалық жасақтама: Бірінші бағдарламалық жасақтама - Win32 Disk Imager.

sourceforge.net/projects/win32diskimager/

2 -ші бағдарламалық қамтамасыз ету: Екінші бағдарламалық жасақтама - SD картаны форматтаушы.

www.sdcard.org/downloads/formatter_4/

Raspbian ОЖ: Бұл Pi -дің негізгі операциялық жүйесі.

www.raspberrypi.org/downloads/raspberry-pi-os/

Барлық файлдарды жұмыс үстеліне шығарыңыз.

2) SD картасын және карта оқу құралын алыңыз

Картаны оқу құрылғысы бар ең аз 8 ГБ сыныпты 10 SD картасын алыңыз. Картаны оқу құралына салыңыз және оны USB портына қосыңыз.

3) SD картасын пішімдеңіз

SD Card Formatter бағдарламасын ашып, дискіні таңдаңыз.

Форматты нұқыңыз және басқа опцияларды өзгертпеңіз.

Пішімдеу аяқталғаннан кейін OK түймесін басыңыз.

4) ОЖ -ны SD картасына жазыңыз

Win32diskimager ашыңыз.

Жүктелген файлдан алынған Raspbian OS.img файлын шолыңыз.

Ашу түймесін, содан кейін Жазу түймесін басыңыз.

Егер қандай да бір ескерту пайда болса, ОК батырмасын басу арқылы оларды елемеңіз. Жазудың аяқталуын күтіңіз және бірнеше минут кетуі мүмкін. Сондықтан сабырлы болыңыз.

n

5) Бұл аяқталғаннан кейін, біз суретті RPi -ге енгізбес бұрын, соңғы түзетулер енгізуге дайынбыз.

SD картаның каталогына өтіп, 'cmdline.txt' файлын іздеңіз және оны ашыңыз.

Енді бір жолға 'ip = 169.254.10.1' қосыңыз.

Файлды сақтаңыз.

Кеңейтусіз немесе мазмұнсыз 'ssh' деп аталатын файл жасаңыз. (Ең оңай жолы - txt файлын құру және кейін.txt файлын жою)

Енді барлығы SD картасына орнатылғандықтан, оны компьютерден ҚАУІПСІЗ шығарып алып, қуатты қоспай -ақ Raspberry Pi -ге салуға болады. SD картасы RPI -ге қосылғаннан кейін, компьютерден LAN кабелін RPi LAN портына жалғаңыз, ол қосылғаннан кейін RPi -ге қуат қосуға болады.

2 -бөлім: RPi теңшеу

Шпатлевка

Енді біз Raspberry Pi -ді конфигурациялағымыз келеді, бұл Putty арқылы жасалады.

Putty бағдарламалық жасақтамасы:

Жүктелгеннен кейін Putty бағдарламасын ашып, '169.254.10.1' IP пен '22' портын және қосылым түрін енгізіңіз: SSH.

Енді біз пәрмен жолының интерфейсін ашып, бастапқы кіру ақпараты -> Пайдаланушы: pi және Құпия сөз: таңқурай арқылы кіре аламыз. (Оны мүмкіндігінше тез өзгертуді ұсынады. Мұнда нұсқаулық:

Raspi-config

Біз әр түрлі интерфейстерді қосуымыз керек және бұл үшін алдымен келесі кодты теруіміз керек:

sudo raspi-config

Біз қосуымыз керек нәрселер интерфейс бөлімінде. Біз келесі интерфейстерді қосуымыз керек:

  • Бір сымды
  • Сериялық
  • I2C
  • SPI

Бұл raspi-config көмегімен бізге қажет нәрсенің бәрі болды

WIFI қосылады

Біріншіден, келесі пәрмен тамырға айналуы үшін сіз root болуыңыз керек

sudo -i

Түбір болғаннан кейін келесі пәрменді қолданыңыз: (SSID -ді желі атауымен және құпия сөзді желі құпиясөзімен ауыстырыңыз)

wpa_passphrase «ssid» «password» >> /etc/wpa_supplicant/wpa_supplicant.conf

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

nano /etc/wpa_supplicant/wpa_supplicant.conf

Біздің желіге кіргеннен кейін, WPA клиент интерфейсін енгізейік

wpa_cli

Интерфейсті таңдаңыз

wlan0 интерфейсі

Файлды қайта жүктеңіз

қайта конфигурациялау

Соңында сіз жақсы қосылғаныңызды көре аласыз:

ip а

3 -бөлім: RPi + орнату бағдарламалық жасақтамасын жаңарту

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

sudo apt-get жаңартуы

sudo apt-get жаңарту

RPi жаңартылғаннан кейін бізге келесі бағдарламалық қамтамасыз етуді орнату қажет болады:

MariaDB мәліметтер базасы

sudo apt-get install mariadb-server

Apache2 веб -сервері

sudo apt install apache2

Python

update-alternatives-install/usr/bin/python python /usr/bin/python3.7 1 update-alternatives --install/usr/bin/python python/usr/bin/python3 2

Python пакеті

Артқы жағының жақсы жұмыс істеуі үшін сізге барлық пакеттерді орнату қажет болады:

  • Колба
  • Flask-Cors
  • Flask-MySql
  • Flask-SocketIO
  • PyMySQL сұраулары
  • Python-сокет
  • RPi. GPIO
  • Gevent
  • Gevent-веб-ұясы

Динамиктер кітапханасы

Динамикті күшейткішпен пайдалану үшін оған кітапхана орнату керек

curl -sS > | bash

Step 4: Reboot

After everything has been installed we will have to reboot the pi to make sure everything works correctly

sudo reboot

Step 5: Setting Up the Database to the RPi

Мәліметтер қорын RPi -ге орнату!
Мәліметтер қорын RPi -ге орнату!

Біз қажет нәрсенің бәрін орнатқаннан кейін, біз Raspberry Pi -ге өзіміздің Деректер базамызды орналастырайық!

Мәліметтер қорын орнату үшін бізге MySql мен RPi қосылуы керек. Ол үшін біз MySQLWorkbench ашамыз және жаңа байланыс орнатамыз. Кескінді қарау кезінде ақпаратты өзіңіздікіне өзгерту үшін өзгертуге тура келеді.

Егер сіз әлі ештеңені өзгертпесеңіз, SSH pi мен таңқурай үшін MySQL mysql және mysql үшін қолдануға болады.

Егер бірдеңе түсініксіз болса, мына оқулықты орындауға болады:

Деректер базасын экспорттау үшін PHPmyAdmin көмегімен оңай болуы керек, себебі сіз оны MySql көмегімен көптеген қателіктер жібере аласыз.

6 -қадам: Біздің RPi -де Bluetooth конфигурациясы

Біз Mood динамигін жасаймыз, оны біз өз музыкамызбен де қолдана аламыз, сондықтан RPi болған кезде бұл оңайырақ болады

bluetooth -ға байланысты мен оқулықты орындадым, оны мына жерден табуға болады:

scribles.net/streaming-bluetooth-audio-fr…

Мен бәрін осында қайта жазғысы келетіндерге жаздым

Бұрыннан жұмыс істеп тұрған блюсаланы жою

sudo rm/var/run/bluealsa/*

A2DP профилін раковина рөлін қосыңыз

sudo bluealsa -p a2dp -sink &

Bluetooth интерфейсін ашып, bluetooth қосыңыз

bluetoothctl қосылады

Жұптау агентін орнатыңыз

әдепкі бойынша агент

RPi -ні анықталатын етіп жасаңыз

анықтауға болады

  • Енді Bluetooth құрылғысынан RPi іздеңіз және онымен қосылыңыз.
  • Екі құрылғыда да жұптастыруды растаңыз, қаптамаңызға «иә» деп теріңіз.
  • A2DP қызметіне рұқсат беріңіз, қайтадан «иә» теріңіз.
  • Бұл аяқталғаннан кейін біз өз құрылғымызға сене аламыз, сондықтан біз қосылғымыз келген сайын осының барлығын өткерудің қажеті жоқ

сенім XX: XX: XX: XX: XX: XX (Біздің bluetooth mac мекен -жайы біздің бастапқы құрылғымыздан)

Егер сіз өзіңіздің RPi -ні табуды жалғастыра бергіңіз келсе, бұл сіздің жеке таңдауыңыз, бірақ мен сіздің қорапқа қосылуға тырыспауы үшін оны өшіруді жөн көремін

анықтауға болады

Содан кейін біз Bluetooth интерфейсінен шыға аламыз

Шығу

Ақырында біздің аудио маршруттау: біздің бастапқы құрылғы біздің RPi -ге жіберіледі

bluealsa-aplay 00: 00: 00: 00: 00: 00: 00

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

7 -қадам: Толық фонды жазу

Енді орнату аяқталды, біз ақырында өзіміздің бағдарламамызды жаза бастаймыз!

Мен Visual Studio Code -ді толығымен қолдандым, тек сіздің Visual Studio жобаңыз Raspberry Pi -ге қосылғанына көз жеткізуіңіз керек, бұл сіздің LAN кабелі сіздің RPi -ге қосылып, SSH қосылымын жасауды білдіреді. (Қашықтан қосылуды құру туралы ақпаратты мына жерден табуға болады:

Мен өз сабақтарымды қолдандым, олардың барлығы GitHub -қа кіреді.

Менің артқы файлымда мен әр түрлі сыныптарды қолдандым, сондықтан бәрін бөлек пайдалануға болады, сондықтан менің негізгі кодым әр түрлі ағындармен шатаспайды. Мен барлық сыныптарды бірден іске қосу үшін ағынды қолдандым. Ал төменгі жағында сіз барлық маршруттарды алдыңыз, осылайша біз деректерді біздің фронтальда оңай ала аламыз.

8 -қадам: Frontend жазу (HTML, CSS және JavaScript)

Артқы жағы аяқталғаннан кейін, біз толық фронтальды жазуды бастай аламыз.

HTML мен CSS маған өте қиын болды, мен оны мобильді ету үшін бар күшімді салдым, өйткені мен оған Bluetooth арқылы қосылып, Spotify көмегімен әндерді өзгерте аламын. Сондықтан мобильді бақылау тақтасынан басқару оңай болар еді

Сіз бақылау тақтасын қалағаныңызша жасай аласыз, мен кодты және дизайнды осында қалдырамын, сіз қалаған нәрсені жасай аласыз!

Мен үшін Javascript оңай болған жоқ, менің сенсорларымнан деректерді алу үшін бірнеше маршруттық GET -пен, көптеген оқиғаларды тыңдаушылармен және кейбір сокетикалық құрылымдармен жұмыс жасадым.

9 -қадам: Менің ісімді құру және бәрін біріктіру

Менің ісімді құру және бәрін біріктіру
Менің ісімді құру және бәрін біріктіру
Менің ісімді құру және бәрін біріктіру
Менің ісімді құру және бәрін біріктіру
Менің ісімді құру және бәрін біріктіру
Менің ісімді құру және бәрін біріктіру
Менің ісімді құру және бәрін біріктіру
Менің ісімді құру және бәрін біріктіру

Мен алдымен корпустың қалай көрінуін қалайтынымның эскизін сала бастадым, маңыздысы - ол бәрі сәйкес болуы үшін жеткілікті үлкен болуы керек еді, өйткені бізде қорапты салу үшін үлкен схема болды, бірақ ол жиналмауы үшін жинақы болу керек еді. көп орын алмайды

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

Мен ескі тақтайдан бастадым, мен ағашты аралауды бастадым. Менде негізгі корпус болғаннан кейін, мен оған тесіктерді бұрғылауым керек болды (корпустың алдыңғы жағында, суреттерде көріп тұрғандай, тырнақтарды салыңыз, бұл шынымен қарапайым корпус, бірақ бұл өте керемет көрінеді) мен өте жақсы сәйкес келеді. Мен оны жақсы етіп көрсету үшін ақ түске бояуды шештім.

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

Ұсынылған: