Kazalo:
- Zaloge
- 1. korak: Lastnosti
- Korak: PCB
- 3. korak: Montaža
- 4. korak: Pregled programiranja
- 5. korak: Vhodi
- Korak 6: Izhodi
- 7. korak: Zapisovanje
- 8. korak: Zvočni signal
- 9. korak: Zunanje integracije interneta stvari
- 10. korak: Uporaba
- 11. korak: Načrti za prihodnost
Video: Središče za pametni dom ESP32: 11 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Ustvarjanje sistema, ki lahko obdeluje velike količine senzorskih podatkov, ima več izhodov in se poveže z internetom ali lokalnim omrežjem, traja dolgo in zahteva veliko truda. Ljudje, ki si želijo ustvariti lastna pametna domača omrežja, se prepogosto spopadajo z možnostjo iskanja in sestavljanja komponent po meri v večji sistem. Zato sem želel narediti modularno in z funkcijami bogato platformo, ki bi olajšala izdelavo senzorjev in izhodov, povezanih z internetom stvari.
Hvala DFRobot in PCBGOGO.com za sponzorstvo tega projekta!
Za podrobnejše informacije obiščite repo Github:
Zaloge
-
DFRobot ESP32 FireBeetle
www.dfrobot.com/product-1590.html
-
Senzor DHT22
www.dfrobot.com/product-1102.html
-
APDS9960 Senzor svetlobe in kretnje
www.dfrobot.com/product-1361.html
-
I2C 20x4 LCD modul
www.dfrobot.com/product-590.html
-
Analogni RGB LED trak
www.dfrobot.com/product-1829.html
- Gonilniki koračnih motorjev DRV8825
- Bralnik kartic SD
- Koračni motorji NEMA17
1. korak: Lastnosti
Glavna značilnost te plošče je razvojna plošča ESP32 FireBeetle, ki obravnava vso komunikacijo, odčitke senzorjev in izhode. Obstajata dva gonilnika koračnih motorjev, ki upravljata dva bipolarna koračna motorja.
Vodilo I2C je razčlenjeno tudi za uporabo s komponentami, kot sta APDS9960 ali LCD. Za odčitavanje temperature so zlomljeni zatiči za povezavo s senzorjem DHT22, pa tudi fotografski upor za odčitavanje ravni svetlobe v okolici.
Na plošči je podpora za analogni svetlobni trak, ki ima tri MOSFET -e za pogon LED luči.
Korak: PCB
Postopek oblikovanja PCB sem začel tako, da sem najprej ustvaril shemo v Eaglu. Ker nisem mogel najti knjižnice ESP32 FireBeetle, sem namesto tega uporabil dve pinski 1x18 -polni glavi. Nato sem ustvaril vezje za upravljanje porabe energije, ki bi lahko sprejelo 12v skozi enosmerni priključek in ga pretvorilo v 5v za napajanje senzorjev in ESP32.
Po dokončanju sheme sem se lotil oblikovanja samega tiskanega vezja.
Vedel sem, da bi moral biti enosmerni cevni vtič blizu sprednje strani plošče, kondenzatorji za glajenje napajalnika 100uF pa morajo biti blizu vhodov v napajanje gonilnika koračnega motorja. Ko je bilo vse postavljeno, sem začel usmerjati sledi.
Medtem ko Oshpark izdeluje visokokakovostne PCB -je, so njihove cene precej visoke. Na srečo PCBGOGO.com izdeluje tudi odlične tiskane vezje po dostopni ceni. Deset PCB -jev sem lahko kupil za samo 5 USD, namesto da bi plačal 52 USD za samo tri plošče z Oshpark.com.
3. korak: Montaža
Na splošno je bilo sestavljanje plošče precej preprosto. Začel sem s spajkanjem površinsko nameščenih komponent, nato pa pritrdil konektor in regulator priključka. Nato sem v glave zatičev zalemil komponente, kot so gonilniki motorjev in FireBeetle.
Po končanem spajkanju sem ploščo preizkusil na kratek stik, tako da sem multimeter prestavil v način merjenja upora in preveril, ali je upor presegel določeno količino. Plošča je minila, tako da sem lahko nato priključil vsako komponento.
4. korak: Pregled programiranja
Želel sem, da je koda za to ploščo modularna in enostavna za uporabo. To je pomenilo več razredov, ki obravnavajo posebne funkcije, skupaj z večjim razredom ovoja, ki združuje manjše.
5. korak: Vhodi
Za ravnanje z vhodi sem ustvaril razred, imenovan »Hub_Inputs«, ki omogoča domačemu vozlišču komuniciranje z APDS9960, skupaj z ustvarjanjem in upravljanjem gumbov in kapacitivnih vmesnikov na dotik. Vsebuje naslednje funkcije:
Gumb za ustvarjanje
Preveri, če pritisneš gumb
Pridobite število pritiskov na gumbe
Pridobite najnovejšo potezo
Pridobite kapacitivno vrednost na dotik
Gumbi so shranjeni kot struktura s tremi atributi: is_pressed, numberPresses in pin. Vsak gumb, ko je ustvarjen, je pritrjen na prekinitev. Ko se ta prekinitev sproži, se rutini storitve prekinitve (ISR) posreduje kazalec tega gumba (podan kot pomnilniški naslov v nizu gumbov) in poveča število pritiskov gumbov skupaj s posodabljanjem logične vrednosti is_pressed.
Kapacitivne vrednosti na dotik so veliko enostavnejše. Pridobijo se s prenosom zatiča na dotik funkciji touchRead ().
Najnovejšo potezo posodobimo tako, da poizvedujemo APDS9960 in preverimo, ali je bila zaznana kakšna nova poteza ter če je bila zaznana, nastavimo spremenljivko zasebne poteze na to potezo.
Korak 6: Izhodi
Središče pametnega doma ponuja več načinov za oddajanje informacij in menjavo luči. Obstajajo zatiči, ki prekinejo vodilo I2C in uporabnikom omogočajo priključitev LCD -ja. Doslej je podprta samo ena velikost LCD -ja: 20 x 4. Z uporabo funkcije »hub.display_message ()« lahko uporabniki prikažejo sporočila na LCD -ju tako, da vnesejo nizni predmet.
Obstaja tudi nožica za priključitev niza analognih LED. Klic funkcije »hub.set_led_strip (r, g, b)« nastavi barvo traku.
Dva koračna motorja poganjata par vozniških plošč DRV8825. Odločil sem se, da bom za upravljanje motorja uporabil knjižnico BasicStepper. Ko se plošča zažene, se ustvarita dva koračna predmeta in oba motorja postaneta omogočena. Za korakanje vsakega motorja se uporablja funkcija »hub.step_motor (motor_id, steps)«, kjer je ID motorja 0 ali 1.
7. korak: Zapisovanje
Ker ima plošča več senzorjev, sem želel možnost lokalnega zbiranja in beleženja podatkov.
Za začetek beleženja se ustvari nova datoteka z »hub.create_log (ime datoteke, glava)«, kjer se glava uporablja za izdelavo vrstice datoteke CSV, ki označuje stolpce. Prvi stolpec je vedno časovni žig v letu Mesec Dan Ura: Min: Sec format. Če želite dobiti čas, funkcija hub.log_to_file () dobi čas s funkcijo basic_functions.get_time (). Časovna struktura tm se nato posreduje s sklicem v funkcijo beleženja, skupaj s podatki in imenom datoteke.
8. korak: Zvočni signal
Kakšna je korist od plošče IoT, če ne morete predvajati glasbe? Zato sem vključil brenčalo s funkcijo predvajanja zvokov. Klicanje »hub.play_sounds (melodija, trajanje, dolžina)« začne predvajati pesem, pri čemer je melodija niz frekvenc not, trajanje kot niz trajanja not in dolžina kot število not.
9. korak: Zunanje integracije interneta stvari
Središče trenutno podpira spletne kljuke IFTTT. Sprožite jih lahko tako, da pokličete funkcijo Hub_IoT.publish_webhook (url, podatki, dogodek, ključ) ali Hub_IoT.publish_webhook (url, podatki). To pošlje zahtevo POST na dani URL s priloženimi podatki, skupaj z imenom dogodka, če je potrebno. Če želite nastaviti primer integracije IFTTT, najprej ustvarite nov programček. Nato izberite storitev webhook, ki se sproži ob prejemu zahteve.
Nato pokličite dogodek »high_temp« in ga shranite. Nato izberite storitev Gmail za del »To« in izberite možnost »Pošlji e -poštno sporočilo sebi«. V nastavitvah storitve vnesite »Temperatura je visoka!« za motiv, nato pa postavim »Izmerjeno temperaturo {{Value1}} na {{OccurredAt}}», ki prikazuje izmerjeno temperaturo in čas, ko je bil dogodek sprožen.
Ko ga nastavite, preprosto prilepite URL spletnega kljuka, ki ga ustvari IFTTT, in v razdelek dogodkov vnesite »high_temp«.
10. korak: Uporaba
Če želite uporabljati Hub Smart Hub, preprosto pokličite vse potrebne funkcije v nastavitvah () ali zanki (). Sem že dal primere klicev funkcij, na primer tiskanje trenutnega časa in klic dogodka IFTTT.
11. korak: Načrti za prihodnost
Sistem Smart Home Hub zelo dobro deluje pri preprostih opravilih avtomatizacije doma in zbiranja podatkov. Uporablja se lahko za skoraj vse, na primer za nastavitev barve LED traku, spremljanje temperature prostora, preverjanje, ali lučka sveti, in za številne druge potencialne projekte. V prihodnosti bi rad še bolj razširil funkcionalnost. To lahko vključuje dodajanje robustnejšega spletnega strežnika, lokalno gostovanje datotek in celo Bluetooth ali mqtt.
Priporočena:
Oddaljeni pametni dom: 5 korakov
Oddaljeni pametni dom: Materiali: dunne gelamineerde hout tablica. 1 x grondplaat z een premerom 1 cmkleine nagels 2 x krušne žice plakbandveel kabels s premerom 0,3 cm veel skakalec kabels gereedschap: boormachinelijmpistoolsoldeerboutschroevendra
Kako narediti pametni dom z arduinskim kontrolnim relejskim modulom - Ideje za avtomatizacijo doma: 15 korakov (s slikami)
Kako narediti pametni dom z arduinskim kontrolnim relejskim modulom | Ideje za avtomatizacijo doma: V tem projektu avtomatizacije doma bomo oblikovali relejni modul pametnega doma, ki lahko nadzoruje 5 gospodinjskih aparatov. Ta relejni modul lahko upravljate z mobilnega telefona ali pametnega telefona, daljinskega upravljalnika IR ali daljinskega upravljalnika televizorja, ročnega stikala. Ta pametni rele lahko zazna tudi
Pametni dom z Arduinom: 11 korakov (s slikami)
Pametni dom z Arduinom: Pozdravljeni, pokazal vam bom, kako zgraditi svoj pametni dom. Prikazuje temperaturo znotraj in zunaj, če je okno odprto ali zaprto, prikazuje, ko dežuje, in sproži alarm, ko senzor PIR zazna. Na androidu sem naredil aplikacijo za
Naredite svoje središče Afero z Raspberry Pi: 6 korakov
Naredite svoje središče Afero z Raspberry Pi: Živjo vsi! Objavili smo nekaj navodil, ki dokazujejo, kako enostavno je z našo ploščo Afero Modulo-1 povezati svoje naprave z oblakom, da bodo brezžično dostopne in brezžično upravljane. in se lahko pogovarjajo samo z drugimi napravami
Središče USB v notranjosti altiod pločevinke: 4 koraki
USB -zvezdišče v notranjosti Altiods pločevinke: Ta navodila vam bodo naučila, kako namestiti zvezdišče USB v pločevinko Altoids