Sadržaj:
- Pribor
- Korak 1: Značajke
- Korak 2: PCB
- Korak 3: Montaža
- Korak 4: Pregled programiranja
- Korak 5: Ulazi
- Korak 6: Izlazi
- Korak 7: Zapisivanje
- Korak 8: Zvučni signal
- Korak 9: Vanjske IoT integracije
- Korak 10: Upotreba
- Korak 11: Planovi za budućnost
Video: ESP32 čvorište za pametnu kuću: 11 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Stvaranje sustava koji može obraditi velike količine podataka senzora, imati više izlaza i spojiti se na internet ili lokalnu mrežu zahtijeva dugo vrijeme i velike napore. Prečesto se ljudi koji žele stvoriti vlastite pametne kućne mreže bore s mogućnošću pronalaženja i sastavljanja prilagođenih komponenti u veći sustav. Zato sam htio napraviti modularnu platformu bogatu značajkama koja bi olakšala izradu senzora i izlaza povezanih s IoT-om.
Hvala DFRobotu i PCBGOGO.com na sponzorstvu ovog projekta!
Za detaljnije informacije posjetite Github repo:
Pribor
-
DFRobot ESP32 FireBeetle
www.dfrobot.com/product-1590.html
-
Senzor DHT22
www.dfrobot.com/product-1102.html
- APDS9960 Senzor svjetla i gesta
www.dfrobot.com/product-1361.html
-
I2C 20x4 LCD modul
www.dfrobot.com/product-590.html
- Analogna RGB LED traka
www.dfrobot.com/product-1829.html
- DRV8825 Pogonitelji koračnih motora
- Čitač SD kartica
- NEMA17 koračni motori
Korak 1: Značajke
Glavna značajka ove ploče je razvojna ploča ESP32 FireBeetle koja obrađuje svu komunikaciju, očitanja senzora i izlaze. Postoje dva pokretača koračnih motora koji upravljaju dva bipolarna koračna motora.
I2C sabirnica je također isključena za uporabu sa komponentama kao što su APDS9960 ili LCD. Za očitavanje temperature slomljeni su pinovi za spajanje na DHT22 senzor, kao i fotootpornik za očitanje razine svjetla u okolini.
Na ploči postoji podrška za analognu svjetlosnu traku koja ima tri MOSFET -a za pogon LED svjetla.
Korak 2: PCB
Proces projektiranja PCB -a započeo sam stvaranjem sheme u Eagleu. Budući da nisam uspio pronaći biblioteku ESP32 FireBeetle, umjesto toga sam samo upotrijebio dva zaglavlja s 1x18 pinova. Zatim sam stvorio sklop za upravljanje napajanjem koji je mogao prihvatiti 12v kroz DC bačvastu utičnicu i pretvoriti ga u 5v za napajanje senzora i ESP32.
Nakon što je shema dovršena, prešao sam na projektiranje same PCB -a.
Znao sam da bi utikač DC cijevi morao biti blizu prednje strane ploče, a kondenzatori za izravnavanje napajanja od 100uF trebali bi biti blizu ulaza napajanja upravljačkog programa koračnog motora. Nakon što je sve položeno, počeo sam usmjeravati tragove.
Iako Oshpark proizvodi visokokvalitetne PCB -e, njihove su cijene prilično visoke. Srećom, PCBGOGO.com također čini izvrsne PCB -e po pristupačnoj cijeni. Uspio sam kupiti deset PCB -a za samo 5 USD, umjesto da platim 52 USD za samo tri ploče s Oshpark.com.
Korak 3: Montaža
Sve u svemu, sastavljanje ploče bilo je prilično jednostavno. Započeo sam lemljenjem površinski montiranih komponenti, a zatim pričvršćivanjem konektora i regulatora bačve. Zatim sam zalemio zaglavlje iglica za komponente kao što su upravljački programi motora i FireBeetle.
Nakon što je lemljenje završeno, testirao sam ploču na kratki spoj stavljajući multimetar u način mjerenja otpora i provjeravajući je li otpor veći od određene količine. Ploča je prošla pa sam tada mogao priključiti svaku komponentu.
Korak 4: Pregled programiranja
Htio sam da kôd za ovu ploču bude modularni i jednostavan za korištenje. To je značilo imati nekoliko klasa koje obrađuju određene funkcije, zajedno s većom klasom omotača koja kombinira manje.
Korak 5: Ulazi
Za rukovanje ulazima, stvorio sam klasu pod nazivom "Hub_Inputs", koja omogućuje kućnom čvorištu da komunicira s APDS9960, zajedno s stvaranjem i upravljanjem gumbima i kapacitivnim dodirnim sučeljima. Sadrži sljedeće funkcije:
Gumb Stvori
Doznajte ako je gumb pritisnut
Dobijte broj pritisaka gumba
Dohvatite najnoviju gestu
Dobijte kapacitivnu vrijednost dodira
Gumbi su pohranjeni kao struktura, s tri atributa: is_pressed, numberPresses i pin. Svaki gumb, kada se stvori, pridružen je prekidu. Kada se taj prekid pokrene, rutini usluge prekida prekida (ISR) prosljeđuje se pokazivač tog gumba (dan kao memorijska adresa u nizu gumba) i povećava broj pritisaka gumba, zajedno s ažuriranjem is_pressed Booleove vrijednosti.
Kapacitivne vrijednosti dodira mnogo su jednostavnije. Dohvaćaju se prosljeđivanjem dodirnog pina na funkciju touchRead ().
Najnovija gesta ažurira se anketiranjem APDS9960 i provjerom je li nova gesta otkrivena, a ako je jedna otkrivena, postavite varijablu privatne geste na tu gestu.
Korak 6: Izlazi
Čvorište pametne kuće ima nekoliko načina za izlaz informacija i promjenu svjetla. Postoje pinovi koji probijaju I2C sabirnicu, dopuštajući korisnicima povezivanje LCD -a. Zasad je podržana samo jedna veličina LCD -a: 20 x 4. Korištenjem funkcije “hub.display_message ()”, korisnici mogu prikazati poruke na LCD -u unošenjem string objekta.
Tu je i pin zaglavlje za povezivanje niza analognih LED dioda. Pozivom funkcije “hub.set_led_strip (r, g, b)” postavlja se boja trake.
Dva koračna motora pokreću se pomoću par drajverskih ploča DRV8825. Odlučio sam koristiti biblioteku BasicStepper za upravljanje motorom. Kad se ploča podigne, stvaraju se dva koračna objekta i oba motora postaju omogućena. Za koračanje svakog motora koristi se funkcija "hub.step_motor (motor_id, steps)", gdje je ID motora 0 ili 1.
Korak 7: Zapisivanje
Budući da ploča ima nekoliko senzora, želio sam mogućnost lokalnog prikupljanja i bilježenja podataka.
Za početak bilježenja stvara se nova datoteka s "hub.create_log (naziv datoteke, zaglavlje)", gdje se zaglavlje koristi za izradu CSV reda datoteke koji označava stupce. Prvi stupac uvijek je vremenska oznaka u godini Mjesec Dan Sat: Min: Sec format. Da biste dobili vrijeme, funkcija hub.log_to_file () dobiva vrijeme pomoću funkcije basic_functions.get_time (). Struktura vremena tm zatim se prosljeđuje referencom u funkciju bilježenja, zajedno s podacima i nazivom datoteke.
Korak 8: Zvučni signal
Čemu služi IoT ploča ako ne možete puštati glazbu? Zato sam uključio zujalicu s funkcijom za reprodukciju zvukova. Pozivom "hub.play_sounds (melodija, trajanje, duljina)" počinje se reproducirati pjesma, pri čemu melodija predstavlja niz notnih frekvencija, trajanje kao niz trajanja nota, a duljina kao broj nota.
Korak 9: Vanjske IoT integracije
Središte trenutno podržava IFTTT webhooks. Mogu se pokrenuti pozivom funkcije Hub_IoT.publish_webhook (url, podaci, događaj, ključ) ili Hub_IoT.publish_webhook (url, podaci). Ovim se šalje POST zahtjev na dati URL s tim podacima, zajedno s nazivom događaja ako je potrebno. Da biste postavili primjer integracije IFTTT -a, najprije izradite novi applet. Zatim odaberite uslugu webhook koja se pokreće pri primitku zahtjeva.
Zatim nazovite događaj “high_temp” i spremite ga. Zatim odaberite uslugu Gmail za dio „To“i odaberite opciju „Pošalji e -poruku sebi“. Unutar postavki usluge stavite "Temperatura je visoka!" za subjekt, a zatim sam stavio "Izmjerenu temperaturu od {{Value1}} na {{OccurredAt}}", koja prikazuje izmjerenu temperaturu i vrijeme kada je događaj pokrenut.
Nakon što ga postavite, jednostavno zalijepite URL webhook -a koji generira IFTTT i stavite "high_temp" u odjeljak događaja.
Korak 10: Upotreba
Da biste koristili Smart Home Hub, jednostavno pozovite sve potrebne funkcije u setup () ili loop (). Već sam naveo primjere poziva funkcija, poput ispisa trenutnog vremena i pozivanja IFTTT događaja.
Korak 11: Planovi za budućnost
Sustav Smart Home Hub vrlo dobro funkcionira za jednostavne kućne automatizacije i zadatke prikupljanja podataka. Može se koristiti za gotovo sve, kao što je postavljanje boje LED trake, praćenje temperature prostorije, provjeravanje je li svjetlo uključeno i čitav niz drugih potencijalnih projekata. U budućnosti bih želio još više proširiti funkcionalnost. To bi moglo uključivati dodavanje robusnijeg web poslužitelja, lokalno hosting datoteka, pa čak i Bluetooth ili mqtt.
Preporučeni:
Kako napraviti kuću od ananasa od spužve: 12 koraka
Kako napraviti kuću od ananasa od spužve: tko živi u ananasu pod morem? Odgovor na ovo pitanje (SpongeBob) prilično je očit većini današnjih ljudi. Naš tim dobio je zadatak osmisliti i izgraditi rekvizite za nadolazeću produkciju predstave. Ideja koja je odmah došla na
Uradi sam pametnu kuću s Google asistentom i Arduinom: 6 koraka
Uradi sam pametnu kuću s Google asistentom i Arduinom: Tko ne želi pametan dom? Jedna od najljepših stvari koju možete učiniti je prebacivanje svjetla ili drugih uređaja u vašoj kući glasovnom kontrolom. Uz pomoć aplikacije Google Home i Google asistenta ovo je doista pravi kolač …… Vi ne
Potpuni dodatak za pametnu kuću: 8 koraka
Potpuni dodatak za pametnu kuću: Moj prethodni projekt " Potpuna pametna kuća " uspješno radi gotovo 5 godina bez ikakvih problema. Sada kada sam odlučio dodati povratne informacije na iste bez ikakvih izmjena u sadašnjem krugu i shemi. Dakle, ovaj dodatak za pro
Osvijetlite kuću od medenjaka: 9 koraka (sa slikama)
Light Up Gingerbread House: Stvaramo light up Gingerbread house, gdje će, kad dodirnete vrh dimnjaka, kuća zasvijetliti iznutra. Ovaj je projekt zaista zabavan uvod u sklopove i namijenjen je demonstraciji, uključujući i malo osnovnog stvaranja kola i malo
[HASS.IO] Počnite graditi svoju pametnu kuću bez kodiranja, za manje od 100 USD: 6 koraka
[HASS.IO] Počnite graditi svoju pametnu kuću bez kodiranja, za manje od 100 USD: Nedavno sam se petljao i uspješno učinio svoju kuću manje " idiotskom ". Stoga ću podijeliti kako napraviti sustav pametne kuće s niskom cijenom, visokom kompatibilnošću koja bi radila besprijekorno i stabilno