Turinys:

Postino: ar paštininkas ką nors pristatė?: 6 žingsniai (su nuotraukomis)
Postino: ar paštininkas ką nors pristatė?: 6 žingsniai (su nuotraukomis)

Video: Postino: ar paštininkas ką nors pristatė?: 6 žingsniai (su nuotraukomis)

Video: Postino: ar paštininkas ką nors pristatė?: 6 žingsniai (su nuotraukomis)
Video: Planting a Hedge - New Border Part 2 - My English Garden April 2021 2024, Lapkritis
Anonim
Postino: Ar paštininkas ką nors pristatė?
Postino: Ar paštininkas ką nors pristatė?

Ne mano idėja: vieną dieną draugas paprašė manęs nuotoliniu būdu patikrinti, ar jo pašto dėžutėje nėra pašto. Pašto dėžutė nėra pėsčiųjų take prie jo durų, todėl, būdamas tingus berniukas, jis susimąstė, ar technologinė programėlė turėtų įspėti jį apie bet kokį laišką į pašto dėžutę. Pažvelgiau į rinką ir neradau jokio paruošto prietaiso, tinkančio jo poreikiams, todėl iškėliau sau iššūkį: kodėl gi ne suprojektuoti ir nesudaryti?

Apribojimai buvo šie:

  • maitinamas baterijomis, protingai tarnaujant tarp baterijų keitimų;
  • „WiFi“ryšys;
  • tik kartą per dieną patikrinkite, ar buvo pašto, ar ne;

Pagrindinis klausimas buvo toks: koks jutiklis galėtų atitikti mano reikalavimus? Artumo jutiklis negalėjo veikti, nes patikrinimas turėjo būti atliekamas tik vieną kartą per dieną, o ne realiu laiku; svorio jutiklis taip pat, nes tai sukeltų sudėtingumo ir jautrumo problemų (popieriaus lapas gali būti labai lengvas). Mano pasirinkimas pasireiškė skrydžio laiko (mikrolazerio) jutikliu. Kai jis buvo sukalibruotas pagal pašto dėžutės dydį, viskas, kas buvo viduryje, suaktyvino jutiklį! Atsižvelgdamas į 3 apribojimus, nusprendžiau naudoti ESP8266 (paleisti programinę įrangą ir susieti su „WiFi“), VL6180 skrydžio laiko jutiklį ir DS3231 realaus laiko laikrodį, kad vieną kartą per dieną suaktyvintų visas grandines: taip Postino gimė!

1 žingsnis: dalys ir komponentai

  • ESP8266-01 (arba ESP-12E NodeMCU)
  • VL6108 Skrydžio laiko jutiklis
  • DS3231 laikrodis realiuoju laiku
  • IRLZ44 N kanalo „MosFET“
  • BC547 tranzistorius
  • Rezistoriai
  • CR123 baterija

2 žingsnis: jutiklis

Jutiklis
Jutiklis

Sistemos širdis yra VL6180 jutiklis. Tai novatoriška technologija, leidžianti išmatuoti absoliutų atstumą nepriklausomai nuo tikslinio atspindžio. Užuot įvertinęs atstumą, išmatuodamas nuo objekto atsispindėjusios šviesos kiekį (kuriam didelę įtaką daro spalva ir paviršius), VL6180X tiksliai matuoja laiką, per kurį šviesa nukeliauja iki artimiausio objekto ir atsispindi atgal į jutiklį (laikas -Skrydis). Sujungus IR spinduliuotės spindulį, diapazono jutiklį ir aplinkos šviesos jutiklį į tris viename paruoštą naudoti perpildomą paketą, „VL6180X“lengva integruoti ir sutaupoma galutinio produkto gamintojo ilgas ir brangus optinis ir mechaninis dizaino optimizavimas.

Modulis skirtas mažos galios veikimui. Aš naudoju „Pololu“pertraukimo plokštę, kurioje yra įtampos reguliatoriai, leidžiantys veikti nuo 2,7 V iki 5,5 V.

Jutiklis leidžia naudoti 3 galiojančius mastelio koeficientus, kurie nustato maksimalų matavimo diapazoną nuo 20 iki 60 cm, esant skirtingam jautrumui. Konfigūravus diapazono mastelio keitimo koeficientą, galima padidinti maksimalų jutiklio diapazoną mažesnės skiriamosios gebos kaina. Nustačius mastelio koeficientą į 2, gaunamas iki 40 cm diapazonas su 2 mm skiriamąja geba, o 3 mastelio koeficientas - iki 60 cm, esant 3 mm raiškai. Turite išbandyti 3 svarstykles pagal savo pašto dėžutės matmenis. Kadangi mano buvo 25 cm (H), naudoju skalės koeficientą = 1.

3 veiksmas: laikrodžio pritaikymas realiuoju laiku

RTC aš naudoju DS3231 pertraukos plokštę, kurioje yra EEPROM (nenaudingas mano tikslui) ir monetos dydžio baterija. Kai nusprendžiau maitinti RTC per pagrindinio įrenginio bateriją (3v CR123), išėmiau monetos bateriją; norėdamas taupyti energiją, aš taip pat pašalinau EEPROM (atsargiai perpjovęs jo kaiščius) ir įmontuotą LED.

Monetos baterija man nebuvo naudinga, nes man nereikėjo saugoti realaus laiko datos/valandos/minutės/sekundės, tačiau RTC turėjo tik skaičiuoti 24 valandas ir tada suaktyvinti signalą, kad įjungtų įrenginį.

4 žingsnis: Kiti įvairūs laivai

Kiti įvairūs laive
Kiti įvairūs laive
Kiti įvairūs laive
Kiti įvairūs laive

Įrenginį įjungia tranzistorius ir „MosFET“grandinė, kurią suaktyvina RTC aliarmas. Kai aliarmas iš naujo nustatomas, grandinė nutraukia prietaiso maitinimą dar 24 valandų ciklui. Kai pasiekiamas pavojaus signalas, DS3231 perjungia kaištį iš aukšto į žemą: įprastomis sąlygomis tranzistorius yra prisotintas ir trumpai sujungia „MosFET“vartus. Kai signalizacija atneša tranzistoriaus bazę į žemę, ji atsidaro ir leidžia „MosFET“uždaryti grandinę ir tiekti maitinimą likusiems komponentams.

Be to, pridėjau „test-1M“trumpiklį. Šio jungiklio tikslas - jei jis įjungtas - pakeisti ciklą iš vieno karto per dieną į kartą per minutę, kad būtų galima atlikti diegimo testus. Norėdami pakeisti intervalą iš vienos dienos į vieną minutę, pirmiausia turite maždaug 15 sekundžių uždaryti trumpiklį „Test-C“, apeiti laikrodžio žadintuvo įjungimo laikotarpį ir įjungti prietaisą. Atlikę bandymus, atidarykite trumpiklius ir iš naujo nustatykite įrenginį (ciklo galia).

5 žingsnis: schema

Schema
Schema

6 žingsnis: programinė įranga ir logika

Bandymų metu naudoju (dėl praktinių priežasčių) „NodeMCU“valdiklį, todėl programinė įranga tuo pasirūpina, nustatydama CHIP kintamąjį į „NodeMCU“arba „esp8266“.

Eskizas įgyvendina „WiFiManager“biblioteką, leidžiančią įrenginiui prisijungti prie galiojančio „WiFi“AP pirmojo paleidimo metu. Tokiu atveju įrenginys pereina į AP režimą, leidžiantį prisijungti prie jo ir pasirinkti tinkamą „WiFi“tinklą prisijungti. Po to tinklo konfigūracija išsaugoma EPROM tolesniems ciklams.

Kintamajame REST_MSG yra http pranešimas, kurį reikia siųsti, kai jutiklis pašto dėžutėje randa objektą. Mano atveju jis siunčia pranešimą į dominuojantį REST serverį, bet jūs galite jį pakeisti, kaip norite: „Telegram BOT“pranešimą, IFTTT „WebHook“įvykį ir kt.

Likusi eskizo dalis yra sąrankos () funkcijoje, nes kilpa niekada nepasiekiama. Po kelių bibliotekų konfigūracijos programinė įranga nustato laikrodžio laiką iki 00:00:01, o žadintuvą-vieną kartą per dieną (arba vieną kartą per minutę, jei suaktyvinamas „test-1M“trumpiklis). Tada jis imasi priemonės, siunčia pranešimą (jei pašto dėžutėje randamas koks nors objektas) ir iš naujo nustato aliarmo kaištį, išjungdamas įrenginį. Ciklo pabaigoje įjungiamas tik RTC, skaičiuojant 24 valandas. Trumpiklis „Test-1M“yra prijungtas prie ESP8266 RX kaiščio, naudojamo kaip GPIO-3, naudojant nustatymą: setMode (PIN, FUNCTION_3). Dėl to jūs negalite naudoti serijinio monitoriaus paleisdami ESP8266: eilutė „#define DEBUG“(kuri leidžia visus eskizo serijinius spaudinius) naudojama tik tada, kai vietoje „ESP8266“yra įdiegtas „NodeMCU“.

ESP8266 tvarko I2C ryšį su RTC ir jutikliu per kaiščius GPIO-0 ir GPIO-2, inicijuotus laidų bibliotekoje.

Visą kodą galima atsisiųsti iš šios nuorodos.

Pagalbinių technologijų konkursas
Pagalbinių technologijų konkursas
Pagalbinių technologijų konkursas
Pagalbinių technologijų konkursas

Antroji vieta pagalbinių technologijų konkurse

Rekomenduojamas: