Мазмұны:
- 1 -қадам: Жабдықтар
- 2 -қадам: схемалық және сымдық
- 3 -қадам: мәліметтер қорының дизайны
- 4 -қадам: Raspberry Pi дайындау
- 5 -қадам: Біздің дерекқорды RPi -ге жіберіңіз
- 6 -қадам: Біздің RPi -де Bluetooth конфигурациясы
- 7 -қадам: Толық фонды жазу
- 8 -қадам: Frontend жазу (HTML, CSS және JavaScript)
- 9 -қадам: Менің ісімді құру және бәрін біріктіру
- 10 -қадам: Slimbox динамигін құруда менің кейбір қиындықтарым болды …
Бейне: Slimbox - ақылды Bluetooth динамигі!: 10 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Сәлем!
MCT Howest Kortrijk мектебіндегі менің жобам үшін мен түрлі сенсорлары бар ақылды Bluetooth динамигін, СКД мен RGB NeoPixel сақинасын жасадым. Барлығы Raspberry Pi -де жұмыс істейді (мәліметтер базасы, веб -сервер, Backend).
Бұл нұсқаулықта мен сізге бұл жобаны 3 аптаның ішінде кезең -кезеңмен қалай жасағанымды көрсетемін, сондықтан егер сіздердің біреуіңіз менің жобамды қайта жасағыңыз келсе, оны оңай жасай аласыз!
Бұл менің бірінші нұсқаулығым, егер сізде сұрақтар туындаса, мен оларға тезірек жауап беруге тырысамын!
Менің GitHub:
1 -қадам: Жабдықтар
DS18B20 температура сенсоры
DS18B20-бұл температураны өлшейтін бір сымды сенсор, Maxim Integrated шығарады. DS18B20 сенсорларының 2 түрі бар, тек компоненті (мен қолдандым) және су өткізбейтін нұсқасы, ол әлдеқайда үлкен, бірақ бұл менің жобам үшін қажет емес, сондықтан мен тек компонентті қолдандым. Сенсор температураны -55 ° C - +125 ° C (-67 ° F - +257 ° F) диапазонында өлшей алады және -10 ° C - +85 ° C аралығында 0,5 ° C дәлдікке ие. Ол сондай -ақ 9 биттен 12 битке дейін бағдарламаланатын ажыратымдылыққа ие.
Мәліметтер парағы:
Потенциометр сенсоры
Потенциометр - бұл сенсордың жоғарғы жағын айналдыру арқылы қолмен реттелетін үш терминалы бар резистор. Жоғарғы бөліктің позициясы потенциометрдің шығыс кернеуін анықтайды.
LSM303 акселерометр + компастың үзілуі
LSM303 сыну тақтасы-үш осьті акселерометр мен магнитометр / компастың тіркесімі, Adafruit шығарады. Ол Raspberry Pi I2C интерфейсінде қолданылады.
Шолу:
Мәліметтер парағы:
MCP3008
Менің потенциометрдегі деректерді оқу үшін мен SPI интерфейсі бар цифрлық түрлендіргішке 8 каналды 10 каналды MCP3008 қолдандым және бағдарламалау өте оңай.
Мәліметтер парағы:
Динамик - 3 »Диаметрі - 8 Ом 1 Ватт
Бұл кернеу мен амперді есептегеннен кейін таңдаған динамик конусы және бұл менің 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 қамқорлық жасайтын шағын тақта. Бұл қажет, себебі NeoPixel сақинасы Arduino -ға қосылған және сол жерде жұмыс істейді, ал қалған барлық заттар Raspberry Pi -де жұмыс істейді.
RGB NeoPixel сақинасы
Бұл 12 RGB светодиодтармен толтырылған шағын сақина (егер сіз қаласаңыз, RGB шамдары көбірек үлкен сақиналарды сатып ала аласыз). Бұл менің жағдайда Arduino Uno -ға қосылған, бірақ басқа көптеген құрылғыларға қосылуы мүмкін және оны пайдалану өте қарапайым.
Шолу:
СКД дисплейі 16х2
Мен температураны, көлемді және IP мекенжайды басып шығару үшін негізгі СКД дисплейін қолдандым.
Мәліметтер парағы:
Raspberry Pi 3B+ және 16 ГБ SD картасы
Менің бүкіл жобам конфигурацияланған суреті бар Raspberry Pi 3B+ нұсқасында жұмыс істейді, мен оны кейінірек нұсқаулықта конфигурациялауға көмектесемін.
GPIO T-бөлімі, 2 блок-тақта және көптеген өтетін сымдар
Маған кернеу тақталары мен қосқыш сымдарды қосу үшін мен GPIO T бөлігін қолдандым, сондықтан менде көбірек орын бар және қай түйреуіш екені түсінікті.
2 -қадам: схемалық және сымдық
Менің Fritzing қолданған схемам үшін бұл орнатуға болатын бағдарлама, ол әр түрлі көріністе өте қарапайым схеманы құруға мүмкіндік береді.
Fritzing жүктеу:
Сондықтан бәрін дұрыс байланыстырғаныңызға көз жеткізіңіз! Менің жағдайда сымдардың түстері схемадағыдай емес.
3 -қадам: мәліметтер қорының дизайны
Біз қосылған 3 сенсордан көптеген мәліметтер жинап жатырмыз, сондықтан бізге деректер мен сенсорларды сақтауға арналған мәліметтер базасы қажет. Кейінірек біз Raspberry Pi -де дерекқорды қалай конфигурациялау керектігін және оған деректерді қалай қосу керектігін көреміз. Бірақ алдымен мәліметтер қорының дизайны немесе ERD (Entity Relationship Diagram) жасалуы керек, менікі де 3NF көмегімен қалыпқа келтірілді. Сондықтан сенсорларды басқа кестеге бөліп, идентификаторлармен жұмыс жасаймыз.
Тұтастай алғанда, бұл әрі қарай жұмыс істеу үшін дерекқордың қарапайым және қарапайым дизайны.
4 -қадам: Raspberry Pi дайындау
Енді бізде жобаның кейбір негіздері бар. Raspberry Pi -ден бастайық!
SD картасының конфигурациясы
Біріншіден, сізге 16 ГБ көлемді SD картасы қажет, онда суретті қоюға болады және SD картасына бастапқы суретті жүктеу бағдарламасы қажет.
Бағдарламалық қамтамасыз ету:
Бастапқы сурет:
Сондықтан олар жүктелгеннен кейін:
- SD картасын компьютерге салыңыз.
- Жаңа жүктелген Win32 ашыңыз.
- Сіз жүктеп алған Raspbian кескін файлын таңдаңыз.
- SD картаның орналасқан жеріне «жазу» түймесін басыңыз.
Жабдыққа байланысты бұл біраз уақыт алуы мүмкін. Мұны жасағаннан кейін, біз суретті RPi -ге енгізбес бұрын кейбір соңғы түзетулер енгізуге дайынбыз.
- SD картаның каталогына өтіп, 'cmdline.txt' файлын іздеңіз және оны ашыңыз.
- Енді бір жолға 'ip = 169.254.10.1' қосыңыз.
- Файлды сақтаңыз.
- Кеңейтусіз немесе мазмұны жоқ 'ssh' файлын жасаңыз.
Енді сіз SD картаны компьютерден қауіпсіз шығарып, оны Raspberry Pi -ге қуатсыз қоюға болады. SD картасы RPI -ге қосылғаннан кейін, компьютерден LAN кабелін RPi LAN портына жалғаңыз, ол қосылғаннан кейін RPi -ге қуат қосуға болады.
Енді біз Raspberry Pi -ді басқарғымыз келеді, бұл Putty арқылы жасалады.
Putty бағдарламалық жасақтамасы:
Жүктелгеннен кейін Putty бағдарламасын ашып, '169.254.10.1' IP пен '22' портын және қосылым түрін енгізіңіз: SSH. Енді біз пәрмен жолының интерфейсін ашып, бастапқы кіру ақпараты -> Пайдаланушы: pi және Құпия сөз: таңқурай арқылы кіре аламыз.
Raspi-config
sudo raspi-config
Бұл жоба үшін өте маңызды - бұл интерфейс бөлімі, біз көптеген интерфейстерді қосуымыз керек, келесі интерфейстердің барлығын қосуымыз керек:
- Бір сымды
- SPI
- I2C
- Сериялық
Енді raspi-config жұмысын аяқтадық, енді Интернетке қосылуға тырысайық.
Wi-Fi байланысы
Біріншіден, сіз келесі пәрмендердің түбірі болуыңыз керек
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 а
Жаңарту және жаңарту
Енді біз Интернетке қосылдық, қазірдің өзінде орнатылған пакеттерді жаңарту ақылды қадам болар еді, сондықтан басқа пакеттерді орнатпас бұрын мұны жасайық.
sudo apt-get жаңартуы
sudo apt-get жаңарту
MariaDB мәліметтер базасы
MariaDB дерекқор серверін орнатыңыз:
sudo apt-get install mariadb-server
Apache2 веб -сервері
Apache2 веб -серверін орнатыңыз:
sudo apt install apache2
Python
Python орнату:
update-alternatives-install/usr/bin/python python /usr/bin/python2.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-веб-ұясы
- Уйсон
- Wsaccel
Динамиктер кітапханасы
Adafruit -тен динамиктер кітапханасын орнатыңыз:
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe… | bash
Қайта жүктеу уақыты келді
sudo қайта жүктеу
5 -қадам: Біздің дерекқорды RPi -ге жіберіңіз
Біз қажет нәрсенің бәрін орнатқаннан кейін, біз Raspberry Pi -ге өзіміздің Деректер базамызды орналастырайық!
Алдымен біз MySql жұмыс үстеліндегі дерекқорды жетілдіруіміз керек, осылайша дерекқордың толық кодын көшіріп, ондағы барлық «көрінетін» сөздерді жою қажет. Сонымен, ол көшірілгеннен кейін, шпательді қайтадан ашуға, жүйеге кіруге және теруге рұқсат етіңіз:
sudo mysql
Енді сіз mysql интерфейсіндесіз, оған дерекқор кодын көшіріп, enter пернесін басыңыз.
Енді бізге тек қолданушы құру керек
«Пайдаланушы» анықтаған пайдаланушының «пайдаланушысын» жасаңыз;
БАРЛЫҚ БАСЫМДІЛІКТЕРДІ БЕРУ *. * 'Пайдаланушыға';
Енді қайта жүктеңіз.
Сондықтан бәрін қазір орнату керек, сонымен қатар Pi және MySql Workbench -пен байланыс орнатуға болады, сондықтан кестелердегі барлық деректерді тексеру оңайырақ.
6 -қадам: Біздің RPi -де Bluetooth конфигурациясы
Біз Bluetooth динамигін жасап жатырмыз, демек, бұл ақпарат көзі біздің көзден Raspberry Pi -ге жіберіледі және мұны оңай жасауға болады, ендеше оған кірісейік!
Bluetooth байланысының көзі:
Бұрыннан жұмыс істеп тұрған блюсаланы жою
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
Енді біздің құрылғы біздің Raspberry -ге толық қосылған және сіз өзіңіздің бастапқы құрылғыңыздан медиа ойнатқышты Pi динамигінде ойната алуыңыз керек.
7 -қадам: Толық фонды жазу
Енді орнату аяқталды, біз ақырында өзіміздің бағдарламамызды жаза бастаймыз!
Мен PyCharm -ды бүкіл артқы жағымда қолдандым, тек сіздің PyCharm жобаңыз Raspberry Pi -ге қосылғанына көз жеткізіңіз, бұл сіздің орналастыру жолыңыз сіздің параметрлеріңізде орнатылғанын білдіреді және сіз бізге қажет барлық пакеттерді орнатқансыз. 4.
Мен өз сабақтарымды қолдандым, олардың барлығы GitHub -қа кіреді. Егер сіз оны жіберіп алсаңыз, сілтеме кіріспеде болады;)
Менің артқы файлымда мен сабақтарды қолдандым, сондықтан бәрі бір уақытта жұмыс істей алады және ол бір -біріне кедергі жасамайды. Ал төменгі жағында сіз барлық маршруттарды алдыңыз, осылайша біз деректерді біздің фронтальда оңай ала аламыз.
8 -қадам: Frontend жазу (HTML, CSS және JavaScript)
Артқы жағы аяқталғаннан кейін, біз толық фронтальды жазуды бастай аламыз.
HTML & CSS өте оңай жасалды, мүмкіндігінше ұялы телефонмен жұмыс істеуге тырысты, өйткені біз көбінесе Bluetooth -ды мобильді құрылғыдан қосамыз, мобильді бақылау тақтасынан басқару оңай болар еді.
Сіз бақылау тақтасын қалағаныңызша жасай аласыз, мен кодты және дизайнды осында қалдырамын, сіз қалаған нәрсені жасай аласыз!
Javascript соншалықты қиын болған жоқ, менің маршруттарымнан бірнеше GET -пен, көптеген оқиғаларды тыңдаушылармен және кейбір сокетикалық құрылымдармен жұмыс жасады.
9 -қадам: Менің ісімді құру және бәрін біріктіру
Мен алдымен корпусты қалай көргім келетіні туралы бірнеше эскиздерден бастадым, маңыздысы - бұл бәрі сәйкес болуы үшін жеткілікті үлкен болуы керек, өйткені бізде қорапты салу үшін үлкен схема бар.
Мен корпусты ағаштан жасадым, менің ойымша, егер сізде корпустар жасау тәжірибесі жоқ болса және онымен жасай алатын көптеген нәрселер болса, онымен жұмыс істеу оңай.
Мен шарап бөтелкелеріне арналған қораптан бастадым және ағашты аралауды бастадым. Менің негізгі корпусымды алғаннан кейін, мен оған тесіктерді бұрғылауым керек болды (корпустың алдыңғы жағында, суретте көріп тұрғандай: P) және оған шегелер салыңыз, бұл шын мәнінде қарапайым корпус, бірақ ол өте керемет көрінеді және өте жақсы сәйкес келеді.
Іс аяқталғаннан кейін, бәрін соңғы рет суретте көріп тұрғандай, жинау уақыты келді! Бұл қораптың ішіндегі тәртіпсіздік, бірақ бәрі жұмыс істейді, менде онша бос орын болмады, сондықтан мен сізге өз жобамды қайта құратын болсаңыз, үлкенірек корпус жасауға кеңес беремін.
10 -қадам: Slimbox динамигін құруда менің кейбір қиындықтарым болды …
Bluetooth & bluealsa қателері
Мен музыка ойнағым немесе bluetooth -мен қосылғым келген сайын маған bluetooth мен bluealsa қателері келді. Мен бұл туралы біраз зерттедім және бұл менің мәселемнің шешімі болды. Неге екені белгісіз, менің блютузым softblocked болды, бұл стандартты жұмсақ блокталғанына сенімді емеспін. Сіз мұны Putty -ге келесі пәрменді енгізу арқылы көре аласыз.
rfkill тізімі
Егер ол жұмсақ блокталған болса, оны пайдаланыңыз:
rfkill bluetooth блоктан шығарады
Осыдан кейін сіз қайта жүктегіңіз келуі мүмкін, менің көзім:
Сериялық қосылудағы ақаулар
Менде тағы бір үлкен проблема - Arduino -мен деңгей көтергіш арқылы байланыс орната алмадым, біраз іздеуден кейін менің '/dev/ttyS0' жоғалғанын білдім және бұл сіздің RPi жаңартылуына байланысты болуы мүмкін. Бұл туралы шешім де табылды
Сіз raspi-config көмегімен сериялық консольді қайта қосуыңыз керек, қайта жүктеңіз, содан кейін «/boot/cmdline.txt» ішінен «console = serial0, 115200» битін қолмен алып тастауыңыз керек. «Enable_uart = 1» қосулы тұрғанын растаңыз. /boot/config.txt ', және қайта жүктеңіз. Бұл сіздің ttyS0 портыңызды, сондай -ақ оған'/dev/serial0 'жұмсақ сілтемесін қайтаруы керек.
Дереккөз:
Ұсынылған:
Портативті Bluetooth динамигі - MKBoom DIY жиынтығы: 5 қадам (суреттермен)
Портативті Bluetooth динамигі | MKBoom DIY жиынтығы: бәріне сәлем! Ұзақ үзілістен кейін тағы бір спикерлік жобамен қайтып оралғаным жақсы, өйткені менің құрастыруларымның көпшілігі бірнеше құралдарды қажет ететіндіктен, бұл жолы мен сіз оңай сатып алатын жинақты пайдаланып портативті динамик құруды шештім. Мен ойладым
Бақаны сүйу V2.0 - артқы мүйізді Bluetooth динамигі толығымен басып шығарылады: 5 қадам (суреттермен)
Бақаны сүйу V2.0 - артқы мүйізді Bluetooth динамигі толығымен басып шығарылады: Кіріспе Кішкене фоннан бастауға рұқсат етіңіз. Сонымен, артқы жүктелген дыбыс зорайтқышы дегеніміз не? Мұны керісінше мегафон немесе граммофон деп ойлаңыз. Мегафон (негізінен алдыңғы дыбыс зорайтқышы) жалпы тиімділікті арттыру үшін акустикалық мүйізді қолданады
Bluetooth сымсыз велосипед динамигі: 11 қадам (суреттермен)
Велосипедке сымсыз Bluetooth динамигі: Сәлеметсіз бе! Бұл нұсқаулықта мен велосипедке сымсыз Bluetooth динамигін қалай құрастырғанымды көрсетемін. Айта кету керек, бұл менің сүйікті жобаларымның бірі болуы мүмкін. Бұл керемет көрінеді, керемет дыбысқа ие және футуристік келбетке ие! Басқа ретінде
Портативті Bluetooth динамигі - Көміртекті қара: 5 қадам (суреттермен)
Портативті Bluetooth динамигі | Қара көміртегі: Сәлеметсіз бе! Мен жақында ағамның туған күніне арналған портативті Bluetooth динамигін жасадым, сондықтан мен сіздермен оның егжей -тегжейін бөліспеске деп ойладым. Менің YouTube -те динамик жасау туралы бейнеролигімді көруге болады: портативті Bluetooth динамигі
DIY Bluetooth Boombox динамигі - ҚАЛАЙ: 13 қадам (суреттермен)
DIY Bluetooth Boombox динамигі | ҚАЛАЙ: Сәлем! Бұл жобаны тексергеніңізге рахмет, бұл менің сүйікті тізімімде! Мен бұл керемет жобаны жүзеге асырғаныма өте қуаныштымын. Жобаның жалпы сапасы мен сөйлеу сапасын жақсарту үшін көптеген жаңа әдістер қолданылды