Turinys:

LEIDS - mažos energijos IOT durų jutiklis: 8 žingsniai (su nuotraukomis)
LEIDS - mažos energijos IOT durų jutiklis: 8 žingsniai (su nuotraukomis)

Video: LEIDS - mažos energijos IOT durų jutiklis: 8 žingsniai (su nuotraukomis)

Video: LEIDS - mažos energijos IOT durų jutiklis: 8 žingsniai (su nuotraukomis)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Lapkritis
Anonim
LEIDS - mažai energijos turintis IOT durų jutiklis
LEIDS - mažai energijos turintis IOT durų jutiklis

Kas yra LEIDS?

LEIDS yra IOT jutiklis, pagrįstas ESP8266. Šis jutiklis naudoja šią plokštę, minkštą fiksavimo grandinę, nendrinį jungiklį ir kai kuriuos magnetus, kad sukurtų durų jutiklį, kuris jums praneš, kai jūsų durys atsidaro ir užsidaro. Šis jutiklis gali būti prijungtas prie jūsų MQTT serverio, IFTTT ar daugelio kitų sistemų, palaikančių ESP8266. Ši instrukcija naudos IFTTT, kad lengvai sukurtų jutiklį, kuris išsiųs įspėjimą į jūsų mobilųjį įrenginį, kad ir kur būtumėte. Jutiklį taip pat galima sukonfigūruoti taip, kad būtų galima gauti kelis įspėjimus iš atskirų durų, pašto dėžučių, orkaitių ir visko, kas turi fizinę atidarymo/uždarymo arba įjungimo/išjungimo padėtį. LEIDS pranašumas yra tas, kad jis naudoja minimalią energiją ir naudoja energiją tik tada, kai durys yra atidarytos, tada, kai durys uždaromos, jis siunčia pranešimą, įspėjantį, kad durys buvo uždarytos ir išsijungia. Tai geriau nei gilus miego modulis, nes jis nenaudoja energijos, jei durys nėra atidarytos.

1 žingsnis: reikmenys

Prekės
Prekės
Prekės
Prekės
Prekės
Prekės
Prekės
Prekės

Žemiau esančiuose sąrašuose parodytos priemonės ir dalys, kurias naudojau šiam projektui. Jutiklis gali būti pertvarkytas taip, kad būtų naudojamos skirtingos dalys ir atrodytų/veiktų kitaip, ir tiesiog būtų naudojamos panašios sąvokos.

Įrankiai:

  • Lituoklis
  • ESP01-UART arba Arduino Uno (ESP8266 programuotojas)
  • 3D spausdintuvas (neprivaloma)
  • Trumpieji kabeliai (neprivaloma)
  • Duonos lenta (neprivaloma)

Dalys:

  • ESP8266 ESP-01S x 1
  • Nendrinis jungiklis x 1 (pageidautina NC, galėčiau rasti tik normaliai atidarytą, todėl turiu naudoti du magnetus, kad jis veiktų kaip įprastai uždarytas)
  • AMS1117 3.3v reguliatorius
  • 2n3904 NPN tranzistorius x 1
  • „P-Channel Mosfet x 1“(norime to, kas turi žemą VGS, geriausia NDP6020P)
  • 3,7 V 100 mAh „Lipo“baterija x 1
  • Įvairūs rezistoriai (100k om, 10k om, 220 om, 3k3 om)
  • 6x3 mm magnetai x 2
  • Dvipusė tvirtinimo juosta
  • Viela
  • Lituoklis
  • Perfboard

3D spausdintos dalys:

Dėklas jutikliui

2 žingsnis: minkšto fiksavimo grandinė - aparatinė įranga

Minkšto fiksavimo grandinė - aparatinė įranga
Minkšto fiksavimo grandinė - aparatinė įranga

Mano naudojama minkšto fiksatoriaus grandinė yra schemos, kurią radau internete, modifikacija. Aš nesu ekspertas ir manau, kad yra geresnių būdų sukurti šią grandinę, bet mano tikslams ši grandinė atlieka savo darbą!

Tai veikia taip, kad kai nendrinis jungiklis yra uždarytas magnetiniu lauku, jis leidžia srovę patekti į NPN tranzistorių. Tada NPN tranzistorius įžemina PNP mosfet, kuris leidžia srovei tekėti į ESP8266. Įjungus ESP8266, naudojamas vienas iš jo kaiščių, kad PNP „mosfet“būtų įžemintas, kuris ir toliau maitina ESP8266. Kai ESP8266 atliks savo užduotis, jis nustatys tą išvesties kaištį į LOW, kuris nutraukia NPN tranzistorių ir uždaro PNP mosfet vartus.

Naudojant tokią grandinę kaip ESP8266, jis gali būti įjungiamas jungikliu, o tada gali visiškai išsijungti per signalą. Tai leidžia grandinei pritraukti srovę, kai jutiklis yra uždarytas/išjungtas.

3 žingsnis: ESP8266 - Aparatūra

ESP8266 - Techninė įranga
ESP8266 - Techninė įranga

Mano naudojamas ESP8266 siunčia pranešimą, kad įspėtų, kai durys (ar kitas dalykas) yra atidarytos, ir tada lauks, kol durys užsidarys, kad išsiųstų uždarymo pranešimą ir išsijungtų. ESP8266 bus maitinamas iš minkšto fiksatoriaus grandinės ir naudos vieną kaištį nendriniam jungikliui nuskaityti, o kitą kaištį, kad jis būtų įjungtas, o tada išsijungs. Aš pasirinkau naudoti ESP-01 dėl mažos formos. ESP atsiųs žiniatinklio užklausą, kad praneštų mums, kai jutiklis pakeistas į „atidarytas“ir „uždarytas“. Lengviausias mano rastas metodas buvo naudoti IFTTT ir „Google“skaičiuokles. Tai paaiškinta tolesniuose žingsniuose.

4 žingsnis: IFTTT nuotoliniams pranešimams - 1 dalis

IFTTT nuotoliniams pranešimams - 1 dalis
IFTTT nuotoliniams pranešimams - 1 dalis
IFTTT nuotoliniams pranešimams - 1 dalis
IFTTT nuotoliniams pranešimams - 1 dalis
IFTTT nuotoliniams pranešimams - 1 dalis
IFTTT nuotoliniams pranešimams - 1 dalis
IFTTT nuotoliniams pranešimams - 1 dalis
IFTTT nuotoliniams pranešimams - 1 dalis

Šioje instrukcijoje bus naudojamas IFTTT ir žiniatinklio užraktų bei „Google“lapų diegimas, kad gautumėte nuotolinius pranešimus mūsų mobiliajame įrenginyje. Norėdami naudotis šiomis paslaugomis, jums reikės:

  • „Google“paskyra
  • IFTTT paskyra (galima/reikia prisijungti naudojant „Google“paskyrą)
  • IFTTT programa jūsų mobiliajam įrenginiui

Kai sukursite/prisijungsite prie savo paskyrų, sukursime dvi programėles. Šio skyriaus viršuje esančiose nuotraukose parodyta, kaip manevruoti tinklalapį. Šie veiksmai yra susiję su pirmąja programėle, įvykio suaktyvinta užklausa. Ši programėlė gaus pranešimą iš jutiklio ir išsaugos įvykį „Google“lapų dokumente. Tada galite peržiūrėti savo jutiklio istoriją ir pamatyti, kada jis buvo atidarytas ir uždarytas.

  1. Eikite į nuorodą „Mano programėlės“, esančią viršuje
  2. Spustelėkite mygtuką „Nauja programėlė“
  3. Spustelėkite mėlyną mygtuką „+šis“
  4. Ieškokite „webhooks“ir spustelėkite jį
  5. Kitame puslapyje pasirinkite kortelę „Gauti žiniatinklio užklausą“
  6. Tada nustatykite įvykio pavadinimą kaip norite, aš nusprendžiau pavadinti jį „sensor_activated“
  7. Kitame puslapyje spustelėkite mėlyną mygtuką „+tas“
  8. Ieškokite „google sheet“paslaugos ir pasirinkite ją
  9. Kitame puslapyje pasirinkite funkciją „Pridėti eilutę prie skaičiuoklės“
  10. Užpildykite veiksmą taip:

    • Skaičiuoklės pavadinimas, aš pavadinau savo „jutiklių istorija“
    • Formatuota eilutė turi atrodyti taip

      {{ĮvykoAt}} ||| {{Vertė1}} ||| {{Value2}}

    • Palikite paskutinį lauką tokį, koks yra, nebent norite pakeisti, kur programėlė išsaugos jutiklio būseną
  11. Tada spustelėkite „Sukurti veiksmą“
  12. Galiausiai paskutiniame ekrane spustelėkite „Baigti“

Dabar išbandykime, ar tai veikia

  1. Eikite į šią nuorodą
  2. Tada spustelėkite mygtuką „Dokumentacija“(vėliau vėl naudosime šį „Dokumentų“puslapį)
  3. Dabar būsite asmeniniame IFTTT Webhooks programėlės skyriuje
  4. Užpildykite lauką, kuriame sakoma „{event}“, savo įvykio pavadinimą, šiuo atveju įvykio pavadinimas yra „sensor_activated“
  5. Dabar užpildykite lauką „vertė1“, tai yra laukas, kuriame bus jūsų jutiklio vieta, aš užpildysiu jį „priekinėmis durimis“
  6. Dabar užpildykite lauką „value2“, tai yra laukas, kuris turės jutiklio būseną, aš užpildysiu jį „atidarytu“tik bandymui
  7. Tada spustelėkite mėlyną mygtuką „Išbandyti“
  8. Jei viskas klostėsi gerai, turėtumėte gauti žalią pranešimą „Įvykis suaktyvintas“. žinutė viršuje
  9. Dabar, jei norite pamatyti, kaip jame buvo išsaugotas jūsų pranešimas, galite atidaryti „Google“lapus ir rasti prie jo pridėtą skaičiuoklę. Pridėjau paveikslėlį, kuriame parodyta, kaip atrodys skaičiuoklė

Dabar pereikite prie kito žingsnio pridėdami programėlę, kad praneštumėte mums apie būsenos pasikeitimą.

5 veiksmas: IFTTT nuotoliniams pranešimams - 2 dalis

IFTTT nuotoliniams pranešimams - 2 dalis
IFTTT nuotoliniams pranešimams - 2 dalis
IFTTT nuotoliniams pranešimams - 2 dalis
IFTTT nuotoliniams pranešimams - 2 dalis
IFTTT nuotoliniams pranešimams - 2 dalis
IFTTT nuotoliniams pranešimams - 2 dalis

Dabar pridėsime programėlę, kuri praneš mums, kai būsenos skaičiuoklė pridės eilutę; kitaip tariant, kai jutiklis įjungia įvykį. Kaip ir anksčiau, kursime naują programėlę. Šie veiksmai padės jums sukurti antrąją programėlę. Kadangi ankstesniame žingsnyje padarėme kažką panašaus, prie šio veiksmo pridėsiu tik tas skaidres, kurios skiriasi.

  1. Eikite į nuorodą „Mano programėlės“, esančią viršuje
  2. Spustelėkite mygtuką „Nauja programėlė“
  3. Spustelėkite mėlyną mygtuką „+šis“
  4. Ieškokite „google sheet“ir spustelėkite jį
  5. Kitame puslapyje pasirinkite kortelę „Nauja eilutė pridėta prie skaičiuoklės“
  6. Tada užpildykite laukus ir nurodykite skaičiuoklę, į kurią rašo kita programėlė

    • Šiame pavyzdyje kelias yra „IFTTT/MakerWebooks/sensor_activated“
    • Failo pavadinimas yra „Sensor History“
  7. Kitame puslapyje spustelėkite mėlyną mygtuką „+tas“
  8. Ieškokite „pranešimų“paslaugos ir pasirinkite ją
  9. Dabar turime užpildyti pranešimų paslaugos laukus

    • Pavadinimas pakeistas į

      {{ColumnB}} buvo {{ColumnC}}

    • Pranešimas nustatytas į

      {{ColumnB}} buvo {{ColumnC}} {{ColumnA}}

    • Nuoroda paliekama viena
  10. Tada spustelėkite „Sukurti veiksmą“
  11. Galiausiai paskutiniame ekrane spustelėkite „Baigti“

Norėdami išbandyti antrąją IFTTT pranešimų sistemos dalį, įsitikinkite, kad atsisiųsite IFTTT programą į savo mobilųjį įrenginį ir prisijunkite naudodami savo kredencialus. Mano atveju aš prisijungiu naudodami savo „Google“paskyrą. Dabar galime tai patikrinti grįžę į „Dokumentacijos“puslapį ir išjungę testą, įvykio pavadinimą nustatę kaip „sensor_activated“, lauke „value1“nustatę vietą, o lauke „value2“- būseną.

Tai turėtų atsiųsti jums pranešimą. Jei to negaunate, įsitikinkite, kad esate prisijungę naudodami tą pačią paskyrą ir ar leidote programai siųsti jums pranešimus.

6 veiksmas: „Arduino IDE“ir eskizas

„Arduino IDE“ir „Sketch“
„Arduino IDE“ir „Sketch“
„Arduino IDE“ir „Sketch“
„Arduino IDE“ir „Sketch“

Plokštėje naudojama programinė įranga yra sudaryta naudojant „Arduino IDE“.

Logika tokia:

  • Nendrinis jungiklis uždaromas atidarius duris
  • Tada ESP įjungiamas ir prijungiamas prie „WiFi“
  • Užmezgus „WiFi“ryšį, jis siunčia http užklausą (siunčia komandą į internetą), kuri mums sako, kad buvo atidarytos durys ar kažkas kita
  • Tada jis nuskaito signalą iš nendrinio jungiklio, kad nustatytų, ar durys buvo uždarytos
  • Kai ESP plokštė nustato, kad nendrinis jungiklis yra atidarytas (ty durys buvo uždarytos), ji siunčia kitą http užklausą, nurodančią, kad durys buvo uždarytos
  • Tada jis signalizuoja minkšto fiksatoriaus grandinę, kad nutrauktų plokštės maitinimą

Atsisiųskite „Arduino IDE“

Prie šio skyriaus pridėjau arduino kodą, kurį galite atsisiųsti. Jei neturite „Arduino IDE“, galite jį atsisiųsti internetu adresu

Įdiekite tinkamą plokštės tvarkyklę

Norėdami įkelti kodą į savo ESP plokštę, turite įdiegti lentos tvarkyklę „Arduino IDE“, atlikdami šiuos veiksmus.

  • Eikite į Failas> Nuostatos, kad atidarytumėte nuostatų langą
  • Nuostatų lange raskite lauką „Papildomi valdytojo URL“
  • Įklijuokite šią nuorodą į šį lauką https://arduino.esp8266.com/stable/package_esp8266com_index.json ir paspauskite mygtuką „Gerai“
  • Dabar atidarykite lentų valdytoją, eidami į Įrankiai> Lenta, tada pirmasis įrašas bus Lentų valdytojas
  • Lentos meniu įveskite „ESP8266“ir įdiekite „esp8266“, pasirenku 2.5.0 versiją, nes turėjau problemų su naujesnėmis versijomis
  • Dabar grįžkite ir pasirinkite savo plokštę iš Įrankiai> Lenta> Bendrasis ESP8266 modulis
  • Tada uždarykite ir vėl atidarykite arduino ide, kad įsitikintumėte, jog pokyčiai įvyko

Atidarykite eskizą „Arduino IDE“

Turime pakeisti keturias kodo eilutes, kad jutiklis veiktų jums

  1. Pakeiskite SSID į „WiFi“SSID arba „wifi“pavadinimą
  2. Pakeiskite slaptažodį, kad jis atitiktų jūsų „Wi -Fi“slaptažodį
  3. Pakeiskite URL, kad jis atitiktų URL iš „Webhook“paslaugos „Dokumentacijos“puslapio
  4. Pakeiskite jutiklio vietą į vietą, kurioje planuojate jį įdėti, tai gali būti priekinės durys, galinės durys, pašto dėžutė ir kt.

Dabar, kai pakeitėte kodą pagal savo poreikius, turime jį įkelti į lentą. Mano atveju aš naudoju USB programuotoją ir vadovaujuosi jo instrukcijomis. Tam gali prireikti daug trikčių šalinimo, todėl siūlau ieškoti išsamesnės pamokos internete. Mano atveju ESP-01 prijungiu prie programuotojo, tada įkišu į kompiuterį, tada perjungiu jungiklį iš uart į prog, galiausiai atjungiu ir vėl įjungiu programuotoją. Dabar ESP lieka programavimo režimu. Dabar tiesiog spusteliu įkėlimo mygtuką ir leidžiu įkelti. Jei norite pamatyti, ar jis jungiasi, galite atidaryti nuoseklųjį monitorių ir peržiūrėti būsenos pranešimus. Kai įkelsite eskizą, mes viską lituosime, įdėsime į korpusą ir pritvirtinsime prie norimos vietos.

7 žingsnis: gaubtas (3D spausdintas)

Dėklas (3D spausdintas)
Dėklas (3D spausdintas)
Dėklas (3D spausdintas)
Dėklas (3D spausdintas)
Dėklas (3D spausdintas)
Dėklas (3D spausdintas)

Aš suprojektavau šį korpusą, kad tilptų visi komponentai, būtų galima įdėti magnetą ir suderinti nendrių jungiklį. Antroji dalis naudojama tik antram magnetui laikyti, kuris leis atidaryti ir uždaryti jungiklį.

Kai visi komponentai bus sulituoti, galime juos nuspausti į dėklą, jei norite, galite įpilti šiek tiek karštų klijų į apačią, kad viskas liktų. Tada turime į elektroninį korpusą įspausti vieną magnetą ir suderinti nendrių jungiklį, jei reikia. Kitas magnetas turi būti įspaustas į kitą korpusą. Kai abu gaubtai bus baigti, galėsime juos išbandyti, sudėję abu gaubtus, tada atskirti ir vėl sujungti. Dabar turėtume gauti du pranešimus: vieną, kai jutiklis atidarytas, o kitą - uždarytą. Laikykite abu kartu, kad akumuliatorius neišsikrautų.

Pritvirtinkite tvirtinimo juostą prie jutiklių galo ir uždėkite juos norimoje vietoje. Aš pritvirtinau savo pašto dėžutę. Dabar patikrinkite, ar lygiavimas yra teisingas ir ar jutiklis gali siųsti atvirą ir uždarytą pranešimą.

Voila, dabar jūs turite savo jutiklį, kuris įspės jus, kai jis atidaromas ir uždaromas. Leiskite man žinoti, ar jums tai patinka ir ar yra kažkas, ką, jūsų manymu, galima patobulinti.

Aš taip pat pateikiu šią pamoką IOT konkursui, todėl būtinai patikite ir balsuokite už šį ir visus kitus jums patinkančius IOT projektus

8 žingsnis: būsimi patobulinimai

Dėl šio projekto susidūriau su keliomis problemomis. Pirmoji problema, su kuria susidūriau, buvo „mosfet“, kurio Vgs buvo per didelis, naudojimas, todėl turėjau pereiti prie kito. Antra, mano naudojamas nendrinis jungiklis paprastai yra atidarytas, o mano atveju paprastai uždarytas jungiklis būtų buvęs lengviau įgyvendinamas ir būtų sutaupęs daug vietos. Galiausiai, su esp 01s buvo labai sunku dirbti, ir aš turėjau susipainioti su „gpio“kaiščiais, kad jis tinkamai veiktų, tačiau vis tiek turėjau problemų. Manau, kad šis projektas sugebėjo mane išmokyti daug sąvokų ir padėjo man sugalvoti daugiau idėjų ir įgyvendinimų naudojant esp8266 plokštes ir IFTTT.

IoT iššūkis
IoT iššūkis
IoT iššūkis
IoT iššūkis

II vieta „IoT Challenge“

Rekomenduojamas: