Sadržaj:

ESP32 čvorište za pametnu kuću: 11 koraka
ESP32 čvorište za pametnu kuću: 11 koraka

Video: ESP32 čvorište za pametnu kuću: 11 koraka

Video: ESP32 čvorište za pametnu kuću: 11 koraka
Video: OctoPrint — за 15 долларов на Raspberry Pi Zero 2 Вт. 2024, Novembar
Anonim
ESP32 čvorište za pametnu kuću
ESP32 čvorište za pametnu kuću
ESP32 čvorište za pametnu kuću
ESP32 čvorište za pametnu kuću
ESP32 čvorište za pametnu kuću
ESP32 čvorište za pametnu kuću
ESP32 čvorište za pametnu kuću
ESP32 čvorište za pametnu kuću

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

Karakteristike
Karakteristike
Karakteristike
Karakteristike
Karakteristike
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

PCB
PCB
PCB
PCB
PCB
PCB
PCB
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

Montaža
Montaža
Montaža
Montaža
Montaža
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

Ulazi
Ulazi
Ulazi
Ulazi
Ulazi
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

Izlazi
Izlazi
Izlazi
Izlazi
Izlazi
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

Logging
Logging
Logging
Logging
Logging
Logging

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

Zujalica
Zujalica

Č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

Vanjske IoT integracije
Vanjske IoT integracije
Vanjske IoT integracije
Vanjske IoT integracije
Vanjske IoT integracije
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

Upotreba
Upotreba
Upotreba
Upotreba
Upotreba
Upotreba
Upotreba
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: