Përmbajtje:
- Hapi 1: Furnizimet dhe Lidhjet
- Hapi 2: Konfigurimi i PI
- Hapi 3: Shkarkimi dhe Përpilimi i Kodit
- Hapi 4: Përdorimi i tij
- Hapi 5: Si funksionon Kodi
- Hapi 6: Përshtatje dhe Emra miqësorë
Video: Kontrolluesi i stafetës Alexa Raspberry Pi: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:19
Kam krijuar këtë Instructable për të ndarë përvojat e mia me integrimin e pajisjeve IOT me Alexa të Amazon.
Ky projekt lejon që një bord stafetë i lidhur me një mjedër pi të kontrollohet nga kontrolluesi smarthome.
Beenshtë testuar me Alexa por gjithashtu duket se funksionon mirë me Samsung Smartthings dhe ndërfaqe të tjera kontrolli pasi imiton një seri prizash Belkin Wemo.
Ka SHUM examples shembuj të bazuar në kodin e shkëlqyer FAUXMO, por kjo nënkuptonte mësimin e pitonit dhe nuk më dha kontrollin e detajuar që më duhej për pajisjet e mia dhe kështu vendosa të rikrijoj një nga e para duke përdorur C si gjuhën time kryesore të kodimit.
Unë gjithashtu nuk doja të shkoja në thellësitë e kodit lambda në Amazon.com kështu që e kam mbajtur me të vërtetë të thjeshtë.
Unë kam postuar burimin dhe shënimet në Github:
github.com/Switchdoctorstu/StuPiMo
Tutoriali është me të vërtetë për të mbuluar se si të funksionojë dhe për të publikuar shënimet e mia në rast se ndihmon të tjerët.
Hapi 1: Furnizimet dhe Lidhjet
Gjërat që ju nevojiten janë në dispozicion në Amazon / EBay:
- Mjedër PI *
- Furnizimi me energji Pi
- Lidhësit Dupont
- Bordi i stafetës
- Lidhës i vjetër mikro USB (për të përgjysmuar fuqinë për kartën e stafetës)
Çdo Pi mjedër do të funksionojë, unë e kam testuar këtë në një Model B dhe Zero.
*Nëse përdorni Pi Zero do t'ju duhet një Përshtatës Rrjeti OTG (nëse nuk blini versionin 'W' me blerje në WiFi)
Ju do të duhet të lidhni Pi me rrjetin.
Përdorni lidhëset dupont për të lidhur kartën e stafetës me Pi.
Vini re se karta e stafetë duhet të përdorë energji të jashtme (hiqni lidhjen dhe lidheni me 5v të jashtme). Do të funksionojë i mundësuar nga PI, por nuk këshillohet për funksionimin e prodhimit.
Për konfigurimin tim kam përdorur një USB HUB të mundësuar nga jashtë. Kjo siguron fuqinë për IP.
Kam prerë gjithashtu fundin e një kablli të vjetër USB dhe i kam furnizuar stafetat nga një lidhje e dytë USB në shpërndarës për të qëndruar i sigurt. Versioni im 'prodhues' përdor një furnizim me energji të vogël të modalitetit të kalimit 5V 5A. Përsëri unë vetëm shkurtova një prizë USB në gjysmë për të fuqizuar Pi përmes Micro-USB dhe shkurtova dy nga lidhësit dupont për të fuqizuar bordin e stafetës. Ka 4 tela në prizën USB, shumica përdorin të kuqe/të zezë për të treguar furnizimin me 5v, por nëse keni dyshime përdorni një metër për t'u siguruar që keni telat e duhur.
Kunjat e stafetë në tabelë janë të lidhura me kunjat përkatëse GPIO në kokën e PI.
Kodi ju lejon të zgjidhni kunjat GPIO, por parazgjedhja që kam përdorur ishte:
- Pin i stafetës 1 - Ground
- Pin i stafetës 2 - Relay 1 - GPIO 0
- Pin i stafetës 3 - Rele 2 - GPIO 1
- Pin i stafetës 4 - Rele 3 - GPIO 2
- Pin i stafetës 5 - Rele 4 - GPIO 3
- Pin i stafetës 6 - Rele 5 - GPIO 4
- Pin i stafetës 7 - Relay 6 - GPIO 5
- Pin i stafetës 8 - Relay 7 - GPIO 6
- Releta Pin 9 - Rele 8 - GPIO 7
- Releta Pin 10 - +5v për logjikën
Hapi 2: Konfigurimi i PI
Unë nuk do të rikrijoj një tutorial se si të aktivizoni PI-në tuaj dhe të lidheni me rrjetin.
Ka shumë udhëzues, përfshirë një udhëzues të shkëlqyeshëm në:
www.instructables.com/id/Ultimate-Raspberr…
Ju do të duhet të arrini në pikën ku PI është e dukshme në rrjet dhe mund të lidheni me të.
Nuk ka rëndësi nëse kjo është përmes Ethernet ose Wireless.
Ky projekt mund të përfundojë vetëm me Raspberry PI duke përdorur Editorin e Programuesve Geany, por unë personalisht e kam më të lehtë të bëj përgatitjen e kodit tim në një PC duke përdorur Visual Studio ose Eclipse (ose edhe Notepad ++) dhe pastaj ta ngarkoj atë në PI për korrigjim duke përdorur një Lidhje VNC. Përsëri nuk do ta mbuloj atë këtu pasi ka shumë udhëzues të shkëlqyeshëm për ngritjen e VNC në një RPi.
E tëra çfarë ju nevojitet është të arrini në pikën ku mund të ngarkoni dhe përpiloni kodin.
Një shënim që është i rëndësishëm është se meqenëse mbajtësi i UPNP kërkon UDP multicast, ndërfaqet e përdorura duhet të vendosen në modalitetin "Promiscuous".
Kjo mund të bëhet në rreshtin e komandës:
pi@raspberrypi: if $ ifconfig eth0 promiscisc
dhe / ose
pi@raspberrypi: if $ ifconfig wlan0 promisc
Kjo duhet të bëhet e përhershme kështu që redaktova /etc/rc.local
sudo nano / etc / rc.lokal
për të përfshirë rreshtin:
sudo ifconfig eth0 promisc
pas grupit të parë të linjave # të banderolave për të siguruar që ndërfaqet të jenë vendosur gjatë fillimit.
Hapi 3: Shkarkimi dhe Përpilimi i Kodit
Kodi në vetvete gjendet në repositorin tim Github;
github.com/Switchdoctorstu/StuPiMo/blob/ma…
ndërsa ka mënyra 'të sakta' për të klonuar depon. e kisha më të lehtë thjesht të hapja redaktorin Geany në desktopin Pi dhe të ngjisja kodin.
Në mënyrë të ngjashme, nëse jeni duke përdorur vijën e komandës;
Krijoni një drejtori të re
mkdir Stu
Ndrysho në të
cd Stu
Krijoni një skedar të ri teksti
nano StuPiMo.c
Kopjoni kodin nga Github i papërpunuar dhe ngjiteni në skedarin e ri
Ruaje dhe dil.
Pasi ta keni skedarin si objekt të kodit burimor C, mund ta përpiloni duke përdorur
gcc -o StuPiMo StuPiMo.c -l instalime elektrikePi
vini re "-l wiringPi" është e nevojshme për të siguruar që lidhësit e përpiluesit të lidhen me bibliotekën e instalimeve elektrike.
Kodi pastaj mund të ekzekutohet duke përdorur
./StuPiMo
Përsëri, nëse doni që kjo të funksionojë gjatë fillimit, përdorni komandën:
sudo nano /etj/rc.local
për të shtuar rreshtin e mëposhtëm
sudo/home/pi/Stu/StuPiMo &
te skedari juaj /etc/rc.local. Mos harroni të ruani skedarin tuaj në dalje.
Vini re se "&" është thelbësore për të siguruar që të krijohet një nën-proces për të siguruar që skenari të mos bllokohet në këtë pikë.
Hapi 4: Përdorimi i tij
Pasi të keni ekzekutuar kodin, kërkoni nga Alexa të "Zbuloni Pajisjet" dhe ajo duhet të gjejë të 8 pajisjet virtuale Wemo.
Atëherë është vetëm një rast për të thënë: "Alexa aktivizoni prizën 1" ose "Alexa fikni prizën 6" etj. Dhe stafeta përkatëse do të ndryshohet.
Hapi 5: Si funksionon Kodi
Kodi funksionon duke imituar një seri të pajisjeve të bazës Belkin Wemo.
Për të arritur këtë, ajo duhet të trajtojë 2 funksione kryesore
- një mbajtës i transmetimit të zbulimeve UPNP
- një 'mbajtës pajisjes' (një për pajisje virtuale) për të menaxhuar komandat e dërguara në pajisje dhe përgjigjet e kërkuara.
Një tipar 'bonus' është se ai gjithashtu publikon një faqe në internet për të lejuar kontrollin e pajisjeve.
Trajtuesi UPNP
Trajtuesi UPNP hap një prizë për të monitoruar paketat e protokollit SSDP në portën 239.255.255.250 1900.
Ai i përgjigjet çdo pyetjeje "M-SEARCH" që vjen me një paketë përgjigjeje zbulimi që njofton emulatorët individualë të wemo-s për këdo që pyet.
Trajtuesi i pajisjes
Trajtuesit e pajisjeve (një për pajisje virtuale) monitorojnë një seri portesh IP dhe u përgjigjen kërkesave.
Ajo do të shërbejë një përgjigje setup.xml kur pyetet
Ai do t'i shërbejë një skedari të përshkrimit të ngjarjes kur kërkohet
Ajo do t'i përgjigjet një kërkese GETBINARYSTATE
Ai do të përpunojë dhe do t'i përgjigjet një kërkese SETBINARYSTATE
Web Server
Serveri në internet është një rutinë e thjeshtë që ndërton një formë HTML që përmban një buton për stafetë.
Ai do t'i përgjigjet butonave që shtypen dhe do të ndryshojë gjendjen e stafetës në përputhje me rrethanat.
Hapi 6: Përshtatje dhe Emra miqësorë
Unë nuk jam çmendur me kodin për ta mbajtur atë të thjeshtë dhe të redaktueshëm.
Bazat mund të personalizohen me përkufizime në fillim të kodit:
// përkufizimet globale#përcakto WEBPORT 5353 // portin për të ekzekutuar serverin në internet
#përcaktoni NUMRAT 8 // Numri i pajisjeve virtuale për tu krijuar
#define PORTBASE 43450 // porta bazë IP për tu rritur nga
WEBPORT është numri i portit në të cilin funksionon serveri i integruar i uebit. Kjo mund të ulet në moshën 80 vjeç për t'i bërë gjërat më të lehta, por zbulova se ajo binte ndesh me macet ose shërbimet e tjera që funksiononin në vend.
NUMDEVICES përcakton numrin e emulatorëve individualë WEMO për t'u nisur. Nëse keni një kartë stafetë me 2 porta, vendoseni këtë në 2, 4 porte = 4, etj.
Emrat miqësorë për pajisjet janë vendosur në një rutinë të quajtur setup_names:
int setup_names (miqësore me shenja [NUMDEVICES] [NAMELEN]) {int i = 0;
// përdorni këtë lak
për (i = 0; i <NUMDEVICES; i ++) {
sprintf (miqësore , "Socket %d", i + 1);
}
// ose tabela e mëposhtme manuale për të mbushur emrat e pajisjeve
/*
strcpy (miqësore [0], "Dhoma gjumi");
strcpy (miqësore [1], "Batanije elektrike");
strcpy (miqësore [2], "Llamba e dhomës së gjumit");
strcpy (miqësore [3], "Fole 4");
strcpy (miqësore [4], "Fole 5");
strcpy (miqësore [5], "Fole 6");
strcpy (miqësore [6], "Fole 7");
strcpy (miqësore [7], "Fole 8");
*/
kthehem i;
}
Kam përdorur një lak për të thirrur secilën nga pajisjet 'Socket n', por ju mund ta fshini këtë lak dhe të shtoni emrat tuaj miqësorë në vend (thjesht sigurohuni që të shtoni të njëjtin numër si NUMDEVICES) nëse fshini / * * /
Mos harroni të ri-përpiloni kodin nëse bëni ndonjë ndryshim.
Recommended:
Ndërprerës i stafetës me dy butona: 3 hapa
Ndërprerësi i stafetës me dy butona: Ky artikull ju tregon se si të bëni një ndezës dhe fikur çelësin e butonit. Ky qark mund të bëhet me dy ndërprerës. Shtypni një ndërprerës dhe llamba ndizet. Shtypni një çelës tjetër dhe llamba fiket. Megjithatë, kjo Ins
Kontrolluesi dhe kontrolluesi i zënies së dhomës MicroBit: 4 hapa
Kontrolluesi dhe kontrolluesi i zënies së dhomës MicroBit: Gjatë një pandemie, një mënyrë për të zvogëluar transmetimin e virusit është të maksimizoni distancën fizike midis njerëzve. Në dhoma ose dyqane, do të ishte e dobishme të dini se sa njerëz janë në hapësirën e mbyllur në çdo kohë. Ky projekt përdor një palë
Sistemi Alexa Smart Home duke përdorur modulin e stafetës NodeMCU: 10 hapa
Sistemi Alexa i Shtëpisë së Zgjuar duke përdorur Modulin e Rele të NodeMCU: Në këtë projekt IoT, unë kam bërë sistemin e Automatizimit të Shtëpisë Alexa Smart duke përdorur NodeMCU ESP8266 & Moduli i stafetës. Ju mund të kontrolloni me lehtësi dritën, ventilatorin dhe pajisjet e tjera shtëpiake me komandën zanore. Për të lidhur altoparlantin inteligjent Echo Dot me
Kontrolluesi i lojërave të bazuara në Arduino - Kontrolluesi i lojërave Arduino PS2 - Duke luajtur Tekken Me DIY Arduino Gamepad: 7 hapa
Kontrolluesi i lojërave të bazuara në Arduino | Kontrolluesi i lojërave Arduino PS2 | Luajtja e Tekken Me DIY Arduino Gamepad: Përshëndetje djema, të luani lojëra është gjithmonë argëtuese, por të luani me Kontrolluesin tuaj të personalizuar të lojës DIY është më argëtuese. Pra, ne do të bëjmë një Kontrollues të lojës duke përdorur arduino pro micro në këtë udhëzues
Moduli i stafetës 5V për të punuar me Raspberry Pi: 4 hapa
Moduli i Rele 5V për të punuar me Raspberry Pi: reallyshtë vërtet e lehtë këto ditë të marrësh duart në një tabelë stafetë, por shpejt do të zbulosh se shumica e tyre janë të dizajnuara për 5V, gjë që mund të jetë një problem për një pi të dobët mjedër ose ndonjë tjetër mikrokontrollues që funksionon në 3.3V, ata thjesht nuk kanë volta