Мазмұны:
- 1 -қадам: Жабдықтар мен қосылымдар
- 2 -қадам: PI орнату
- 3 -қадам: кодты жүктеу және жинақтау
- 4 -қадам: оны қолдану
- 5 -қадам: Кодекс қалай жұмыс істейді
- 6 -қадам: теңшеу және достық атаулар
Бейне: Alexa Raspberry Pi релелік контроллері: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Мен бұл нұсқаулықты IOT құрылғыларын Amazon Alexa -мен біріктіру тәжірибесімен бөлісу үшін жасадым.
Бұл жоба таңқурайға қосылған реле тақтасын smarthome контроллерінен басқаруға мүмкіндік береді.
Ол Alexa -мен сыналған, бірақ сонымен қатар Samsung Smartthings пен басқа басқару интерфейстерімен жақсы жұмыс істейді, өйткені ол Belkin Wemo розеткаларын шығарады.
FAUXMO-ның тамаша кодына негізделген көптеген мысалдар бар, бірақ бұл питонды үйренуді білдірді және менің құрылғыларыма қажетті толық бақылауды бермеді, сондықтан мен оны негізгі кодтау тілі ретінде С көмегімен нөлден жаңадан құруды шештім.
Мен Amazon.com -да лямбда кодының тереңдігіне барғым келмеді, сондықтан мен оны өте қарапайым етіп сақтадым.
Мен Github -да дереккөз мен жазбаларды орналастырдым:
github.com/Switchdoctorstu/StuPiMo
Оқулық шынымен қалай жұмыс істеу керектігін және басқаларға көмектескен жағдайда менің жазбаларымды жариялауды қамтиды.
1 -қадам: Жабдықтар мен қосылымдар
Сізге қажет нәрселер Amazon / EBay -де оңай қол жетімді:
- Таңқурай PI *
- Pi қуат көзі
- Дюпон қосқыштары
- Эстафеталық тақта
- Ескі микро USB сымы (реле картасының қуаты үшін жартысын қысқарту үшін)
Кез келген таңқурай Pi жұмыс істейді, мен оны B және Zero моделінде сынап көрдім.
*Егер Pi Zero қолданылса, сізге OTG желілік адаптері қажет болады (егер сіз WiFi -дегі «W» нұсқасын сатып алмасаңыз)
Сіз Pi -ді желіге қосуыңыз керек.
Реле картасын Pi -ге қосу үшін дюпонт қосқыштарын қолданыңыз.
Реле картасы сыртқы қуатты пайдалануы керек екенін ескеріңіз (сілтемені алып тастаңыз және сыртқы 5в -ке қосылыңыз). Ол PI арқылы жұмыс істейді, бірақ оны өндірісте пайдалану ұсынылмайды.
Орнату үшін мен сыртқы қуатты USB HUB қолдандым. Бұл PI -ге қуат береді.
Мен ескі USB кабелінің ұшын кесіп тастадым және қауіпсіз болу үшін реле 2 -ші USB қосылымынан хабқа қосылды. Менің «өндіріс» нұсқасында 5В 5А қосқыш режимінің шағын қуат көзі қолданылады. Мен тағы бір рет USB сымын екіге бөліп, Pi-ді Micro-USB арқылы қуаттандырдым және реле тақтасын қуаттандыру үшін дупонт қосқыштарының екеуін қысқарттым. USB сымында 4 сым бар, олардың көпшілігі 5 вольтты көрсету үшін қызыл/қара түсті пайдаланады, бірақ егер күмән туындаса, сымдардың дұрыс екеніне көз жеткізу үшін есептегішті пайдаланыңыз.
Борттағы реле түйреуіштері PI тақырыбындағы сәйкес GPIO түйреуіштеріне қосылады.
Код GPIO түйреуіштерін таңдауға мүмкіндік береді, бірақ мен пайдаланған әдепкі мән:
- Реле түйреуіші 1 - Жер
- 2 -релелік түйреуіш - 1 -реле - GPIO 0
- 3 -релелік түйреуіш - 2 -реле - GPIO 1
- 4 -релелік түйреуіш - 3 -реле - GPIO 2
- 5 -релелік түйреуіш - 4 -реле - GPIO 3
- 6 -релелік түйреуіш - 5 -реле - GPIO 4
- 7 -релелік түйреуіш - 6 -реле - GPIO 5
- Релелік түйреуіш 8 - реле 7 - GPIO 6
- 9 -релелік түйреуіш - 8 -реле - GPIO 7
- Логика үшін релелік түйреуіш 10 - +5в
2 -қадам: PI орнату
Мен PI-ді іске қосу және желіге қосылу туралы оқулықты қайта жасамаймын.
Көптеген нұсқаулықтар бар, оның ішінде:
www.instructables.com/id/Ultimate-Raspberr…
Сіз желіде PI көрінетін жерге жетуіңіз керек және сіз оған қосыла аласыз.
Бұл Ethernet немесе сымсыз байланыс арқылы маңызды емес.
Бұл жобаны Geany Programmers Editor көмегімен Raspberry PI көмегімен аяқтауға болады, бірақ мен жеке кодты компьютерде Visual Studio немесе Eclipse (немесе тіпті Notepad ++) көмегімен дайындауды оңай көремін, содан кейін оны түзету үшін PI -ге жүктеймін. VNC байланысы. Мен бұл жерде тағы да айтқым келмейді, өйткені RPi -де VNC орнату бойынша көптеген тамаша нұсқаулар бар.
Сізге қажет нәрсе - кодты жүктеуге және құрастыруға болатын жерге жету.
Маңызды бір ескерту UPNP өңдегіші UDP мультикастын қажет ететіндіктен, пайдаланылатын интерфейстер 'Promiscuous' режиміне орнатылуы керек.
Мұны пәрмен жолында жасауға болады:
pi@raspberrypi: ~ $ ifconfig eth0 promisc
және / немесе
pi@raspberrypi: ~ $ ifconfig wlan0 promisc
Бұл тұрақты болуы керек, сондықтан мен /etc/rc.local өңдедім
sudo nano / etc / rc.local
жолды қосу үшін:
sudo ifconfig eth0 promisc
баннер # жолдарының бірінші жиынтығынан кейін интерфейстер іске қосылған кезде орнатылғанына көз жеткізу үшін.
3 -қадам: кодты жүктеу және жинақтау
Кодтың өзі менің Github репозиторийімде орналасқан;
github.com/Switchdoctorstu/StuPiMo/blob/ma…
репозиторийді клондаудың «дұрыс» әдістері бар. маған Pi жұмыс үстелінде Geany редакторын ашып, кодты қою оңайырақ болды.
Сол сияқты, егер сіз пәрмен жолын қолдансаңыз;
Жаңа каталог жасаңыз
mkdir Stu
Оған ауысыңыз
cd Stu
Жаңа мәтіндік файл жасаңыз
нано StuPiMo.c
Github шикізатынан кодты көшіріп, оны жаңа файлға қойыңыз
Сақтау және шығу.
Файлды C бастапқы коды нысаны ретінде алғаннан кейін оны пайдаланып құрастыруға болады
gcc -o StuPiMo StuPiMo.c -l сымдарPi
«-l wiringPi» талап етуші wiringPi кітапханасына сілтеме жасауын қамтамасыз ету үшін қажет екенін ескеріңіз.
Содан кейін кодты іске қосуға болады
./StuPiMo
Тағы да, егер сіз мұны іске қосу кезінде іске қосқыңыз келсе, пәрменді қолданыңыз:
sudo nano /etc/rc.local
келесі жолды қосу үшін
sudo/home/pi/Stu/StuPiMo &
/etc/rc.local файлыңызға. Шығу кезінде файлды сақтауды ұмытпаңыз.
Сценарийдің бұл кезде бұғатталмағанына көз жеткізу үшін '&' қосалқы процестің пайда болуын қамтамасыз ету үшін маңызды екенін ескеріңіз.
4 -қадам: оны қолдану
Сізде код жұмыс істеп тұрған кезде, Alexa'дан 'Discover Devices' сұраңыз, ол барлық 8 виртуалды Wemo құрылғыларын табуы керек.
Бұл жай ғана: «Alexa розетканы 1 қосыңыз» немесе «Alexa розетканы 6 өшіріңіз» және т.
5 -қадам: Кодекс қалай жұмыс істейді
Код Belkin Wemo розетка құрылғыларының сериясын эмуляциялау арқылы жұмыс істейді.
Бұған қол жеткізу үшін 2 негізгі функцияны орындау қажет
- UPNP ашылым тарату өңдеушісі
- құрылғыға жіберілген пәрмендерді және қажетті жауаптарды басқару үшін «құрылғы өңдегіші» (виртуалды құрылғыға бір).
«Бонустың» ерекшелігі - ол сонымен қатар құрылғыларды бақылауға мүмкіндік беретін веб -бетті шығарады.
UPNP өңдегіші
UPNP өңдегіші 239.255.255.250 1900 портында SSDP протокол пакеттерін бақылау үшін розетканы ашады.
Ол сұрайтын кез келген адамға жеке wemo эмуляторларын хабарландыратын жаңалықтар пакетімен келетін кез келген 'M-SEARCH' сұрауларына жауап береді.
Құрылғы өңдегіші
Құрылғы өңдеушілері (бір виртуалды құрылғы үшін бір) IP порттарының сериясын бақылайды және сұрауларға жауап береді.
Ол сұралған кезде setup.xml жауап береді
Ол сұралған кезде оқиғаның сипаттамасы файлына қызмет етеді
Ол GETBINARYSTATE сұрауына жауап береді
Ол SETBINARYSTATE сұранысын өңдейді және жауап береді
Веб -сервер
Веб -сервер - бұл реледегі батырмасы бар HTML пішінін құратын қарапайым жұмыс.
Ол түймелердің басылуына жауап береді және сәйкесінше реле күйін ауыстырады.
6 -қадам: теңшеу және достық атаулар
Мен кодты қарапайым және өңделетін етіп ашуланған жоқпын.
Негізгі кодтың басында анықтамалармен реттелуі мүмкін:
// жаһандық анықтамалар#WEBPORT 5353 // веб -серверді іске қосатын порт
#define NUMDEVICES 8 // Жасалатын виртуалды құрылғылар саны
#deportine PORTBASE 43450 // негізгі IP -портын жоғарылату үшін
WEBPORT-бұл кіріктірілген веб-сервер жұмыс істейтін порт нөмірі. Мұны жеңілдету үшін 80 -ге отыруға болады, бірақ мен бұл tomcat немесе жергілікті түрде жұмыс істейтін басқа қызметтерге қайшы келетінін байқадым.
NUMDEVICES іске қосылатын жеке WEMO эмуляторларының санын анықтайды. Егер сізде 2 портты реле картасы болса, оны 2, 4 порт = 4 және т.б.
Құрылғыларға ыңғайлы атаулар setup_names деп аталатын тәртіпте орнатылады:
int setup_names (таңдамалы [NUMDEVICES] [NAMELEN]) {int i = 0;
// осы циклды қолданыңыз
үшін (i = 0; i <NUMDEVICES; i ++) {
sprintf (достық , «Socket %d», i + 1);
}
// немесе құрылғы атауларын толтыру үшін келесі нұсқаулық кесте
/*
strcpy (достық [0], «Жатын бөлмелі теледидар»);
strcpy (достық [1], «Электрлік көрпе»);
strcpy (мейірімді [2], «Жатын бөлме шамы»);
strcpy (достық [3], «Socket 4»);
strcpy (достық [4], «Socket 5»);
strcpy (достық [5], «Socket 6»);
strcpy (достық [6], «Socket 7»);
strcpy (достық [7], «Socket 8»);
*/
қайтару i;
}
Мен «Socket n» құрылғыларының әрқайсысына қоңырау шалу үшін цикл қолдандым, бірақ егер сіз / * * /жойсаңыз, бұл циклды жойып, өзіңізге ыңғайлы атауларды қосуға болады (NUMDEVICES сияқты бірдей санды қосқаныңызға көз жеткізіңіз).
Егер сіз өзгеріс енгізсеңіз, кодты қайта құрастыруды ұмытпаңыз.
Ұсынылған:
NodeMCU релелік модулін қолданатын Alexa Smart Home жүйесі: 10 қадам
NodeMCU релелік модулін қолданатын Alexa Smart Home жүйесі: Бұл IoT жобасында мен NodeMCU ESP8266 көмегімен Alexa Smart Home Automation жүйесін жасадым. Реле модулі. Дауыстық пәрменмен шамды, желдеткішті және басқа тұрмыстық техниканы оңай басқаруға болады. Echo Dot ақылды динамигін қосу үшін
Arduino негізіндегі дауыспен басқарылатын IOT релелік қосқышы (Google Home және Alexa қолдауымен): 11 қадам
Arduino негізіндегі дауысты басқарылатын IOT релелік қосқышы (Google Home және Alexa қолдауымен): Бұл жоба Arduino негізіндегі, дауыспен басқарылатын IOT реле қосқышын қалай жасау керектігін сипаттайды. Бұл реле, сіз iOS және Android үшін қосымшаны пайдаланып қашықтан қосуға немесе өшіруге, сонымен қатар оны IFTTT -ге байланыстыруға және Goog көмегімен дауыспен басқаруға болады
Релелік тақтаны қолданатын Raspberry Pi бар үйді автоматтандыру: 7 қадам
Релелік тақтаны қолданатын Raspberry Pi көмегімен үйдегі автоматтандыру: Көптеген адамдар керемет жайлылықты қалайды, бірақ қолайлы бағамен. Біз күнде кеш батқанда, келесі күні таң сәріде үйлерді жарықтандыруға, шамдарды қайтадан сөндіруге немесе кондиционерді/желдеткішті/жылытқышты қосуға/өшіруге жалқау сезінеміз
Raspberry Pi көмегімен релелік басқару: 3 қадам
Raspberry Pi көмегімен релелік басқару: Көпшілігіміз таңқурай pi тақтасы бір уақытта бірнеше құрылғылар арасында ауыса алмайтын кезде қиындыққа тап болдық. Сондықтан 26 GPIO түйреуіші арқылы бірнеше құрылғыны қосу мүмкін емес. Оның үстіне оны 26 -дан асыруға болмайды
Arduino негізіндегі DIY ойын контроллері - Arduino PS2 ойын контроллері - DIY Arduino Gamepad көмегімен Tekken ойнау: 7 қадам
Arduino негізіндегі DIY ойын контроллері | Arduino PS2 ойын контроллері | DIY Arduino Gamepad көмегімен Tekken ойнау: Сәлеметсіздер ме, балалар, ойындарды ойнау әрқашан қызықты, бірақ өзіңіздің жеке DIY контроллеріңізбен ойнау қызықты, сондықтан біз осы нұсқаулықта arduino pro micro көмегімен ойын контроллерін жасаймыз