Obsah:

Vlajka poštovní schránky napájená MQTT a Wifi: 7 kroků (s obrázky)
Vlajka poštovní schránky napájená MQTT a Wifi: 7 kroků (s obrázky)

Video: Vlajka poštovní schránky napájená MQTT a Wifi: 7 kroků (s obrázky)

Video: Vlajka poštovní schránky napájená MQTT a Wifi: 7 kroků (s obrázky)
Video: TOP 4 LIDÉ Z BUDOUCNOSTI, KTEŘÍ NÁS PŘIŠLI VAROVAT 2024, Červenec
Anonim
Vlajka poštovní schránky napájená MQTT a Wifi
Vlajka poštovní schránky napájená MQTT a Wifi

Poznámka: aktualizováno novým firmwarem, schématem a tipy pro programátora

Několik let jsem se pustil do vlastního projektu domácí automatizace. Začalo to stavěním serverem řízeného 433 MHz vysílače postaveného na Arduinu pro přepínání spousty levných vzdálených přepínačů na bázi PT2262. Později jsem přidal přijímač založený na Arduinu pro svou meteorologickou stanici, připojil ovládací kontakt mé nabíječky EV atd. Věci se stále více proplétaly (a komplikovaly!). Před několika měsíci jsem se tedy rozhodl standardizovat vše na základě MQTT pro zasílání zpráv, Node-RED pro automatizaci (oba běží na jednom Raspberry Pi B+) a MariaDb pro protokolování (běží na mém Synology NAS). Později jsem přesunul brokera MQTT (Mosquitto) a Node-RED také na NAS..

Tento návod popisuje hloupý zábavný projekt, který spojuje moji poštovní schránku namontovanou na ulici v této domácí infrastruktuře. Myšlenka je taková, že pokud někdo otevře poštovní schránku namontovanou na plotu asi 10 metrů od předních dveří, signalizuje mi to na telefonu a případně dalších zařízeních.

Krok 1: Přehled, předpoklady a součásti

Obrys

Poštovní schránka by na vysoké úrovni měla při otevření odeslat jedinečnou zprávu MQTT makléři, aby byli předplatitelé tohoto tématu informováni. Node-RED se také přihlašuje a provádí určitou automatizaci, v tomto případě odeslání e-mailu a/nebo zprávy push do mého telefonu.

Poštovní schránka by měla běžet na baterie a měla by běžet alespoň rok, a měla by tak činit pomocí mé WiFi sítě. Protože probuzení mikrořadiče a připojení k síti WiFi může trvat několik sekund, nemohl jsem použít aktivační spínač k přerušení napájení. Místo toho by procesoru mělo být umožněno dokončit své podnikání poté, co se víko schránky již zavřelo.

Předpoklady

Předpokládám, že máte skromné pájecí schopnosti, trochu jste pracovali s Arduino IDE a nainstalovali desky ESP8266 pomocí Správce desek. K programování mikrořadiče potřebujete také 3,3voltový sériový adaptér USB.

Předpokládám také, že máte spuštěného brokera MQTT a server Node-RED. Pokud ne, existuje mnoho instrukcí na internetu, ale doporučil bych použít línou cestu a použít vynikající instalační skript Petera Scargilla, pokud jej chcete spustit na jakémkoli Pi nebo Ubuntu, nebo použít obrázek Andrease Spiesse pro Pi Zero W (odkazy v popisu daného videa), což vám ušetří několik hodin sledování spuštěných instalačních skriptů. Alternativně můžete nechat firmware odeslat e -mail přímo, ale ztratíte tím velkou flexibilitu.

Díly

  • 1 uzavřený, 3 AA bateriový box
  • 2 baterie AA
  • 1 modul ESP8266. Pro tento projekt jsem použil ESP-01
  • 1 mikrospínač
  • 1 47K odpor
  • 1 odpor 4M7
  • 1 kondenzátor 2.2uF
  • 1 tenká plastová trubka. Použil jsem pero
  • 1 tlustý, dlouhý zápas nebo lízátko. Měl by se snadno vejít a pohybovat v plastové trubce

Krok 2: Hardware: krabice, přepínač a zapojení

Hardware: krabice, přepínač a zapojení
Hardware: krabice, přepínač a zapojení
Hardware: krabice, přepínač a zapojení
Hardware: krabice, přepínač a zapojení
Hardware: krabice, přepínač a zapojení
Hardware: krabice, přepínač a zapojení

Začal jsem starým boxem na baterie ze zaniklé vánoční dekorace. Byl navržen pro tři baterie velikosti AA. Protože ESP8266 poběží pěkně na 3 voltech, mohl bych použít dvě baterie a použít třetí pozici pro mikrořadič. Všimněte si, že box měl malou extra přihrádku, kterou jsem mohl použít pro aktivační spínač. Použil jsem velmi běžný typ spínače zobrazený na obrázcích, ale odstranil jsem pružinu, která jej západky zapíná nebo vypíná. K NC kontaktům jsem připájel dva tenké dráty a v krabičce přilepil drobnou kapkou super lepidla.

Dále jsem vyvrtal otvor v horním krytu odpovídající plastové trubce odebrané z kuličkového pera. Otvor je zarovnán přesně s vypínačem a vede píst vyrobený ze silné zápalky.

Nakonec jsem připájel další dva vodiče ke kontaktům baterie a navedl všechny čtyři vodiče do polohy třetí baterie, kde měl být mikrořadič.

Krok 3: Hardware: ESP-01

Hardware: ESP-01
Hardware: ESP-01
Hardware: ESP-01
Hardware: ESP-01
Hardware: ESP-01
Hardware: ESP-01

Vzhledem k požadavku WiFi celý projekt křičí ESP8266. Tento malý WiFi ovladač se stal oblíbeným tahounem drobetické komunity jako modul, který lze zakoupit za méně než 2,50 EUR, a integruje plný zásobník WiFi a TCP/IP s více než dostatečnou kapacitou, kterou je možné ušetřit na spouštění vlastních programů. Arduino IDE (nebo Atom s pluginem PlatformIO) plně podporuje ESP8266.

Obvykle bych vzal ESP-12F, ale měl jsem kolem sebe malou desku ESP-01, která byla pro tuto práci ideální a krásně se vejde do krabice na baterie. Jediným problémem je, že je velmi složité flash firmware v ESP-01. Více o tom v dalším kroku. Je třeba provést jednu úpravu: Musíte odstranit červenou kontrolku napájení z desky, protože nepřetržitě čerpá 3mA. Když je dioda LED odstraněna, modul používá jen několik desítek uA v režimu hlubokého spánku, což na dvou kvalitních bateriích AA vydrží déle než rok.

Ukázalo se, že jsem mohl použít dva proužky 4pinových samičích záhlaví a pájku na několik dalších komponent ve volné formě, abych mohl ESP-01 vyjmout a aktualizovat firmware, zatímco by se stále vešel do třetího prostoru pro baterie.

Je velmi důležité správně zapojit ESP. Pomocí výše uvedeného podváděcího listu jej zapojte následujícím způsobem.

  1. Baterie plus k Vcc (D2), CH_PD (B2), RXD (D1), GPIO0 (C1), GPIO2 (B1) a 47K rezistoru.
  2. Baterie minus GND (A1) a jeden vodič spínače.
  3. Druhý vodič přepínače na kondenzátor 100nF a odpor 4M7.
  4. Otevřené konce obou rezistorů a kondenzátoru na RST (C2).
  5. TXD (A2) může zůstat nepřipojený.

Upravit: ESP-01 jsem musel vyměnit, protože jsem udělal hloupou chybu a zničil ji. Ukázalo se, že k mému překvapení se nový ESP-01 neresetoval s původním kondenzátorem 100nF. Pravděpodobně má trochu jiný design. Vyměnil jsem ho za 2,2 uF a nyní funguje znovu

Když je hotovo, vše lze namontovat do krabice, ale vydržte, nejprve musíme modul naprogramovat.

Krok 4: Programování ESP-01

Programování ESP-01
Programování ESP-01
Programování ESP-01
Programování ESP-01
Programování ESP-01
Programování ESP-01

Chcete-li na svém ESP-01 flashovat firmware, můžete buď postavit malou soupravu, nebo koupit (téměř) kompletní programátor za zhruba 1 euro.

Hardware pro programování hardwaru

Postavte malou soupravu se dvěma hlavičkami pro ESP-01. Také potřebujete sériový modul USB, který může poskytovat 3,3 voltů. Čip ESP8266 není tvrzený na 5 voltů, takže chyba zde může zabít váš modul. Každopádně, znovu pomocí cheat listu, připojte svou soupravu následujícím způsobem:

  1. 3,3 V z modulu USB Serial na Vcc, CH_PD, RST a GPIO2.
  2. GND modulu USB Serial na GND a GPIO0.
  3. TXD modulu USB Serial na RXD.
  4. RDX modulu USBSerial na TXD.

Programátor před sestavením

Jak zábavné je stavět vlastní věci, línější je získat rozhraní ESP-01-to-serial z vašeho oblíbeného aukčního webu, viz obrázek výše. To je mnohem jednodušší, kompaktnější a spolehlivější než souprava. Některé z nich však nejsou programátory, ale pouze sériovými rozhraními. Potřebujete pájet drátový můstek mezi GND (pin A1) a GPIO0 (pin C1) na zadní straně rozhraní, viz druhý obrázek. Všimněte si, že ESP-01 by měl být zapojen tak, aby anténa směřovala ke konektoru USB, nikoli naopak!

Poznámka: existují také s přepínačem, viz třetí obrázek, velmi pěkné.

Nahrajte firmware

Za předpokladu IDE Arduino 1.8.3 nebo novější vyberte Nástroje> Deska a vyberte desku, kterou máte. Pro ESP-01, jaký jsem použil, zvolte „Obecný modul ESP8266“a nastavte následující možnosti (toto by měla být všechna výchozí nastavení):

  1. Režim blesku: DIO
  2. Frekvence záblesku: 40 MHz
  3. Frekvence CPU: 80MHz
  4. Velikost flash: 512 kB (64 kB SPIFFS) Poznámka: pokud používáte černou desku ESP-01, zvolte 1 MB (64 kB SPIFFS)
  5. Port ladění: Zakázáno
  6. Úroveň ladění: Žádná
  7. Metoda resetování: ck
  8. Rychlost nahrávání 115200
  9. Port: vyberte port, který je připojen k vašemu sériovému rozhraní USB. Pro můj počítač Ubuntu to bylo /dev /ttyUSB0

Zapojte soupravu/programátor, načtěte náčrt, který najdete zde https://gitlab.com/jeroenmeijer/Mailbox.git. Zadejte své přihlašovací údaje brokera WiFi a MQTT a konfiguraci IP v config.h a zvolte Nahrát.

Krok 5: Sestavení všeho

Sestavení všeho
Sestavení všeho

Vyvrtal jsem otvor pro plastovou trubku ve vnitřním víku schránky, co nejblíže k závěsu, a poté za horka nalepil krabici na baterie na spodní stranu víka. Dále jsem jako píst použil tlustou zápalku. Pomocí stříhače jsem zkrátil zápalku na délku, aby se spínač otevřel, pokud by bylo zavřeno vnější víko. Zkontroloval jsem konektivitu otevřením víka za běhu mosquitto_sub pro sledování zpráv MQTT (nahraďte mqttbroker, uživatele a heslo vaší konfigurací MQTT):

$ mosquitto_sub -h mqttbroker -v -t "stat/#" -u uživatel -P heslo

Přibližně šest sekund po otevření vnějšího víka je zveřejněna následující zpráva MQTT. Čas se používá k probuzení mikrořadiče a navázání připojení WiFi a brokera.

stat/mailbox/trigger {"vcc": 3050, "flap": true, "předchozí": 0, "RSSI": 29, "verze": "005"}

Během této doby používal mikrořadič přibližně 70 mA. Když je hotový, přejde do hlubokého spánku a v mém případě spotřeboval méně než 20uA. „klapka“je vždy pravdivá, „vcc“uvádí napětí baterie v mV a „předchozí“by mělo být 0. Pokud je 1 nebo 2, znamená to, že poštovní schránka nemohla odeslat zprávu dříve, a to buď proto, že se nemohla připojit k WiFi, nebo proto, že se nemohl připojit k brokerovi MQTT. „RSSI“je síla signálu WiFi. Oba jsou velmi užitečné při diagnostice problémů.

Je vhodné několik dní sledovat napětí baterie, aby zařízení fungovalo tak, jak mělo, a z nějakého důvodu nevybíjelo baterii.

Firmware je také schopen se sám aktualizovat bezdrátově (OTA), ale to je trochu mimo rozsah tohoto pokynu. Pro zájemce je konfigurace OTA také v config.h.

Krok 6: Použití Node-RED k jednání se zprávou MQTT

Použití Node-RED k jednání se zprávou MQTT
Použití Node-RED k jednání se zprávou MQTT

Nakonec jsem vytvořil jednoduchý tok v Node-RED. První uzel se přihlásí k tématu schránky (stat/postbox/trigger). Když je přijata zpráva, druhý uzel formátuje e -mail *). Poslední uzel jej odešle na moji adresu v Gmailu pomocí serveru gmail jako serveru SMTP. Můj telefon mě pak upozorní na novou poštu.

Přidal jsem tok Node-RED do úryvku gitlab, abyste jej mohli importovat do svých toků Node-RED.

Samozřejmě můžete přidat několik dalších uzlů, například pro protokolování událostí poštovní schránky na MariaDb nebo SqlLite, nebo vytvářet další alarmy, když napětí baterie klesne pod 2,7 voltů.

Šťastný lov pošty!

*) Viz další stránka, místo e -mailu nyní používám PushBullet.

Krok 7: Následné myšlenky

Vždy existuje pocit, že věci mohly být provedeny lépe.

Přepínač

Raději bych místo poněkud neohrabaného přístupu pístu použil (super) magnet a jazýčkový kontakt. Důvody byly dva. Jedním z nich je, že jsem nemohl tuto práci provést se sepnutím kontaktu, když byla krabice otevřena, a mít ji vždy zavřenou znamenalo, že vždy protéká malý proud. Při zpětném pohledu by méně než 1uA protékající rezistorem 4M7 nebyl z hlediska životnosti baterie velký problém. Ten druhý byl praktičtější. Tento projekt jsem vytvořil v sobotu a napsal software, v neděli to všechno vytvořil z toho, co leželo. Jednoduše jsem neměl kontakt s rákosím v nevyžádané poště.

Poznámka: jak komentoval diy_bloke, jazýčkové kontakty mají při dlouhodobém magnetizaci tendenci se lepit, takže možná píst nebyl vůbec špatný nápad. Uvidíme. *)

Zpráva o vyprazdňování

Poštovní schránka také odešle zprávu při vyprazdňování. Nejde o nic velkého, ale když se varování dostane více lidem v domě, jeden může skončit ve smyčce, která kontroluje poštovní schránku a vzpírá se svému účelu! Existuje několik způsobů, jako je kontrola, zda je zvednuto vnitřní víko, a pokud ano, neposílejte zprávu. Nebo místo použití přepínače víka nainstalujte detektor do spodní části schránky. Nebo malé resetovací tlačítko, které se má stisknout při jeho vyprazdňování. Všechno by to však zkomplikovalo a pravděpodobně zhoršilo spolehlivost.

Zprávy

Odesílání e -mailů je poměrně účinný, ale hrubý způsob, jak varovat. Elegantnějším způsobem by byla aplikace pro telefon, ale nenašel jsem aplikaci řídicího panelu Android MQTT, kterou lze nakonfigurovat tak, aby po přijetí určité zprávy spustila upozornění operačního systému. Pokud je někdo kolem, přidejte prosím do komentářů. **)

*) Po více než roce provozu se ukázalo, že lízátko, které jsem použil, v podstatě tvrdý válcovaný papír, má tendenci se zkracovat pod stálým tlakem spínací pružiny. Po nějakém řešení problémů jsem jej nahradil dřevěnou tyčí.

**) Nyní používám PushBullet pro zprávy push, oddělené od řídicího panelu MQTT. Malé nízké rozhraní Node-RED k API najdete zde. Ujistěte se, že jste zadali přístupový token v uzlu „Připravit na pushbullet“a svou e -mailovou adresu pro záložní účely v uzlu „Opakovat“.

Doporučuje: