Obsah:

Pripojený Letterbox so solárnym napájaním: 12 krokov (s obrázkami)
Pripojený Letterbox so solárnym napájaním: 12 krokov (s obrázkami)

Video: Pripojený Letterbox so solárnym napájaním: 12 krokov (s obrázkami)

Video: Pripojený Letterbox so solárnym napájaním: 12 krokov (s obrázkami)
Video: Почтовый ящик сервера Domino в Microsoft Outlook 2024, Júl
Anonim
Pripojený Letterbox so solárnym napájaním
Pripojený Letterbox so solárnym napájaním
Pripojený Letterbox so solárnym napájaním
Pripojený Letterbox so solárnym napájaním

Pokiaľ ide o môj druhý Ible, popíšem vám svoje práce o mojom pripojenom letterboxe.

Keď som si prečítal tento návod (+ mnoho ďalších) a keďže sa moja schránka nenachádza v blízkosti môjho domu, chcel som ma inšpirovať k prácam spoločnosti Open Green Energy na prepojení mojej schránky so serverom Domoticz.

Ciele

  • Telegram vás upozorní, keď prídu listy;
  • Telegram vás upozorní, keď príde balík;
  • Skontrolujte, či boli listy / balíky vyzdvihnuté.

Moje hlavné obmedzenie

Poštová schránka je relatívne ďaleko od domu a nebolo možné k nej vytiahnuť elektrický kábel, aby sa niečo dalo napájať.

Musel som nájsť iné riešenie: solárna energia bola dobrým riešením!

BOM

  • Raspberry Pi (na hostenie častí MQTT a Domoticz - tu nie je popísané)
  • Telegram Bot účet
  • Lolin D1 mini (alebo Wemos…)
  • Zásuvný skrutkový konektor na svorkovnici
  • Doska na nabíjanie lítiových batérií TP4056
  • 6V 2W fotovoltaický solárny panel
  • Batéria Li-Ion 18650
  • Li-Ion držiak batérie
  • PCB DIY spájkovacia medená prototypová doska s plošnými spojmi
  • Analógové servo SG90
  • 3 jazýčkové spínače (jeden pre listy, jeden pre balík a jeden pre pokladňu)
  • Magnety
  • Niektoré drôty
  • Drevená prepravka: Keďže som nedostal žiadnu 3D tlačiareň, realizoval som svoj vlastný malý domček s drevom na príjem dielov elektroniky …
  • Náhradný ethernetový kábel
  • Odpojovacia doska ethernetového konektora RJ45

  • J-B Weld
  • Niektoré guľkové ložiská
  • Skrutky, matice, podložky

Krok 1: Globálna schéma

Globálna schéma
Globálna schéma
Globálna schéma
Globálna schéma

Krásne kresby sú vždy lepšie ako dlhé reči;-)

Niekoľko vysvetlení o MQTT, Domoticz a Telegram je však vždy vítaných!

MQTT (Message Queuing Telemetry Transport) je protokol na odosielanie správ, ktorý sa používa na odosielanie údajov medzi zariadeniami a inými systémami vo svete internetu vecí (IoT).

Bez toho, aby sme zachádzali do prílišných podrobností, je jeho činnosť založená na princípe pripojenia klientov k serveru. V MQTT sa klienti nazývajú Subscriber alebo Publisher a server sa nazýva Broker.

V tomto návode používam iba jedného vydavateľa, Lolina zapojeného do mojej schránky: keď sú listy alebo zásielky detekované prostredníctvom kontaktov jazýčkov nainštalovaných v schránke (krok 1 v schéme shematic), odošle sa maklérovi správa MQTT cez WIFI (krok 2).

Broker časť robí Mosquitto, ktorý je nainštalovaný na Raspberry Pi (krok 3).

O spoločnosti Domoticz:

Ako je popísané na zdrojovej stránke, Domoticz je „domáci automatizačný systém“, ktorý vám umožňuje ovládať rôzne zariadenia a prijímať vstupy z rôznych protokolov: MQTT je jedným z podporovaných protokolov …

Hneď ako sa k nemu dostanú informácie (krok 4), môžete definovať udalosti: V prípade schránky na listy som sa rozhodol odoslať upozornenie na telegram (krok 5).

Nakoniec je v mojom telefóne (a tiež mojej manželke) nakonfigurovaný klient Telegramu - krok 6): konečný cieľ je dosiahnutý …

Krok 2: Shematické / zapojenie

Shematické / elektroinštalácie
Shematické / elektroinštalácie
Shematické / elektroinštalácie
Shematické / elektroinštalácie
Shematické / elektroinštalácie
Shematické / elektroinštalácie
Shematické / elektroinštalácie
Shematické / elektroinštalácie

Jedno slovo o prečítanom analóge:

Najprv som si po niekoľkých výskumoch všimol, že Lolin mini D1 (ako starý Wemos) má vstavaný delič napätia pre kolík A0 (vzhľadom na 220 KΩ pre R1 a 100 KΩ pre R2 - pozri napravo od prepojeného údajového listu), ktorý umožňuje 3,2 voltov. ako maximálne analógové vstupné napätie.

Ak vezmeme do úvahy, že maximálne výstupné napätie z batérie je 4, 2v (obmedzené nabíjacou doskou), teoreticky na zvýšenie maximálneho rozsahu vstupného napätia stačí pridať externý odpor (v sérii s R1). Potom, ak pridáte 100 kB v sérii s R1, získate tento výsledok:

Vin * R1/(R1+R2) = Vout

4, 2 * 320K/(320K+100K) = 3, 2

V mojom obvode som sa rozhodol nastaviť jeho hodnotu, a preto som radšej použil nastaviteľný odpor v mojom obvode: možno to bude pre vás zbytočné, ale v mojej situácii som nastavil jeho hodnotu na asi 10 KΩ, aby som mal koherentná hodnota v Domoticzi …

Všimnite si toho, že pin A0 má 10 -bitové rozlíšenie: to znamená, že vo vašom náčrte vráti vaše analógové čítanie hodnotu od 0 do 1024.

Keďže chcem poslať percentuálnu hodnotu do Domoticz, musím výsledok analógového čítania rozdeliť na 10, 24.

Krok 3: Správa napájania

Správa napájania
Správa napájania
Správa napájania
Správa napájania

Samozrejme, chcem, aby bol letterbox autonómny. Na dosiahnutie svojho cieľa používam tieto prvky:

  • batéria Li-Ion 18650 s kapacitou 4 000 mAh;
  • solárny panel, ktorý môže dodávať 6V / 2W;
  • nabíjacia doska lítiovej batérie TP4056.

Aby som vybral najvhodnejší solárny panel, pozrel som sa na niekoľko príkladov vrátane tohto: v tomto prípade sa používa solárny panel 5,5 V / 0,66 W a na tento účel je pravdepodobne dostačujúci. V mojom prípade, a keďže ESP8266 musí zostať ZAPNUTÝ počas dňa a musí byť schopný spustiť servomotor, aby udržal dom tvárou k slnku, vybral som si výkonnejší model solárneho panelu (6V / 2W) - Tiež mi to umožňuje predvídať tmavé zimné obdobia a zamračené dni;-)

Tiež, a aby som znížil výdaj energie na maximum, vybral som nasledujúce scenáre:

  • s vedomím, že poštár prešiel iba medzi 7:00 a 20:00, ESP je po zvyšok noci umiestnená v DeepSleep;
  • Faktor medzi sobotným poludním a pondelkovým ránom neprejde: ESP sa v tomto období taktiež nachádza v režime DeepSleep.
  • Na obdobie od 7:00 do 20:00 a kvôli zníženiu spotreby energie jednoducho deaktivujem sieťové rozhranie ESP: sieť sa reštartuje iba pri príchode balíka alebo listu, čo je dostatok času na odoslanie informácií na adresu Domoticz. Nemusím byť okamžite varovaný a niekoľko ďalších sekúnd potrebných na reštartovanie sieťového rozhrania nie je na škodu!

Určitá hodnota o spotrebe v rôznych režimoch, ktoré používam pre Lolin - pozrite sa na technický list, s. 18:

  • V normálnom režime (pri prevádzke RF) sa spotreba energie môže zvýšiť na 170 mA! Pretože moja schránka je asi 50 metrov od môjho domu (a na hranici signálu WIFI …), predpokladám, že energia používaná na udržanie pripojenia je na jeho max.
  • V režime spánku modemu klesne spotreba energie na 15 mA. Ako však môžete vidieť v technickom liste, modem to úplne nezastavilo, pretože ESP „udržiava pripojenie Wi-Fi bez prenosu údajov“.
  • V hlbokom spánku poklesne výkon na 20uA.

Aby som si bol istý, že wifi neostáva zbytočne aktívna, radšej som ju vypol nasledujúcimi príkazmi. Všimnite si toho mnohonásobného volania delay () … Bez nich pád ESP:

WiFi.disconnect ();

oneskorenie (1000); WiFi.mode (WIFI_OFF); oneskorenie (1000); WiFi.forceSleepBegin (); oneskorenie (1);

Celkovo sa zdá, že po niekoľkých dňoch prevádzky funguje a hlavne sa správne načítava:

  • vďaka tomu môžem každú hodinu spustiť servomotor, aby som dom umiestnil k slnku;
  • Môžem si tiež dovoliť každú hodinu znova aktivovať sieťové rozhranie a odoslať do Domoticzu úroveň nabitia batérie.

Krok 4: Inštalácia magnetov a jazýčkových kontaktov

Inštalácia magnetov a jazýčkových kontaktov
Inštalácia magnetov a jazýčkových kontaktov
Inštalácia magnetov a jazýčkových kontaktov
Inštalácia magnetov a jazýčkových kontaktov
Inštalácia magnetov a jazýčkových kontaktov
Inštalácia magnetov a jazýčkových kontaktov

Ako obvykle, svojim Proxxonom som vytvaroval miesto Reed v kúsku dreva.

Na upevnenie jazýčkového kontaktu v jeho otvore som použil trochu zvaru J-B.

Pokiaľ ide o balík a výstup, malý kúsok pásky, trochu pílky na kov a cieľ je dosiahnutý!

Výhodou môjho letterboxu je, že je kovový, čo uľahčuje umiestnenie magnetov tak, aby správne spolupracovalo s jazýčkovými kontaktmi.

Krok 5: Pripojte sa k My Little House

Pripojte sa k My Little House
Pripojte sa k My Little House
Pripojte sa k My Little House
Pripojte sa k My Little House

Aby som mohol ľahko pripojiť a odpojiť kábel, ktorý smeruje k jazýčkovým kontaktom, z letterboxu do domu, zvolil som použiť ethernetový konektor.

Môžete použiť tento model alebo, rovnako ako ja, použiť starý ethernetový štít Arduino, ktorý mi visí v zásuvkách: Netrpel, bol odvážny pred pílou, jeho smrť bola rýchla ^^

Len pár slov k tomuto ethernetovému štítu Arduino: nečakajte, že budete mať 8 samostatných ovládačov … Káble sú spárované s 2 vnútri štítu … To ma privádzalo do šialenstva príliš dlho !!!

Krok 6: V dome …

V dome …
V dome …
V dome …
V dome …

Len dosť miesta na upevnenie držiaka batérie, nastavenia serva a konektora RJ45.

Krok 7: Nechajte gramofón…

Nech je gramofón…
Nech je gramofón…
Nech je gramofón…
Nech je gramofón…
Nech je gramofón…
Nech je gramofón…
Nech je gramofón…
Nech je gramofón…

Cieľom je udržať ju tvárou v tvár slnku …

Aby bola možnosť otáčania, použil som ako skrutku dlhú skrutku s niekoľkými maticami a dvoma guľkovými ložiskami …

Doteraz som používal servo SG90 (krútiaci moment: 1,8 kg/cm pri 4,8 V).

Na otočenie domu (a jeho niekoľko gramov) stačí. Na druhej strane si nie som istý, či jeho plastové prevody dlho odolávajú častým nárazovým vetrom, ktoré v mojom regióne panujú.

Objednal som si ďalší (krútiaci moment MG995: 9,4 kg/cm pri 4,8 V), tiež nie veľmi drahý, ale s kovovými prevodmi.

Hneď ako to dostanem, bude to nasledujúca vec: spolieham sa na to, že mi môj pripojený poštový priečinok oznámi jeho príchod!

Krok 8: Niektoré testy

Image
Image

Niekoľko poznámok:

Tento náčrt má iba napodobniť zmeny hodín počas dňa, aby som mohol ovládať polohu serva.

  • S SG90: žiadne ďalšie potreby, môže pracovať s VONKAJŠÍM napätím prichádzajúcim z regulátora batérie.
  • Ale s MG 995:

    • Celkový uhol natočenia nie je rovnaký (širší): Na jeho zmenšenie som musel použiť dodatočnú funkciu (Servo_Delta ()).
    • Potrebujete zvýšenie DC/DC, aby bolo servu dodané dostatočné napätie … pokračovanie …

/*

- TEST s SG90: žiadne ďalšie potreby, môže pracovať s výstupným napätím vychádzajúcim z ovládača batérie - PRE MG 995: - použite funkciu Servo_Delta () … - Potrebujete zvýšenie DC/DC, aby bolo servu dodané dostatočné napätie … pokračovanie: */ #include bool Logs = true; Servo myservo; #define PIN_SERVO D2 // poloha servo pre: 7h, 8h, 9h, 10h, 11h, 12h, 13h, 14h, 15h, 16h, 17h, 18h, 19h, 20h, 21h // int Arr_Servo_Pos = {177, 173, 163, 148, 133, 118, 100, 80, 61, 41, 28, 15, 2, 2, 2}; int Arr_Servo_Pos = {180, 175, 165, 150, 135, 120, 102, 82, 63, 43, 30, 15, 0, 0, 0}; int starý; int pos; int i; void setup () {Serial.begin (115200); } void loop () {for (i = 7; i <= 22; i ++) {old = i; if (i == 7) {if (Logs) Serial.println ("Positionne le servo pour 7 Heure"); myservo.attach (PIN_SERVO); for (int index = Arr_Servo_Pos [(sizeof (Arr_Servo_Pos) / sizeof (Arr_Servo_Pos [0])) -1]; index 7 && i = Arr_Servo_Pos [i-7]; index-) {if (Logs) Serial.println (index); if (Logs) Serial.print ("Upravená hodnota:"); if (Logs) Serial.println (Servo_Delta (index)); oneskorenie (200); //myservo.write(Servo_Delta(index)); myservo.write (index); } oneskorenie (15); myservo.write (Arr_Servo_Pos [i-7]); // napíšte znova poslednú hodnotu, aby ste sa vyhli trhavým pohybom pri datach myservo.detach (); }}} oneskorenie (2000); }} int Servo_Delta (int hodnota) {int Temp_val; Temp_val = (hodnota*0,80) +9; vrátiť Temp_val; }

Krok 9: Malý domček

Malý dom
Malý dom
Malý dom
Malý dom
Malý dom
Malý dom

Ako som už povedal, nedostal som žiadnu 3D tlačiareň. Rozhodol som sa teda použiť starú prepravku na zeleninu …

Možno to dlho nevydrží, ale dovtedy budem mať čas zvážiť iné riešenie (alebo priateľa, ktorý vlastní 3D tlačiareň): na ochranu dreva som všade pridal veľa laku …

Môžete vidieť „pekné záclony“… To sa stane, keď požiadate svoju manželku, aby urobila prácu ^^

Krok 10: Skica

Prebieha … Zdá sa však, že je stabilný

Na kóde stále pracujem: pretože toto nie je konečná verzia, vaše komentáre / rady sú vítané;-)

Niekoľko poznámok:

  • V kóde je veľa oneskorení (): cieľom je zabrániť mnohým pádom Lolina, najmä pri zastavení štartovacej siete …
  • Nenašiel som ľahký a spoľahlivý spôsob, ako získať azimut slnka: preto som opravil hodnotu serva ako funkciu toho, čo som pozoroval … Mám dobrý (a jednoduchý) spôsob, ako to dosiahnuť, zaujíma ma to! stopa, ktorú tu môžem študovať, aj keď uprednostňujem online API, mi poskytuje azimut priamo podľa dátumu, hodiny a geografickej polohy …
  • O technike spánku: Pretože Lolin je 32-bitový procesor Tensilica, jeho maximálna hodnota pre 32-bitové celé číslo bez znamienka je 4294967295 … potom dáva interval hlbokého spánku asi 71 minút. Preto často spím l'ESP asi 60 minút …

EDIT - 2018-10-08:

Zistil som, že servo má veľa trhavých pohybov, najmä pred pripnutím (), odpojením () a zakaždým, keď sa Lolin zobudí z hlbokého spánku ().

Pri štúdiu trocha ďalších technických listov som si uvedomil dve veci:

  • V technickom liste Lolin je výstup D4 už prepojený s BUILTIN_LED…
  • V údajovom liste ESP8266ex sa dozvedáme, že výstup D4 sa používa ako UART 1/U 1 TXD (univerzálny asynchrónny prijímačový vysielač). Tiež je špecifikované, že tento UART1 sa používa na tlač denníka.

Po prečítaní týchto informácií som zistil, že výstup D4 nebol dobrý nápad, najmä na riadenie servomotora!

Takže teraz výstup používaný na ovládanie servomotora je D2, nižšie uvedený kód bol zodpovedajúcim spôsobom aktualizovaný.

//****************************************

Dátum vytvorenia: 08/Dátum aktualizácie: 08/Verzia: 0.9.4 Verzia IDE Arduino: 1.8.6 Rýchlosť nahrávania: 921600 Typ karty v zozname: „LOLIN (WEMOS) D1 R2 & mini“Karta postava zamestnaná: LOLIN (WEMOS) D1 R2 a mini (https://www.amazon.fr/gp/product/B01ELFAF1S/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1) Funkcia pinu ESP-8266 Miesto použitia pinov ------- ---------------------------------------------------------- ------------------------------------ TX TXD TXD RX RXD RXD A0 Analógový vstup, max. Vstup 3,3 V A0 Tension d'alimentaion D0 IO GPIO16 Connecté à RST (pour le deep.sleep) D1 IO, SCL GPIO5 D2 IO, SDA GPIO4 Servo moteur D3 IO, 10k Pull-up GPIO0 D4 IO, 10k pull-up, BUILTIN_LED GPIO2 D5 IO, SCK GPIO14 Reed relève D6 IO, MISO GPIO12 Reed lettre D7 IO, MOSI GPIO13 Reed colis D8 IO, 10k pull-down, SS GPIO15 G Ground GND 5V 5V-3V3 3.3V 3.3V RST Reset RST Connecté à D0 (pour le deep.spánok) ****************************************************; // wifi const char* ssid = "LOL"; const char* heslo = "LOL"; IP adresa IP (192, 168, 000, 000); IP adresa dns (192, 168, 000, 000); Brána IPAddress (192, 168, 000, 000); Podsieť IPAddress (255, 255, 000, 000); Klient WiFiClient; // Servo #include #define PIN_SERVO D2 Servo myservo; // poloha servo pre: 7h, 8h, 9h, 10h, 11h, 12h, 13h, 14h, 15h, 16h, 17h, 18h, 19h, 20h, 21h int Arr_Servo_Pos = {179, 175, 165, 150, 135, 120, 102, 82, 63, 43, 30, 15, 1, 1, 1}; // Trstiny #define PIN_SWITCH_OUT D5 byte Old_Switch_State_OUT; bajt Switch_State_OUT; #define PIN_SWITCH_IN_PARCEL D6 byte Old_Switch_State_IN_PARCEL; bajt Switch_State_IN_PARCEL; #define PIN_SWITCH_IN_LETTER D7 byte Old_Switch_State_IN_LETTER; bajt Switch_State_IN_LETTER; nepodpísaný dlhý prepínačPressTime; konšt. nepodpísané dlhé DEBOUCE_TIME = 200; // Analog #define PIN_ANALOG A0 // MQTT #include const char* MQTT_Server_IP = "Vaša adresa MQTT"; const int MQTT_Server_Port =; int IDX_Letter_Box =; int IDX_Parcel_Box =; int IDX_Letter_Box_Battery =; PubSubClient ClientMQTT (klient); znak MQTT_Message_Buff [70]; Reťazec MQTT_Pub_String; // Napínací plavák vcc; // NTP #include time_t tnow; int Old_Time = 0; int Int_Heures = 0; int Int_Minutes = 0; int Int_Sleep_Duration = 63; void setup () {Serial.begin (115200); sieť (true); pinMode (PIN_SWITCH_OUT, INPUT_PULLUP); Old_Switch_State_OUT = digitalRead (PIN_SWITCH_OUT); pinMode (PIN_SWITCH_IN_LETTER, INPUT_PULLUP); Old_Switch_State_IN_LETTER = digitalRead (PIN_SWITCH_IN_LETTER); pinMode (PIN_SWITCH_IN_PARCEL, INPUT_PULLUP); Old_Switch_State_IN_PARCEL = digitalRead (PIN_SWITCH_IN_PARCEL); SendBatteryLevel (); sieť (nepravda); // NTP set tnow = time (nullptr); Int_Heures = String (ctime (& tnow)). Subring (11, 13).toInt (); Int_Minutes = Reťazec (ctime (& tnow)). Podreťazec (14, 16).toInt (); // Deepsleep for the night if (! ((Int_Heures> = 7) && (Int_Heures <= 20))) {Serial.print ("Sleep pour la nuit ("); Serial.print (Int_Sleep_Duration - Int_Minutes); Serial. println ("minúty" "); spánok (Int_Sleep_Duration - Int_Minutes); }} void loop () {// NTP set tnow = time (nullptr); Int_Heures = String (ctime (& tnow)). Subring (11, 13).toInt (); Int_Minutes = Reťazec (ctime (& tnow)). Podreťazec (14, 16).toInt (); //Serial.println(String(ctime(&tnow))); //Serial.println ("Heure:" + String (ctime (& tnow)). Subring (11, 13)); //Serial.println (String (ctime (& tnow)). Substring (11, 13).toInt ()); // Správa servo if (Old_Time! = Int_Heures) {Old_Time = Int_Heures; if (Int_Heures == 7) {if (Logs) Serial.println ("Positionne le servo pour 7 Heure"); myservo.attach (PIN_SERVO); for (int index = Arr_Servo_Pos [(sizeof (Arr_Servo_Pos) / sizeof (Arr_Servo_Pos [0])) -1]; index 7 && Int_Heures = Arr_Servo_Pos [Int_Heures-7]; index-) {if (Logs) Serial.println (index); oneskorenie (200); myservo.write (index); } oneskorenie (15); myservo.write (Arr_Servo_Pos [Int_Heures-7]); // napíšte znova poslednú hodnotu, aby ste sa vyhli trhavým pohybom pri odpojení myservo.detach (); } sieť (true); SendBatteryLevel (); sieť (nepravda); }}} // Deepsleep if sobotu after 13h if ((String (ctime (& tnow)). Subring (0, 3) == "Sat") && (Int_Heures> = 13)) {if (Logs) Serial.print ((„Sleep sleep le samedi aprés midi ("); if (Logs) Serial.print (Int_Sleep_Duration - Int_Minutes); if (Logs) Serial.println ("minutes)"); spánok (Int_Sleep_Duration - Int_Minutes); } // Deepsleep if v nedeľu if (String (ctime (& tnow)). Substring (0, 3) == "Sun") {if (Logs) Serial.print ("Sleep pour le dimanche ("); if (Logs) Serial.print (Int_Sleep_Duration - Int_Minutes); if (Logs) Serial.println ("minutes" "); spánok (Int_Sleep_Duration - Int_Minutes); } // Správa jazýčkov Switch_State_OUT = digitalRead (PIN_SWITCH_OUT); if (Switch_State_OUT! = Old_Switch_State_OUT) {if (millis () - switchPressTime> = DEBOUCE_TIME) {switchPressTime = millis (); if (Switch_State_OUT == HIGH) {Serial.println ("kuriérska služba!"); sieť (true); oneskorenie (5 000); MQTT_Pubilsh (IDX_Letter_Box, 0, "0"); oneskorenie (5 000); MQTT_Pubilsh (IDX_Parcel_Box, 0, "0"); oneskorenie (5 000); sieť (nepravda); }} Old_Switch_State_OUT = Switch_State_OUT; } Switch_State_IN_LETTER = digitalRead (PIN_SWITCH_IN_LETTER); if (Switch_State_IN_LETTER! = Old_Switch_State_IN_LETTER) {if (millis () - switchPressTime> = DEBOUCE_TIME) {switchPressTime = millis (); if (Switch_State_IN_LETTER == HIGH) {Serial.println ("courrier arrivé!"); sieť (true); oneskorenie (5 000); MQTT_Pubilsh (IDX_Letter_Box, 1, „Kuriér“); oneskorenie (5 000); sieť (nepravda); }} Old_Switch_State_IN_LETTER = Switch_State_IN_LETTER; } Switch_State_IN_PARCEL = digitalRead (PIN_SWITCH_IN_PARCEL); if (Switch_State_IN_PARCEL! = Old_Switch_State_IN_PARCEL) {if (millis () - switchPressTime> = DEBOUCE_TIME) {switchPressTime = millis (); if (Switch_State_IN_PARCEL == HIGH) {Serial.println ("colis arrivé!"); sieť (true); oneskorenie (5 000); MQTT_Pubilsh (IDX_Parcel_Box, 1, "Colis"); oneskorenie (5 000); sieť (nepravda); }} Old_Switch_State_IN_PARCEL = Switch_State_IN_PARCEL; }} neplatné SendBatteryLevel () {oneskorenie (5 000); vcc = analogRead (PIN_ANALOG) /10,24; if (Logs) Serial.println ("\ tTension relevée:" + String (vcc, 0)); MQTT_Pubilsh (IDX_Letter_Box_Battery, 0, String (vcc, 0)); oneskorenie (5 000); } prázdny spánok (min. trvanie) {ESP.deepSleep (min. trvanie * 60e6); } void network (bool UpDown) {if (UpDown) {Serial.print ("Network start"); WiFi.forceSleepWake (); oneskorenie (1); // init WIFI WiFi.config (ip, dns, gateway, subnet); WiFi.begin (ssid, heslo); while (WiFi.status ()! = WL_CONNECTED) {oneskorenie (500); Serial.print ("."); } oneskorenie (5 000); Serial.println ("."); Serial.print ("\ tPripojené - adresa IP:"); Serial.println (WiFi.localIP ()); // inicializácia MQTT ClientMQTT.setServer (MQTT_Server_IP, MQTT_Server_Port); // Init NTP Serial.print ("\ tČasová synchronizácia."); configTime (0, 0," fr.pool.ntp.org "); setenv (" TZ "," CET-1CEST, M3.5.0, M10.5.0/3 ", 0); while (čas (nullptr) <= 100000) {Serial.print ("."); Delay (100);} Serial.println (".");} Else {Serial.println ("Zastavenie siete."); WiFi.disconnect (); delay (1000); WiFi.mode (WIFI_OFF); delay (1000); WiFi.forceSleepBegin (); delay (1);}} void reconnect () {while (! ClientMQTT.connected ()) {Serial.print (" / tSkúsenie pripojenia MQTT … "); // Pokus o pripojenie, ak (ClientMQTT.connect (" ESP8266ClientBAL ")) {Serial.println (" connected ");} else {Serial.print (" failed, rc = "); Serial.print (ClientMQTT.state ()); Serial.println ("skúste to znova o 5 sekúnd"); // Počkajte 5 sekúnd, kým sa oneskorí opakovanie (5000);}}} neplatné MQTT_Pubilsh (int Int_IDX, int N_Value, String S_Value) {if (! ClientMQTT.connected ()) reconnect (); vcc = analogRead (PIN_ANALOG) /10.24; Serial.println ("\ tPoslať informácie na MQTT…"); MQTT_Pub_String = "{" idx / ":" + reťazec (Int_IDX) + ", \" Batéria / ":" + Reťazec (vcc, 0) + ", \" nvalue / ":" + N_Value + ", \" svalue / ": \" " + S_Value +" / "}"; MQTT_Pub_String.toCharArray (MQTT_Message_Buff, MQTT_Pub_String.length ()+1); ClientMQTT.publish ("domoticz/in", MQTT_Message_Buff); ClientMQTT.disconnect (); }

Krok 11: Domoticz

Domoticz
Domoticz
Domoticz
Domoticz
Domoticz
Domoticz

V Domoticzi:

Na všeobecné použitie:

  • Vytvorte dve „figuríny (nič nerobí, použite pre virtuálne prepínače)“:

    1. Prvý pre písmená…
    2. Druhý pre balík…
  • Pre každý z nich prispôsobte upozornenia;
  • Samozrejme, musíte si nastaviť token Tegegramu.

Voliteľne:

Môžete pridať „snímač obsluhy“, ktorý bude dohliadať na úroveň nabitia batérie.

Tipy: Tu nájdete množstvo bezplatných vlastných ikon …

Krok 12: Záver

Záver
Záver
Záver
Záver

Dúfam, že vám tento návod pomôže:

  • či si chcete vytvoriť svoj vlastný pripojený letterlbox;
  • alebo len aby ste mali nápady pre vaše projekty!

Ak máte nápady na vylepšenia, počúvam!

PS: Ospravedlňujem sa za angličtinu, preklad Google mi veľmi pomáha, ale pravdepodobne nie je dokonalý;-)

Odporúča: