Kazalo:

LEIDS - nizkoenergijski senzor vrat IOT: 8 korakov (s slikami)
LEIDS - nizkoenergijski senzor vrat IOT: 8 korakov (s slikami)

Video: LEIDS - nizkoenergijski senzor vrat IOT: 8 korakov (s slikami)

Video: LEIDS - nizkoenergijski senzor vrat IOT: 8 korakov (s slikami)
Video: CS50 2015 - Week 6 2024, November
Anonim
LEIDS - IOT senzor vrat IOT z nizko porabo energije
LEIDS - IOT senzor vrat IOT z nizko porabo energije

Kaj je LEIDS?

LEIDS je senzor IOT, ki temelji na ESP8266. Ta senzor uporablja to ploščo, vezje z mehkim zapahom, trstično stikalo in nekaj magnetov, da ustvari senzor vrat, ki vas bo obvestil, ko se vrata odprejo in zaprejo. Ta senzor lahko priključite na strežnik MQTT, IFTTT ali številne druge okvire, ki podpirajo ESP8266. Ta učitelj bo uporabil IFTTT za enostavno ustvarjanje senzorja, ki bo poslal opozorilo na vašo mobilno napravo, ne glede na to, kje ste. Senzor lahko nastavite tudi tako, da omogoča več opozoril z ločenih vrat, nabiralnikov, pečic in vsega drugega, ki ima odprt/zaprt ali vklop/izklop fizični položaj. Prednost LEIDS -a je v tem, da uporablja minimalno moč in uporablja le, ko so vrata odprta, nato pa, ko so vrata zaprta, pošlje sporočilo, da vas opozori, da so bila vrata zaprta in se izklopi. To je bolje kot globoko spanje modula, saj ne porabi energije, če vrata ne odprete.

1. korak: Zaloge

Zaloge
Zaloge
Zaloge
Zaloge
Zaloge
Zaloge
Zaloge
Zaloge

Spodnji seznami prikazujejo orodja in dele, ki sem jih uporabil za ta projekt. Senzor je mogoče preoblikovati tako, da bo uporabljal različne dele in izgledal/deloval drugače ter uporabljal samo podobne koncepte.

Orodja:

  • Spajkalnik
  • ESP01-UART ali Arduino Uno (programer za ESP8266)
  • 3D tiskalnik (neobvezno)
  • Mostični kabli (neobvezno)
  • Ogledna plošča (neobvezno)

Deli:

  • ESP8266 ESP-01S x 1
  • Reed stikalo x 1 (po možnosti NC, sem lahko našel samo normalno odprt, zato moram uporabiti dva magneta, da deluje kot normalno zaprt)
  • AMS1117 3.3v regulator
  • 2n3904 NPN tranzistor x 1
  • P-Channel Mosfet x 1 (želimo nekaj z nizkim VGS, po možnosti NDP6020P)
  • Lipo baterija 3,7v 100 mAh x 1
  • Različni upori (100k ohm, 10k ohm, 220 ohm, 3k3 ohm)
  • Magneti 6 x 3 mm x 2
  • Dvostranski montažni trak
  • Žica
  • Spajkanje
  • Perfboard

3D natisnjeni deli:

Ohišje za senzor

2. korak: Mehki zapiralni tokokrog - strojna oprema

Mehki zapiralni tokokrog - strojna oprema
Mehki zapiralni tokokrog - strojna oprema

Mehko vezje, ki ga uporabljam, je sprememba sheme, ki sem jo našel na spletu. Nisem strokovnjak in verjamem, da obstajajo boljši načini za izgradnjo tega vezja, vendar za moj namen to vezje opravlja svojo nalogo!

Način delovanja je, da ko je stikalo trstičnega stikala zaprto z magnetnim poljem, dovoljuje tok tranzistorju NPN. Tranzistor NPN nato utemelji mosfet PNP, ki omogoča pretok toka v ESP8266. ESP8266 se vklopi in z enim od svojih zatičev ohrani ozemljitev mosfeta PNP, ki še naprej napaja ESP8266. Ko ESP8266 opravi svoje naloge, nastavi ta izhodni pin na LOW, ki prekine tranzistor NPN in zapre vrata na mosfetu PNP.

S takšnim vezjem lahko ESP8266 vklopite s stikalom, nato pa se lahko popolnoma izključi prek signala. To omogoča, da vezje ne črpa toka, ko je senzor zaprt/izklopljen.

3. korak: ESP8266 - Strojna oprema

ESP8266 - Strojna oprema
ESP8266 - Strojna oprema

ESP8266, ki ga uporabljam, bo poslal sporočilo, da vas opozori, ko so vrata (ali kaj drugega) odprta, nato pa bo počakal, da se vrata zaprejo, da bo poslalo sporočilo o zapiranju in se zaprlo. ESP8266 bo napajal vezje z mehkim zapahom in bo z enim zatičem bral trstično stikalo, drugi pa za vzdrževanje vklopa in nato za izklop. Za uporabo ESP-01 sem se odločil zaradi majhne oblike. ESP bo poslal spletno zahtevo, da nas obvesti, ko se senzor spremeni v "odprto" in "zaprto". Najlažji način, ki sem ga našel, je bil uporaba IFTTT in Google Preglednic. To je razloženo v naslednjih korakih.

4. korak: IFTTT za obvestila na daljavo - 1. del

IFTTT za obvestila na daljavo - 1. del
IFTTT za obvestila na daljavo - 1. del
IFTTT za obvestila na daljavo - 1. del
IFTTT za obvestila na daljavo - 1. del
IFTTT za obvestila na daljavo - 1. del
IFTTT za obvestila na daljavo - 1. del
IFTTT za obvestila na daljavo - 1. del
IFTTT za obvestila na daljavo - 1. del

V tem navodilu bomo uporabljali IFTTT in izvajali spletne kljuke in Googlove liste za prejemanje obvestil na daljavo na naši mobilni napravi. Za uporabo teh storitev potrebujete naslednje:

  • Google račun
  • Račun IFTTT (lahko/se mora prijaviti z Google Računom)
  • Aplikacija IFTTT za vašo mobilno napravo

Ko ustvarite/prijavite se v svoje račune, bomo ustvarili dva appleta. Fotografije na vrhu tega razdelka prikazujejo, kako upravljati spletno stran. Naslednji koraki so za prvi programček, zahtevo po sprožitvi dogodka. Ta programček bo prejel sporočilo od senzorja in dogodek shranil v dokumentu Google listov. Nato si lahko ogledate zgodovino vašega senzorja in vidite, kdaj je bil odprt in zaprt.

  1. Pojdite na povezavo "Moji jabolki" na vrhu
  2. Kliknite gumb "Nov programček"
  3. Kliknite modri gumb "+to"
  4. Poiščite »webhooks« in kliknite nanj
  5. Na naslednji strani izberite kartico »Prejemi spletno zahtevo«
  6. Nato nastavite ime dogodka na poljubno, jaz sem se ga odločil poimenovati "sensor_activated"
  7. Na naslednji strani kliknite modri gumb "+to"
  8. Poiščite storitev »google sheets« in jo izberite
  9. Na naslednji strani izberite funkcijo "Dodaj vrstico v preglednico"
  10. Dejanje izpolnite na naslednji način:

    • Ime preglednice, svoje sem poimenoval "Zgodovina senzorjev"
    • Oblikovana vrstica mora izgledati takole

      {{Pojavilo se je}} ||| {{Vrednost1}} ||| {{Vrednost2}}

    • Zadnje polje pustite takšno, kot je, razen če želite spremeniti, kje programček shrani stanje senzorja
  11. Nato kliknite "Ustvari dejanje"
  12. Nazadnje kliknite »Dokončaj« na zadnjem zaslonu

Zdaj pa preizkusimo, ali deluje

  1. Pojdite na to povezavo
  2. Nato kliknite gumb "Dokumentacija" (to stran "Dokumentacija" bomo uporabili pozneje)
  3. Zdaj boste v svojem osebnem razdelku za programček IFTTT Webhooks
  4. Izpolnite polje, kjer piše "{event}", z imenom vašega dogodka, v tem primeru je ime dogodka "sensor_activated"
  5. Zdaj izpolnite polje "vrednost1", to je polje, ki bo zajemalo lokacijo vašega senzorja, izpolnil ga bom z "Vhodna vrata"
  6. Zdaj izpolnite polje "value2", to je polje, ki bo imelo status senzorja, samo za testiranje ga bom izpolnil z "odprto"
  7. Nato kliknite modri gumb "Preizkusi"
  8. Če je bilo vse v redu, bi morali dobiti zeleno "Dogodek je bil sprožen." sporočilo na vrhu
  9. Zdaj, če želite videti, kako je shranjeno vaše sporočilo, lahko odprete svoje Googlove liste in poiščete dodano preglednico, priložil sem sliko, ki prikazuje, kako bo videti preglednica

Zdaj pa na naslednji korak dodajanje programčka, ki nas obvesti o spremembi stanja.

5. korak: IFTTT za obvestila na daljavo - 2. del

IFTTT za obvestila na daljavo - 2. del
IFTTT za obvestila na daljavo - 2. del
IFTTT za obvestila na daljavo - 2. del
IFTTT za obvestila na daljavo - 2. del
IFTTT za obvestila na daljavo - 2. del
IFTTT za obvestila na daljavo - 2. del

Zdaj bomo dodali programček, ki nas bo obvestil, ko preglednici stanja dodamo vrstico; z drugimi besedami, ko senzor sproži dogodek. Kot doslej bomo ustvarjali nov programček. Naslednji koraki vas bodo vodili pri ustvarjanju drugega programčka. Ker smo v prejšnjem koraku naredili nekaj podobnega, bom v ta korak dodal samo diapozitive.

  1. Pojdite na povezavo "Moji jabolki" na vrhu
  2. Kliknite gumb "Nov programček"
  3. Kliknite modri gumb "+to"
  4. Poiščite »google listov« in kliknite nanj
  5. Na naslednji strani izberite kartico »Nova vrstica dodana v preglednico«
  6. Nato izpolnite polja, da pokažete na preglednico, v katero piše drugi programček

    • V tem primeru je pot "IFTTT/MakerWebooks/sensor_activated"
    • Ime datoteke je "Zgodovina senzorja"
  7. Na naslednji strani kliknite modri gumb "+to"
  8. Poiščite storitev »obvestila« in jo izberite
  9. Zdaj moramo izpolniti polja za storitve obveščanja
    • Naslov se spremeni v

      {{ColumnB}} je bil {{ColumnC}}

    • Sporočilo je nastavljeno na

      {{ColumnB}} je bil {{ColumnC}} v {{ColumnA}}

    • Povezava ostane pri miru
  10. Nato kliknite "Ustvari dejanje"
  11. Nazadnje kliknite »Dokončaj« na zadnjem zaslonu

Če želite preizkusiti drugi del sistema obveščanja IFTTT, se prepričajte, da ste na mobilno napravo prenesli aplikacijo IFTTT, in se prijavite s svojimi poverilnicami. V mojem primeru se prijavim s svojim google računom. Zdaj lahko to preizkusimo tako, da se vrnemo na stran "Dokumentacija" in sprožimo test z imenom dogodka, nastavljenim kot "senzor_aktiven", polje "vrednost1", nastavljeno na lokacijo, in polje "vrednost2", nastavljeno na stanje.

To bi vam moralo poslati obvestilo. Če ga ne prejmete, se prepričajte, da ste prijavljeni z istim računom in da ste aplikaciji dovolili pošiljanje obvestil.

6. korak: Arduino IDE in Sketch

Arduino IDE in Sketch
Arduino IDE in Sketch
Arduino IDE in Sketch
Arduino IDE in Sketch

Programska oprema, uporabljena za ploščo, je sestavljena z uporabo Arduino IDE.

Logika je naslednja:

  • Trstično stikalo se zapre z odpiranjem vrat
  • ESP se nato vklopi in poveže z WiFi
  • Ko je povezava WiFi vzpostavljena, pošlje zahtevo http (pošlje ukaz v internet), ki nam pove, da so bila odprta vrata ali kaj drugega
  • Nato prebere signal iz trstičnega stikala, da ugotovi, ali so vrata zaprta
  • Ko plošča ESP odkrije, da je trstično stikalo odprto (tj. Vrata so bila zaprta), pošlje še eno zahtevo http, ki nam pove, da so bila vrata zaprta.
  • Nato signalizira vezje mehkega zapaha, da prekine napajanje plošče

Prenesite Arduino IDE

V ta razdelek sem priložil kodo arduino, ki jo lahko prenesete. Če nimate Arduino IDE, ga lahko prenesete na spletu na naslovu

Namestite ustreznega upravitelja plošče

Če želite naložiti kodo na svojo ploščo ESP, morate v Arduino IDE namestiti upravitelja plošče z naslednjimi koraki.

  • Pojdite v Datoteka> Nastavitve, da odprete okno z nastavitvami
  • V oknu z nastavitvami poiščite polje z naslovom »Dodatni URL -ji upravitelja plošč«
  • V to polje prilepite naslednjo povezavo https://arduino.esp8266.com/stable/package_esp8266com_index.json in pritisnite gumb "V redu"
  • Zdaj odprite upravitelja desk tako, da odprete Orodja> Kartica, prvi vnos pa bo Upravitelj desk
  • V meniju plošče vnesite "ESP8266" in namestite "esp8266" Izberem različico 2.5.0, saj sem imel nekaj težav z novejšimi različicami
  • Zdaj se vrnite in izberite svojo ploščo iz Orodja> Plošča> Splošni modul ESP8266
  • Nato zaprite in znova odprite arduino ide, da se prepričate, da so se spremembe zgodile

Odprite skico v Arduino IDE

Spremeniti moramo štiri vrstice kode, da bo senzor deloval za vas

  1. Spremenite SSID v svoj WiFi SSID, imenovan tudi ime vašega WiFi
  2. Spremenite geslo tako, da se ujema z geslom za vaš WiFi
  3. Spremenite url tako, da se ujema z URL -jem na strani "Dokumentacija" storitve "webhook"
  4. Spremenite lokacijo senzorja na mesto, kjer ga nameravate postaviti, to so lahko vhodna vrata, zadnja vrata, nabiralnik itd.

Zdaj, ko ste kodo prilagodili svojim potrebam, jo moramo naložiti na ploščo. V mojem primeru uporabljam USB programator in sledim navodilom zanj. To lahko zahteva veliko odpravljanja težav, zato predlagam, da na spletu poiščete podrobnejšo vadnico. V mojem primeru priključim ESP-01 na programator, nato ga priključim na računalnik, nato stikalo obrnem iz uart na prog, nazadnje odklopim in znova vklopim programer. Tako ostane ESP v načinu programiranja. Zdaj samo kliknem gumb za nalaganje in pustim, da se nalaganje konča. Če želite preveriti, ali se poveže, lahko odprete serijski monitor in si ogledate sporočila o stanju. Ko naložite skico, jo vse skupaj spajkamo, postavimo v ohišje in namestimo na želeno mesto.

7. korak: ohišje (3D natisnjeno)

Ohišje (3D natisnjeno)
Ohišje (3D natisnjeno)
Ohišje (3D natisnjeno)
Ohišje (3D natisnjeno)
Ohišje (3D natisnjeno)
Ohišje (3D natisnjeno)

Naslednje ohišje sem oblikoval tako, da sprejme vse komponente, omogoči namestitev magneta in poravna trstično stikalo. Drugi del se uporablja samo za držanje drugega magneta, ki omogoča odpiranje in zapiranje stikala.

Ko so vse komponente spajane skupaj, jih lahko pritisnemo navzdol v ohišje, če želite, lahko na dno dodate malo vročega lepila, da se vse zadrži. Nato moramo z elektroniko pritisniti en magnet v ohišje in poravnati trstično stikalo po potrebi. Drugi magnet je treba pritisniti v drugo ohišje. Ko sta oba ohišja dokončana, ga lahko preizkusimo tako, da dva ohišja sestavimo skupaj, jih nato ločimo in združimo. Zdaj bi morali dobiti dve obvestili, eno za odprt senzor, drugo za zaprto tipalo. Oba držite skupaj, da se baterija ne izprazni.

Pritrdite pritrdilni trak na zadnjo stran senzorjev in jih pritrdite na želeno mesto. Svojega sem namestil na nabiralnik. Zdaj preverite, ali je poravnava pravilna in ali lahko senzor pošlje odprto in zaprto sporočilo.

Voila, zdaj imaš svoj lasten senzor, ki te opozori, ko se odpre in zapre. Sporočite mi, če vam je všeč in če menite, da bi lahko kaj izboljšali.

To navodilo pošiljam tudi na natečaj IOT, zato se prepričajte, da vam je všeč in glasujete za ta in vse druge projekte IOT, v katerih ste uživali

8. korak: Prihodnje izboljšave

Pri tem projektu sem naletel na nekaj vprašanj. Prva težava, na katero sem naletel, je bila uporaba MOSFET -a, ki je imel previsok Vgs, zato sem moral preiti na drugega. Drugič, trstično stikalo, ki sem ga uporabil, je običajno odprto in v mojem primeru bi bilo običajno zaprto stikalo lažje izvesti in bi prihranilo veliko prostora. Nazadnje je bilo z esp 01s zelo težko delati in moral sem se spoprijeti z zatiči gpio, da je deloval pravilno, vendar sem imel še vedno nekaj težav. Mislim, da me je ta projekt naučil veliko konceptov in mi pomagal pri ustvarjanju več idej in izvedb z uporabo plošč esp8266 in IFTTT.

IoT Challenge
IoT Challenge
IoT Challenge
IoT Challenge

Drugo mesto na IoT Challenge

Priporočena: