Sadržaj:
- Supplies
- Korak 1: Karakteristike
- 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 izmjena: 2024-01-30 08:06
Stvaranje sistema koji može rukovati velikom količinom podataka senzora, imati više izlaza i povezati 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 sa sposobnošću da pronađu i sastave prilagođene komponente u veći sistem. Zato sam htio napraviti modularnu platformu bogatu značajkama koja bi olakšala izgradnju senzora i izlaza povezanih s IoT-om.
Hvala DFRobotu i PCBGOGO.com na sponzorstvu ovog projekta!
Za detaljnije informacije posjetite Github repo:
Supplies
-
DFRobot ESP32 FireBeetle
www.dfrobot.com/product-1590.html
-
Senzor DHT22
www.dfrobot.com/product-1102.html
- APDS9960 Senzor svjetlosti i pokreta
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 Upravljački programi koračnih motora
- Čitač SD kartica
- NEMA17 koračni motori
Korak 1: Karakteristike
Glavna karakteristika ove ploče je ESP32 FireBeetle razvojna ploča 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 upotrebu sa komponentama poput APDS9960 ili LCD -a. Za očitavanje temperature prekinuti su pinovi za povezivanje sa DHT22 senzorom, kao i fotootpornik za očitavanje nivoa ambijentalnog svjetla.
Na ploči postoji podrška za analognu svjetlosnu traku koja ima tri MOSFET -a za pogon LED svjetla.
Korak 2: PCB
Proces dizajniranja PCB -a započeo sam stvaranjem sheme u Eagle -u. Budući da nisam uspio pronaći biblioteku ESP32 FireBeetle, umjesto toga sam samo koristio dva zaglavlja 1x18 pinova. Zatim sam stvorio krug za upravljanje napajanjem koji može prihvatiti 12v kroz DC bačvastu utičnicu i pretvoriti ga u 5v za napajanje senzora i ESP32.
Nakon što je shema završena, prešao sam na projektiranje same PCB -a.
Znao sam da bi utikač istosmjerne cijevi morao biti blizu prednje strane ploče, a kondenzatori za izravnavanje napajanja od 100uF trebaju biti blizu ulaza napajanja upravljačkog programa koračnog motora. Nakon što je sve postavljeno, počeo sam usmjeravati tragove.
Iako Oshpark proizvodi visokokvalitetne PCB -e, njihove cijene su prilično visoke. Srećom, PCBGOGO.com također čini odlične PCB -e po pristupačnoj cijeni. Mogao sam kupiti deset PCB -a za samo 5 USD, umjesto da platim 52 USD za samo tri ploče sa Oshpark.com.
Korak 3: Montaža
Sve u svemu, sastavljanje ploče bilo je prilično jednostavno. Počeo sam sa 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 upotrebu. 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ćava kućnom čvorištu da komunicira s APDS9960, zajedno s stvaranjem i upravljanjem tipkama i kapacitivnim dodirnim sučeljima. Sadrži sljedeće funkcije:
Dugme Kreiraj
Uzmi ako je dugme pritisnuto
Dobijte broj pritisaka na dugmad
Nabavite najnoviji pokret
Dobijte kapacitivnu vrijednost dodira
Dugmad su uskladištena kao struktura sa tri atributa: is_pressed, numberPresses i pin. Svako dugme, kada se stvori, priključeno je na prekid. 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 tipki, zajedno s ažuriranjem is_pressed Booleove vrijednosti.
Kapacitivne vrijednosti dodira su mnogo jednostavnije. Dohvaćaju se prosljeđivanjem dodirnog pina na funkciju touchRead ().
Najnoviji pokret se ažurira anketiranjem APDS9960 i provjerom je li otkrivena neka nova gesta, te ako je 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. Kada se ploča podigne, stvaraju se dva koračna objekta i oba motora postaju omogućena. Za gaziranje svakog motora koristi se funkcija “hub.step_motor (motor_id, steps)”, gdje je ID motora ili 0 ili 1.
Korak 7: Zapisivanje
Budući da ploča ima nekoliko senzora, želio sam mogućnost lokalnog prikupljanja i evidentiranja podataka.
Za početak bilježenja kreira se nova datoteka s “hub.create_log (naziv datoteke, zaglavlje)”, gdje se zaglavlje koristi za izradu CSV reda datoteke koji označava stupce. Prva kolona je uvijek 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 tm vremena se zatim prosljeđuje referencom u funkciju evidentiranja, zajedno s podacima i imenom datoteke.
Korak 8: Zvučni signal
Čemu služi IoT ploča ako ne možete puštati muziku? Zato sam uključio zujalicu sa funkcijom za reprodukciju zvukova. Pozivom “hub.play_sounds (melodija, trajanje, dužina)” počinje se reproducirati pjesma, pri čemu melodija predstavlja niz notnih frekvencija, trajanje kao niz trajanja nota, a dužina 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). Ovo šalje POST zahtjev na datu URL adresu s tim podacima, zajedno s imenom događaja ako je potrebno. Da biste postavili primjer integracije IFTTT -a, prvo stvorite novi applet. Zatim odaberite uslugu webhook koja se pokreće kada se primi zahtjev.
Zatim pozovite događaj “high_temp” i spremite ga. Zatim odaberite uslugu Gmail za dio „Taj“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 postavljanja, jednostavno zalijepite URL webhook -a koji je generirao 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 ispisivanja trenutnog vremena i pozivanja IFTTT događaja.
Korak 11: Planovi za budućnost
Sistem Smart Home Hub funkcionira vrlo dobro za jednostavnu kućnu automatizaciju i prikupljanje podataka. Može se koristiti za gotovo sve, kao što je postavljanje boje LED trake, praćenje temperature prostorije, provjeravanje da li svjetlo svijetli 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čuje se:
Kako napraviti pametnu kuću pomoću Arduino kontrolnog relejnog modula - Ideje za kućnu automatizaciju: 15 koraka (sa slikama)
Kako napraviti pametnu kuću pomoću Arduino kontrolnog relejnog modula | Ideje za kućnu automatizaciju: U ovom projektu automatizacije kuće dizajnirat ćemo relejni modul pametne kuće koji može kontrolirati 5 kućanskih aparata. Ovim relejnim modulom može se upravljati putem mobilnog telefona ili pametnog telefona, IC daljinskog upravljača ili daljinskog upravljača za TV, ručnim prekidačem. Ovaj pametni relej može osjetiti i
Kako napraviti spužvastu kuću od ananasa: 12 koraka
Kako napraviti kuću od ananasa od Sunđer Boba: Ko živi u ananasu pod morem? Odgovor na ovo pitanje (SpongeBob) prilično je očigledan većini ljudi danas. Naš tim dobio je zadatak dizajniranja i izgradnje rekvizita 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 pomoćnikom 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 zaista 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 povratnu informaciju na iste bez ikakvih izmjena na sadašnjem krugu i shemi. Dakle, ovaj dodatak za pro
[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 sistem pametne kuće s niskom cijenom, visokom kompatibilnošću koja bi radila besprijekorno i stabilno