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, Studeni
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 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

Značajke
Značajke
Značajke
Značajke
Značajke
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

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

Skupština
Skupština
Skupština
Skupština
Skupština
Skupština

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

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

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

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

Zvučni signal
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

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). 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

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