Sadržaj:
- Korak 1: Potrošni materijal i veze
- Korak 2: PI podešavanje
- Korak 3: Preuzimanje i sastavljanje koda
- Korak 4: Upotreba
- Korak 5: Kako kôd funkcionira
- Korak 6: Prilagođavanje i prijateljska imena
Video: Relejni kontroler Alexa Raspberry Pi: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Napravio sam ovaj Instructable kako bih podijelio svoja iskustva s integracijom IOT uređaja s Amazonovom Alexa.
Ovaj projekt omogućuje upravljanje relejnom pločom spojenom na malinu pi putem kontrolera smarthome.
Testirano je s Alexa, ali čini se da radi i sa Samsung Smartthings i drugim upravljačkim sučeljima jer oponaša niz Belkin Wemo utičnica.
Postoji mnogo primjera zasnovanih na izvrsnom FAUXMO kodu, ali to je značilo učenje pythona i nije mi dalo detaljnu kontrolu koja mi je potrebna za moje uređaje, pa sam odlučio ponovo stvoriti jedan od nule koristeći C kao svoj osnovni jezik kodiranja.
Također nisam želio ići u dubine lambda koda na Amazon.com pa sam to učinio vrlo jednostavnim.
Objavio sam izvor i bilješke na Githubu:
github.com/Switchdoctorstu/StuPiMo
Vodič zaista pokriva kako to funkcionirati i objaviti moje bilješke u slučaju da to drugima pomogne.
Korak 1: Potrošni materijal i veze
Stvari koje trebate su dostupne na Amazonu / EBayu:
- PI maline *
- Pi napajanje
- Dupont konektori
- Relejna ploča
- Stari mikro USB kabel (prepoloviti radi napajanja relejne kartice)
Bilo koji malina Pi će raditi, testirao sam ovo na modelima B i Zero.
*Ako koristite Pi Zero, trebat će vam OTG mrežni adapter (osim ako ne kupite 'W' verziju s udjelom u WiFi -u)
Morat ćete povezati Pi na mrežu.
Pomoću dupont konektora spojite relejnu karticu na Pi.
Imajte na umu da relejna kartica treba koristiti vanjsko napajanje (uklonite vezu i spojite se na vanjski 5v). Radit će s PI -jem, ali se ne preporučuje za proizvodnju.
Za postavljanje sam koristio USB HUB sa vanjskim napajanjem. Ovo daje snagu PI -u.
Odrezao sam i kraj starog USB kabela i napajao releje s druge USB veze na čvorište kako bih ostao siguran. Moja 'proizvodna' verzija koristi malo napajanje sa 5V 5A prekidačem. Opet sam samo prepolovio USB kabel za napajanje Pi preko Micro-USB-a i presjekao dva dupont konektora za napajanje relejne ploče. U USB kablu postoje 4 žice, većina koristi crvenu/crnu oznaku za napajanje od 5 V, ali ako ste u nedoumici, upotrijebite mjerač kako biste bili sigurni da ste dobili ispravne žice.
Igle releja na ploči povezane su sa odgovarajućim GPIO pinovima na PI zaglavlju.
Kôd vam omogućava da odaberete GPIO pinove, ali zadana vrijednost koju sam koristio je:
- Relej Pin 1 - Uzemljenje
- Relej Pin 2 - Relej 1 - GPIO 0
- Relej Pin 3 - Relej 2 - GPIO 1
- Relej Pin 4 - Relej 3 - GPIO 2
- Relej Pin 5 - Relej 4 - GPIO 3
- Relej Pin 6 - Relej 5 - GPIO 4
- Relej Pin 7 - Relej 6 - GPIO 5
- Relej Pin 8 - Relej 7 - GPIO 6
- Relej Pin 9 - Relej 8 - GPIO 7
- Relejni pin 10 - +5v za logiku
Korak 2: PI podešavanje
Neću ponovno stvarati vodič o tome kako pokrenuti i pokrenuti vaš PI i povezati ga s mrežom.
Postoji mnogo vodiča, uključujući odlične instrukcije na:
www.instructables.com/id/Ultimate-Raspberr…
Morat ćete doći do točke gdje je PI vidljiv na mreži i možete se povezati s njim.
Nije važno radi li se o Ethernetu ili bežičnoj mreži.
Ovaj projekt se može dovršiti samo pomoću Raspberry PI -a pomoću uređivača programa Geany Programmers Editor, ali meni je lično lakše pripremiti kod na računaru koristeći Visual Studio ili Eclipse (ili čak Notepad ++), a zatim ga prenijeti u PI radi otklanjanja grešaka pomoću VNC veza. Opet neću to pokrivati ovdje jer postoji mnogo izvrsnih uputstava o postavljanju VNC -a na RPi.
Sve što trebate je doći do točke na kojoj možete učitati i sastaviti kôd.
Jedna napomena koja je važna je da budući da UPNP rukovatelj zahtijeva UDP multicast, korištena sučelja moraju biti postavljena na 'Promiscuous' način.
To se može učiniti u komandnoj liniji:
pi@raspberrypi: ~ $ ifconfig eth0 promisc
i / ili
pi@raspberrypi: ~ $ ifconfig wlan0 promisc
Ovo treba učiniti trajnim pa sam uredio /etc/rc.local
sudo nano / etc / rc.local
uključiti red:
sudo ifconfig eth0 promisc
nakon prvog skupa banner # linija kako biste bili sigurni da su sučelja postavljena pri pokretanju.
Korak 3: Preuzimanje i sastavljanje koda
Sam kôd se nalazi u mom Github -u;
github.com/Switchdoctorstu/StuPiMo/blob/ma…
dok postoje 'ispravni' načini za kloniranje spremišta. Bilo mi je lakše samo otvoriti uređivač Geany na Pi radnoj površini i zalijepiti kôd.
Slično, ako koristite komandnu liniju;
Kreirajte novi direktorij
mkdir Stu
Promijenite to
cd Stu
Napravite novu tekstualnu datoteku
nano StuPiMo.c
Kopirajte kôd iz Github raw -a i zalijepite ga u novu datoteku
Sačuvaj i izađi.
Kada datoteku imate kao objekt C izvornog koda, možete je kompajlirati pomoću
gcc -o StuPiMo StuPiMo.c -l ožičenjePi
imajte na umu da je "-l wiringPi" potreban kako bi se osiguralo da se kompajler povezuje u potrebnoj biblioteci wiringPi.
Kôd se tada može pokrenuti pomoću
./StuPiMo
Opet, ako želite da se ovo pokreće pri pokretanju, koristite naredbu:
sudo nano /etc/rc.local
da biste dodali sledeći red
sudo/home/pi/Stu/StuPiMo &
u vašu /etc/rc.local datoteku. Ne zaboravite spremiti datoteku pri izlazu.
Imajte na umu da su znakovi '&' ključni za osiguravanje pokretanja podprocesa kako bi se osiguralo da skripta u ovom trenutku nije blokirana.
Korak 4: Upotreba
Kada pokrenete kôd, zamolite aleksu da "otkrije uređaje" i ona bi trebala pronaći svih 8 virtualnih Wemo uređaja.
U tom slučaju samo recite: "Alexa uključi utičnicu 1" ili "Alexa isključi utičnicu 6" itd., A relej će se promijeniti.
Korak 5: Kako kôd funkcionira
Kod funkcionira emulirajući niz Belkin Wemo utičnica.
Da bi to postigao, mora se nositi s 2 glavne funkcije
- upravljač emitiranja UPNP otkrivanja
- 'rukovatelj uređaja' (jedan po virtualnom uređaju) za upravljanje naredbama poslanim na uređaj i potrebnim odgovorima.
Bonusna značajka je ta što objavljuje i web stranicu koja omogućuje kontrolu uređaja.
UPNP Handler
UPNP rukovatelj otvara utičnicu za nadgledanje paketa SSDP protokola na 239.255.255.250 portu 1900.
Odgovara na sve upite 'M-SEARCH' koji dolaze s paketom odgovora otkrivanja koji najavljuje pojedine emulatore wema svakome ko to zatraži.
Uređivač uređaja
Rukovaoci uređaja (jedan po virtuelnom uređaju) nadgledaju niz IP portova i odgovaraju na zahtjeve.
Poslužit će odgovor setup.xml kada se to od vas zatraži
On će poslužiti datoteku opisa događaja kada se to od vas zatraži
Odgovorit će na zahtjev GETBINARYSTATE
On će obraditi i odgovoriti na zahtjev SETBINARYSTATE
Web server
Web server je jednostavna rutina koja gradi HTML obrazac koji sadrži dugme po releju.
On će reagirati na pritisnute tipke i prema tome promijeniti stanje releja.
Korak 6: Prilagođavanje i prijateljska imena
Nisam poludio zbog koda kako bi bio jednostavan i uređivan.
Osnove se mogu prilagoditi definicijama na početku koda:
// globalne definicije#definiraj WEBPORT 5353 // port za pokretanje web servera
#define NUMDEVICES 8 // Broj virtualnih uređaja za stvaranje
#define PORTBASE 43450 // osnovni IP port za povećanje s
WEBPORT je broj porta na kojem radi ugrađeni web server. Ovo bi se moglo natjerati da sjedne na 80 da olakša stvari, ali otkrio sam da je to u sukobu s tomcat -om ili drugim lokalnim servisima.
NUMDEVICES definira broj pojedinačnih WEMO emulatora za pokretanje. Ako imate 2 portnu relejnu karticu, postavite je na 2, 4 port = 4 itd.
Prijateljski nazivi uređaja postavljeni su u rutini koja se naziva setup_names:
int setup_names (char friendly [NUMDEVICES] [NAMELEN]) {int i = 0;
// koristi ovu petlju
za (i = 0; i <NUMDEVICES; i ++) {
sprintf (friendly , "Socket %d", i + 1);
}
// ili sljedeću ručnu tablicu za popunjavanje imena uređaja
/*
strcpy (prijateljski [0], "Spavaća soba TV");
strcpy (prijateljski [1], "Električno ćebe");
strcpy (prijateljski [2], "Lampa za spavaću sobu");
strcpy (friendly [3], "Socket 4");
strcpy (friendly [4], "Socket 5");
strcpy (friendly [5], "Socket 6");
strcpy (prijateljski [6], "Socket 7");
strcpy (prijateljski [7], "Socket 8");
*/
return i;
}
Koristio sam petlju za pozivanje svakog od uređaja 'Socket n', ali možete izbrisati ovu petlju i umjesto toga dodati svoja prijateljska imena (samo pazite da dodate isti broj kao NUMDEVICES) ako izbrišete / * * /
Ne zaboravite ponovno sastaviti kôd ako napravite bilo kakve promjene.
Preporučuje se:
Relejni prekidač sa dva dugmeta: 3 koraka
Relejni prekidač sa dva dugmeta: Ovaj članak prikazuje kako uključiti i isključiti prekidač sa pritiskom na dugme. Ovo kolo se može obaviti sa dva prekidača. Pritisnete jedan prekidač i sijalica se UKLJUČI. Pritisnete drugi prekidač i žarulja se isključuje. Međutim, ovaj Ins
Alexa sistem pametne kuće koji koristi NodeMCU relejni modul: 10 koraka
Alexa pametni kućni sistem koji koristi NodeMCU relejni modul: U ovom IoT projektu napravio sam Alexa Alexa automatizacijski sistem koristeći NodeMCU ESP8266 & Relejni modul. Glasovnom naredbom možete lako kontrolirati svjetlo, ventilator i druge kućanske aparate. Za povezivanje Echo Dot pametnog zvučnika sa
Arduino bazirani IOT relejni prekidač s glasovnom kontrolom (Google Home i Alexa podržani): 11 koraka
Arduino bazirani IOT relejni prekidač s glasovnom kontrolom (podržani Google Home i Alexa): Ovaj projekt opisuje kako napraviti relejni prekidač zasnovan na Arduinu, glasom upravljan. Ovo je relej koji možete daljinski uključiti i isključiti pomoću aplikacije za iOS i Android, kao i povezati ga s IFTTT -om i kontrolirati glasom pomoću Googa
Arduino kontroler za igre uradi sam. Arduino PS2 kontroler igre - Igranje Tekkena s DIY Arduino gamepadom: 7 koraka
Arduino kontroler za igre uradi sam. Arduino PS2 kontroler igre | Igranje Tekkena s DIY Arduino gamepad -om: Zdravo momci, igranje igara uvijek je zabavno, ali igranje sa vlastitim DIY prilagođenim kontrolorom igara je zabavnije. Zato ćemo napraviti kontroler igre pomoću arduino pro micro u ovim uputama
YABC - Još jedan kontroler Blynk - IoT kontroler temperature i vlažnosti u oblaku, ESP8266: 4 koraka
YABC - Još jedan kontroler Blynk - IoT kontroler temperature i vlažnosti u oblaku, ESP8266: Zdravo proizvođači, nedavno sam počeo uzgajati gljive kod kuće, bukovače, ali već sam 3 puta imao ove kontrolere kod kuće za kontrolu temperature fermentatora za moju domaću marinu, supruga sada radi i ovu Kombucha stvar, a kao termostat za toplinu