Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Ne moje představa: jednoho dne mě přítel požádal o způsob, jak na dálku zkontrolovat, jestli mu do schránky neleží nějaká pošta. Poštovní schránka není na chodníku k jeho dveřím, takže, protože je líný chlapec, přemýšlel, jestli by ho technologický přístroj nemohl varovat před jakýmkoli dopisem do schránky. Podíval jsem se na trh a nenašel jsem žádné hotové zařízení, které by vyhovovalo jeho potřebám, a tak jsem si položil výzvu: proč jej nenavrhnout a postavit?
Omezení byla:
- napájení z baterie s přiměřenou životností mezi výměnou baterie;
- WiFi komunikace;
- jen jednou denně zkontrolujte, zda byla pošta nebo ne;
Hlavní otázkou bylo: jaký druh senzoru by mohl splňovat mé požadavky? Senzor přiblížení nemohl fungovat, protože kontrola musela být prováděna pouze jednou denně a ne v reálném čase; ani snímač hmotnosti, protože by to zvýšilo složitost a problémy s citlivostí (list papíru by mohl být velmi lehký). Moje volba přistála na senzoru Time-of-Flight (mikro laser). Jakmile by byl kalibrován na velikost schránky, cokoli uprostřed by spustilo senzor! Vzhledem k těmto 3 omezením jsem se rozhodl použít ESP8266 (běh softwaru a propojení s WiFi), senzor času letu VL6180 pro měření a hodiny reálného času DS3231 pro spouštění všech obvodů jednou denně: takto Postino se narodilo!
Krok 1: Díly a součásti
- ESP8266-01 (nebo ESP-12E NodeMCU)
- VL6108 Čidlo doby letu
- Hodiny reálného času DS3231
- IRLZ44 N-kanálový MosFET
- BC547 tranzistor
- Rezistory
- Baterie CR123
Krok 2: Senzor
Srdcem systému je senzor VL6180. Jedná se o průlomovou technologii, která umožňuje měřit absolutní vzdálenost nezávisle na odrazivosti cíle. Namísto odhadování vzdálenosti měřením množství světla odraženého zpět od objektu (což je výrazně ovlivněno barvou a povrchem), VL6180X přesně měří čas, který světlo potřebuje k cestování k nejbližšímu objektu a odrazu zpět k senzoru (Time -of-Flight). Díky kombinaci infračerveného vysílače, senzoru dosahu a senzoru okolního světla v reflowable balení připraveném k použití tři v jednom lze VL6180X snadno integrovat a šetří výrobci konečných produktů dlouhé a nákladné optimalizace optického a mechanického designu.
Modul je navržen pro provoz s nízkým výkonem. Použil jsem desku Pololu Breakout, která má na desce regulátory napětí, které jí umožňují pracovat v rozsahu vstupního napětí 2,7 V až 5,5 V.
Senzor umožňuje 3 platné faktory měřítka, které nastavují maximální rozsah měření od 20 do 60 cm, s různou citlivostí. Konfigurací faktoru škálování rozsahu lze potenciální maximální dosah senzoru zvýšit za cenu nižšího rozlišení. Nastavení měřítka na 2 poskytuje rozsah až 40 cm s rozlišením 2 mm, zatímco faktor měřítka 3 poskytuje rozsah až 60 cm s rozlišením 3 mm. Musíte otestovat 3 váhy s rozměry vaší poštovní schránky. Protože moje byla 25 cm (H), použil jsem měřítko = 1.
Krok 3: Přizpůsobení hodin v reálném čase
Pro RTC jsem použil odpojovací desku DS3231, která obsahuje EEPROM (pro můj účel zbytečný) a baterii velikosti mince. Když jsem se rozhodl napájet RTC pomocí baterie hlavního zařízení (3v CR123), vyjmul jsem knoflíkovou baterii; kvůli úspoře energie jsem také odstranil EEPROM (opatrným přeříznutím jeho kolíků) a palubní diodu.
Mincovní baterie pro mě nebyla užitečná, protože jsem nepotřeboval uchovávat datum/hodinu/minutu/sekundu v reálném čase, ale RTC musel počítat pouze 24 hodin a poté spustit alarm, aby se zařízení zapnulo.
Krok 4: Ostatní různé na palubě
Zapnutí zařízení je zajištěno tranzistorem a obvodem MosFET, spuštěným alarmem RTC. Jakmile je alarm resetován, obvod přeruší napájení zařízení na dalších 24 hodin. Když je dosaženo alarmu, DS3231 přepne pin z vysokého na nízký: za normálních podmínek je tranzistor nasycen a zkratuje se k uzemnění brány MosFET. Jakmile alarm přivede základnu tranzistoru na zem, otevře se a umožní MosFETu uzavřít obvod a dodat energii ostatním součástkám.
Kromě toho jsem přidal propojku „test-1M“. Účelem tohoto přepínače je - pokud je aktivován - změnit cyklus z jednou denně na jednou za minutu, aby bylo možné spustit testy nasazení. Abyste mohli změnit interval z jednoho dne na jednu minutu, musíte nejprve na zhruba 15 sekund zavřít propojku „Test-C“, obejít tak dobu aktivace budíku a zapnout zařízení. Po dokončení testů otevřete propojky a resetujte zařízení (vypněte napájení).
Krok 5: Schéma
Krok 6: Software a logika
Během testů jsem použil (z praktických důvodů) ovladač NodeMCU, takže software se o to stará nastavením proměnné CHIP na „NodeMCU“nebo „esp8266“.
Náčrt implementuje knihovnu WiFiManager, aby se zařízení mohlo připojit k platnému WiFi AP během prvního spuštění. V takovém případě se zařízení přepne do režimu AP, což vám umožní připojit se k němu a vybrat správnou WiFi síť pro připojení. Poté se konfigurace sítě uloží do EPROM pro další cykly.
Proměnná REST_MSG obsahuje zprávu http, která se má odeslat, když senzor najde předmět ve schránce. V mém případě to odešle zprávu na domotický REST server, ale můžete to změnit, jak chcete: zpráva Telegram BOT, událost IFTTT WebHook atd.
Zbytek náčrtu je ve funkci setup (), protože smyčka není nikdy dosažena. Po konfiguraci potřebné pro několik knihoven software nastaví čas na 00:00:01 a budík na jednou denně (nebo jednou za minutu, pokud je aktivována propojka „test-1M“). Poté provede opatření, odešle oznámení (pokud je ve schránce nalezen nějaký předmět) a resetuje alarmový kolík, čímž se zařízení vypne. Na konci cyklu je zapnut pouze RTC, který počítá 24 hodin. Propojka Test-1M je připojena k RX pinu ESP8266, používaného jako GPIO-3, pomocí nastavení: setMode (PIN, FUNCTION_3). Z tohoto důvodu nemůžete při spuštění ESP8266 používat sériový monitor: řádek „#define DEBUG“(který umožňuje všechny sériové výtisky v náčrtu) se používá pouze tehdy, když je místo ESP8266 nainstalován NodeMCU.
ESP8266 zpracovává komunikaci I2C s RTC a senzorem prostřednictvím svých kolíků GPIO-0 a GPIO-2, inicializovaných v knihovně Wire.
Celý kód je možné stáhnout z tohoto odkazu.
Druhé místo v asistenční technické soutěži