Obsah:

Connected Letterbox Solar Powered: 12 kroků (s obrázky)
Connected Letterbox Solar Powered: 12 kroků (s obrázky)

Video: Connected Letterbox Solar Powered: 12 kroků (s obrázky)

Video: Connected Letterbox Solar Powered: 12 kroků (s obrázky)
Video: Je možná volná energie? Vyzkoušeli jsme tento motor s nekonečnou energií. 2024, Červenec
Anonim
Připojený Letterbox se solárním napájením
Připojený Letterbox se solárním napájením
Připojený Letterbox se solárním napájením
Připojený Letterbox se solárním napájením

Pro svůj druhý Ible vám popíšu moje práce o mém připojeném letterboxu.

Poté, co jsem si přečetl tento Instructable (+ mnoho dalších), a protože moje schránka není poblíž mého domu, chtěl jsem mě inspirovat k práci Open Green Energy, abych připojil svůj letterbox k mému serveru Domoticz.

Cíle

  • Buďte upozorněni Telegramem, když přicházejí dopisy;
  • Telegram vás upozorní, když přijde balíček;
  • Zkontrolujte, zda byly vyzvednuty dopisy / balíky.

Moje hlavní omezení

Poštovní schránka je relativně daleko od domu a nebylo možné k ní vytáhnout elektrický kabel, aby bylo možné něco napájet.

Musel jsem najít jiné řešení: solární energie byla dobrým řešením!

Kusovník

  • Raspberry Pi (hostovat části MQTT a Domoticz - zde není popsáno)
  • Účet Telegram Bot
  • Lolin D1 mini (nebo Wemos…)
  • Zásuvný šroubový konektor svorkovnice
  • Deska pro nabíjení lithiové baterie TP4056
  • 6V 2W fotovoltaický solární panel
  • Baterie Li-Ion 18650
  • Li-Ion držák baterie
  • PCB DIY Pájecí měděná prototypová deska s plošnými spoji
  • Analogové servo SG90
  • 3 jazýčkové spínače (jeden pro písmena, jeden pro balík a jeden pro pokladnu)
  • Magnety
  • Nějaké dráty
  • Dřevěná bedna: Protože jsem nedostal žádnou 3D tiskárnu, uvědomil jsem si svůj vlastní malý domek se dřevem pro příjem částí elektroniky …
  • Náhradní ethernetový kabel
  • Rozpojovací deska ethernetového konektoru RJ45

  • J-B Weld
  • Některá kuličková ložiska
  • Šrouby, matice, podložky

Krok 1: Globální schéma

Globální schéma
Globální schéma
Globální schéma
Globální schéma

Krásné kresby jsou vždy lepší než dlouhé řeči;-)

Ale několik vysvětlení o MQTT, Domoticz a Telegramu je vždy vítáno!

MQTT (Message Queuing Telemetry Transport) je protokol pro zasílání zpráv, který se používá k odesílání dat mezi zařízeními a jinými systémy ve světě IoT (internet věcí).

Bez přílišného rozebírání podrobností je jeho provoz založen na principu připojení klientů k serveru. V MQTT se klienti nazývají Subscriber nebo Publisher a server se nazývá Broker.

V tomto Instructable používám pouze jednoho vydavatele, Lolina připojeného k mé schránce: když jsou písmena nebo balíky detekovány prostřednictvím kontaktů jazýčků nainstalovaných v letterboxu (krok 1 v shematic), odešle zprávu MQTT přes WIFI makléři (krok 2).

Brokerovou část provádí Mosquitto, který je nainstalován na Raspberry Pi (krok 3).

O společnosti Domoticz:

Jak je popsáno na zdrojové stránce, Domoticz je „systém domácí automatizace“, který vám umožňuje ovládat různá zařízení a přijímat vstupy z různých protokolů: MQTT je jedním z podporovaných protokolů…

Jakmile k němu dorazí informace (krok 4), můžete definovat události: V případě schránky na dopisy jsem se rozhodl odeslat telegramové oznámení (krok 5).

Nakonec je v mém telefonu (a také mé ženě) nakonfigurován klient Telegramu - krok 6): konečného cíle je dosaženo …

Krok 2: Shematic / Wiring

Shematické / elektroinstalace
Shematické / elektroinstalace
Shematické / elektroinstalace
Shematické / elektroinstalace
Shematické / elektroinstalace
Shematické / elektroinstalace
Shematické / elektroinstalace
Shematické / elektroinstalace

Jedno slovo o analogovém čtení:

Nejprve jsem si po několika výzkumech všiml, že Lolin mini D1 (jako starý Wemos) má vestavěný dělič napětí pro kolík A0 (uvažuje se 220KΩ pro R1 a 100KΩ pro R2 - viz napravo od propojeného datového listu), což umožňuje 3,2 voltů jako maximální analogové vstupní napětí.

Vzhledem k tomu, že maximální výstupní napětí z baterie je 4, 2v (omezeno nabíjecí deskou), a teoreticky stačí ke zvýšení rozsahu maximálního vstupního napětí přidat externí rezistor (v sérii s R1). Pokud tedy přidáte 100 kB v sérii s R1, získáte tento výsledek:

Vin * R1/(R1+R2) = Vout

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

V mém obvodu jsem se rozhodl upravit jeho hodnotu, proto jsem raději použil nastavitelný odpor v mém obvodu: možná to pro vás bude k ničemu, ale v mé situaci jsem nastavil jeho hodnotu na asi 10 KΩ ucelená hodnota v Domoticz…

Všimněte si, že pin A0 má 10bitové rozlišení: to znamená, že ve vaší skice vaše analogové čtení vrátí hodnotu mezi 0 až 1024.

Protože chci odeslat procentní hodnotu do Domoticz, musím výsledek analogového čtení vydělit 10, 24.

Krok 3: Řízení spotřeby

Řízení spotřeby
Řízení spotřeby
Řízení spotřeby
Řízení spotřeby

Samozřejmě chci, aby byl letterbox autonomní. K dosažení svého cíle používám tyto prvky:

  • Li-Ion 18650 baterie 4000 mAh;
  • solární panel, který může dodávat 6V / 2W;
  • nabíjecí deska lithiové baterie TP4056.

Abych vybral nejvhodnější solární panel, podíval jsem se na několik příkladů, včetně tohoto: v tomto příkladu je použit solární panel 5,5 V / 0,66 W, který je pro tento účel pravděpodobně dostačující. V mém případě, a protože ESP8266 musí zůstat zapnutý během dne a musí být schopen spustit servomotor, aby udržel dům tváří ke slunci, zvolil jsem výkonnější model solárního panelu (6V / 2W) - Také mi to umožňuje předvídat temná zimní období a zamračené dny;-)

Abych snížil výdej energie na maximum, vybral jsem také následující scénáře:

  • s vědomím, že pošťák prošel pouze mezi 7:00 a 20:00, je ESP po zbytek noci umístěno v DeepSleep;
  • Faktor neprojde mezi sobotním polednem a pondělním ránem: ESP je v tomto období také přepnuto do režimu DeepSleep.
  • Na dobu mezi 7:00 a 20:00 a za účelem snížení spotřeby energie jednoduše deaktivuji síťové rozhraní ESP: síť se restartuje pouze při příchodu balíku nebo dopisu, což je dost času na odeslání informací Domoticz. Nemusím být okamžitě varován a několik dalších sekund nutných k restartu síťového rozhraní není na škodu!

Nějaká hodnota o spotřebě v různých režimech, které používám pro Lolin - podívejte se na datový list, p18:

  • V normálním režimu (při práci s RF) se spotřeba energie může zvýšit na 170 mA! Protože je můj poštovní schránka asi 50 metrů od mého domu (a na hranici signálu WIFI …), předpokládám, že energie použitá k udržení spojení je na jeho maximu…
  • V režimu spánku modemu klesne spotřeba energie na 15 mA. Ale jak vidíte v datovém listu, modem to úplně nezastavilo, protože ESP „udržuje připojení Wi-Fi bez přenosu dat“.
  • V hlubokém spánku poklesne výkon na 20uA.

Abych měl jistotu, že wifi nezůstává zbytečně aktivní, raději jsem ji vypnul následujícími příkazy. Všimněte si mnoha volání delay () … Bez nich pád ESP:

WiFi.disconnect ();

zpoždění (1000); WiFi.mode (WIFI_OFF); zpoždění (1000); WiFi.forceSleepBegin (); zpoždění (1);

Celkově se zdá, že po několika dnech provozu funguje a zejména se načítá správně:

  • to mi umožňuje spouštět servomotor každou hodinu, abych umístil dům směrem ke slunci;
  • Mohu si také dovolit každou hodinu znovu aktivovat síťové rozhraní a odeslat do Domoticzu úroveň nabití baterie.

Krok 4: Instalace magnetů a jazýčkových kontaktů

Instalace magnetů a jazýčkových kontaktů
Instalace magnetů a jazýčkových kontaktů
Instalace magnetů a jazýčkových kontaktů
Instalace magnetů a jazýčkových kontaktů
Instalace magnetů a jazýčkových kontaktů
Instalace magnetů a jazýčkových kontaktů

Jako obvykle jsem pomocí Proxxonu vytvaroval místo Reeda v kusu dřeva.

K upevnění jazýčkového kontaktu v jeho otvoru jsem použil trochu svaru J-B.

U balíku a výstupu malý kousek pásky, kousek pily a cíl je dosažen!

Výhodou mého letterboxu je, že je kovový, což usnadňuje umístění magnetů tak, aby správně spolupracovalo s jazýčkovými kontakty.

Krok 5: Připojte se k My Little House

Připojte se k My Little House
Připojte se k My Little House
Připojte se k My Little House
Připojte se k My Little House

Abych mohl snadno připojit a odpojit kabel, který vede k jazýčkovým kontaktům z letterboxu do domu, zvolil jsem použití ethernetového konektoru.

Můžete použít tento model nebo, stejně jako já, použít starý ethernetový štít Arduino, který visí v mých zásuvkách: Netrpěl, před pilou byl statečný, jeho smrt byla rychlá ^^

Jen pár slov k tomuto ethernetovému štítu Arduino: neočekávejte, že budete mít 8 samostatných ovladačů … Kabely jsou spárovány 2 uvnitř štítu … To mě přivádělo k šílenství příliš dlouho !!!

Krok 6: V domě…

V domě …
V domě …
V domě …
V domě …

Jen dost místa pro upevnění držáku baterie, nastavení serva a konektoru RJ45.

Krok 7: Let It Turntable…

Let It Turntable…
Let It Turntable…
Let It Turntable…
Let It Turntable…
Let It Turntable…
Let It Turntable…
Let It Turntable…
Let It Turntable…

Cílem je udržet ji tváří ke slunci…

Aby byla možnost otáčení, použil jsem jako osu dlouhý šroub s několika maticemi a dvěma kuličkovými ložisky …

Doposud jsem používal servo SG90 (točivý moment: 1,8 kg/cm při 4,8 V).

Otočit dům (a jeho pár gramů) stačí. Na druhou stranu si nejsem jistý, že jeho plastové převody dlouho odolávají častým nárazům větru, které v mém regionu panují.

Objednal jsem si další (točivý moment MG995: 9,4 kg/cm při 4,8 V), také ne příliš drahý, ale s kovovými převody.

Až to obdržím, bude to další věc: spoléhám na to, že mě připojený poštovní schránka upozorní na jeho příchod!

Krok 8: Některé testy

Image
Image

Několik poznámek:

Tento náčrt má pouze emulovat změny hodin během dne, aby mi umožnil ovládat polohu serva.

  • S SG90: žádné další potřeby, může pracovat s výstupním napětím přicházejícím z ovladače baterie.
  • Ale s MG 995:

    • Celkový úhel otočení není stejný (širší): K jeho zmenšení jsem musel použít zvláštní funkci (Servo_Delta ()).
    • Potřebujete zvýšení DC/DC, aby bylo servu poskytnuto dostatečné napětí… pokračování…

/*

- TEST s SG90: žádné další potřeby, může pracovat s výstupním napětím vycházejícím z ovladače baterie - FOR MG 995: - použít funkci Servo_Delta () … - Potřebujete DC/DC Step up, abyste servu poskytli dostatečné napětí … pokračování: */ #include bool Logs = true; Servo myservo; #define PIN_SERVO D2 // pozice serva pro: 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; neplatné nastavení () {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 (Protokoly) Serial.print ("Upravená hodnota:"); if (Protokoly) Serial.println (Servo_Delta (index)); zpoždění (200); //myservo.write(Servo_Delta(index)); myservo.write (index); } zpoždění (15); myservo.write (Arr_Servo_Pos [i-7]); // zapište znovu poslední hodnotu, abyste se vyhnuli trhavým pohybům při datach myservo.detach (); }}} zpoždění (2000); }} int Servo_Delta (int hodnota) {int Temp_val; Temp_val = (hodnota*0,80) +9; vrátit Temp_val; }

Krok 9: Malý dům

Malý dům
Malý dům
Malý dům
Malý dům
Malý dům
Malý dům

Jak jsem již řekl, žádnou 3D tiskárnu jsem nedostal. Rozhodl jsem se tedy použít starou přepravku na zeleninu …

Možná to nevydrží dlouhé počasí, ale do té doby bych měl čas zvážit jiné řešení (nebo přítele, který vlastní 3D tiskárnu): kvůli ochraně dřeva jsem všude přidal spoustu laku…

Můžete vidět "hezké závěsy" … To se stane, když požádáte svoji manželku, aby tu práci udělala ^^

Krok 10: Skica

Probíhá … Ale zdá se být stabilní

Stále pracuji na kódu: protože toto není definitivní verze, vaše komentáře / rady jsou vítány;-)

Několik poznámek:

  • V kódu je mnoho zpoždění (): to má zabránit spoustě pádů Lolinu, zvláště při zastavování startovací sítě…
  • Nenašel jsem snadný a spolehlivý způsob, jak získat sluneční azimut: proto jsem opravil hodnotu serva podle toho, co jsem pozoroval … Mám dobrý (a jednoduchý) způsob, jak toho dosáhnout, zajímá mě to! stopa ke studiu zde, i když dávám přednost online API, mi dává azimut přímo podle data, hodiny a zeměpisné polohy…
  • O spánkové technice: protože Lolin je 32bitový procesor Tensilica, jeho maximální hodnota pro 32bitové celé číslo bez znaménka je 4294967295… pak dává asi 71 minut pro interval hlubokého spánku. Proto spím l'ESP mnohokrát asi 60 minut…

EDIT - 2018-10-08:

Zjistil jsem, že servo má spoustu trhavých pohybů, zvláště před připojením (), odpojením () a pokaždé, když se Lolin probudí z deepSleep ().

Při studiu trochu více datových listů jsem si uvědomil dvě věci:

  • V datovém listu Lolin je výstup D4 již připojen k BUILTIN_LED…
  • V datovém listu ESP8266ex se dozvídáme, že výstup D4 se používá jako UART 1/U 1 TXD (univerzální asynchronní přijímačový vysílač). Je také uvedeno, že tento UART1 se používá pro tisk protokolu.

Čtením těchto informací jsem si uvědomil, že výstup D4 nebyl dobrý nápad, zvláště pro správu servomotoru!

Nyní je tedy výstup použitý k ovládání servomotoru D2, níže uvedený kód byl odpovídajícím způsobem aktualizován.

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

Datum vytvoření: 08/Datum mínus prod: 08/Verze: 0.9.4 Verze IDE Arduino: 1.8.6 Rychlost nahrávání: 921600 Typ karty dans l'IDE: "LOLIN (WEMOS) D1 R2 & mini" Karta postava zaměstnán: LOLIN (WEMOS) D1 R2 & mini (https://www.amazon.fr/gp/product/B01ELFAF1S/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1) Funkce pinu ESP-8266 Místní využití pinu ------- ---------------------------------------------------------- ------------------------------------ TX TXD TXD RX RXD RXD A0 Analogový vstup, max. Vstup 3.3V 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.sleep) *****************************************************; // wifi const char* ssid = "LOL"; const char* heslo = "LOL"; IP adresa IP (192, 168, 000, 000); IP adresa dns (192, 168, 000, 000); IP adresa brány (192, 168, 000, 000); Podsíť IPAddress (255, 255, 000, 000); Klient WiFiClient; // Servo #include #define PIN_SERVO D2 Servo myservo; // poloha serva pro: 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}; // Rákosí #define PIN_SWITCH_OUT D5 byte Old_Switch_State_OUT; byte Switch_State_OUT; #define PIN_SWITCH_IN_PARCEL D6 byte Old_Switch_State_IN_PARCEL; byte Switch_State_IN_PARCEL; #define PIN_SWITCH_IN_LETTER D7 byte Old_Switch_State_IN_LETTER; byte Switch_State_IN_LETTER; dlouhý znak bez znaménkaPressTime; konst bez znaménka dlouhý DEBOUCE_TIME = 200; // Analog #define PIN_ANALOG A0 // MQTT #include const char* MQTT_Server_IP = "Vaše adresa MQTT"; const int MQTT_Server_Port =; int IDX_Letter_Box =; int IDX_Parcel_Box =; int IDX_Letter_Box_Battery =; PubSubClient ClientMQTT (klient); char MQTT_Message_Buff [70]; Řetězec MQTT_Pub_String; // Napínací plovák vcc; // NTP #include time_t tnow; int Old_Time = 0; int Int_Heures = 0; int Int_Minutes = 0; int Int_Sleep_Duration = 63; neplatné nastavení () {Serial.begin (115200); síť (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 (); síť (false); // NTP set tnow = time (nullptr); Int_Heures = String (ctime (& tnow)). Subring (11, 13).toInt (); Int_Minutes = String (ctime (& tnow)). Substring (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 ("minuty" "); spánek (Int_Sleep_Duration - Int_Minutes); }} void loop () {// NTP set tnow = time (nullptr); Int_Heures = String (ctime (& tnow)). Subring (11, 13).toInt (); Int_Minutes = String (ctime (& tnow)). Substring (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); zpoždění (200); myservo.write (index); } zpoždění (15); myservo.write (Arr_Servo_Pos [Int_Heures-7]); // napište znovu poslední hodnotu, abyste se vyhnuli trhavým pohybům při odpojení myservo.detach (); } síť (true); SendBatteryLevel (); síť (false); }}} // Deepsleep if sobotu po 13h if ((String (ctime (& tnow)). Substring (0, 3) == "Sat") && (Int_Heures> = 13)) {if (Logs) Serial.print ((„Spánek le le samedi aprés midi ("); if (Logs) Serial.print (Int_Sleep_Duration - Int_Minutes); if (Logs) Serial.println ("minutes)"); spánek (Int_Sleep_Duration - Int_Minutes); } // Deepsleep if sunday 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ánek (Int_Sleep_Duration - Int_Minutes); } // Správa jazýčků 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 ("kurýrní relevé!"); síť (true); zpoždění (5000); MQTT_Pubilsh (IDX_Letter_Box, 0, "0"); zpoždění (5000); MQTT_Pubilsh (IDX_Parcel_Box, 0, "0"); zpoždění (5000); síť (false); }} 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é!"); síť (true); zpoždění (5000); MQTT_Pubilsh (IDX_Letter_Box, 1, „Courrier“); zpoždění (5000); síť (false); }} 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é!"); síť (true); zpoždění (5000); MQTT_Pubilsh (IDX_Parcel_Box, 1, "Colis"); zpoždění (5000); síť (false); }} Old_Switch_State_IN_PARCEL = Switch_State_IN_PARCEL; }} neplatné SendBatteryLevel () {zpoždění (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)); zpoždění (5000); } void sleep (int Min_Duration) {ESP.deepSleep (Min_Duration * 60e6); } void network (bool UpDown) {if (UpDown) {Serial.print ("Network start"); WiFi.forceSleepWake (); zpoždění (1); // init WIFI WiFi.config (ip, dns, gateway, subnet); WiFi.begin (ssid, heslo); while (WiFi.status ()! = WL_CONNECTED) {zpoždění (500); Serial.print ("."); } zpoždění (5 000); Serial.println ("."); Serial.print ("\ tPřipojeno - IP adresa:"); Serial.println (WiFi.localIP ()); // init MQTT ClientMQTT.setServer (MQTT_Server_IP, MQTT_Server_Port); // Init NTP Serial.print ("\ tČasová synchronizace."); 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 ("Zastavení sítě."); WiFi.disconnect (); delay (1000); WiFi.mode (WIFI_OFF); delay (1000); WiFi.forceSleepBegin (); delay (1);}} void reconnect () {while (! ClientMQTT.connected ()) {Serial.print (" / tAptempting MQTT connection… "); // Pokus o připojení if (ClientMQTT.connect (" ESP8266ClientBAL ")) {Serial.println (" connected ");} else {Serial.print (" failed, rc = "); Serial.print (ClientMQTT.state ()); Serial.println ("zkuste to znovu za 5 sekund"); // Počkejte 5 sekund před zpožděním opakování (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 ("\ tSend info to MQTT…"); MQTT_Pub_String = "{" idx / ":" + String (Int_IDX) + ", \" Baterie / ":" + Řetězec (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 Domoticz:

Pro obecné použití:

  • Vytvořte dvě „Dummy (nedělá nic, použijte pro virtuální přepínače)“:

    1. První pro písmena…
    2. Druhý pro balík…
  • U každého z nich přizpůsobte oznámení;
  • Samozřejmě musíte nastavit token Tegegramu.

Volitelně:

Chcete -li dohlížet na úroveň nabití baterie, můžete přidat „Senzor nástrojů“.

Tipy: zde najdete spoustu bezplatných vlastních ikon…

Krok 12: Závěr

Závěr
Závěr
Závěr
Závěr

Doufám, že vám tento Instructable pomůže:

  • zda si vytvořit vlastní připojený letterlbox;
  • nebo jen proto, abychom vám poskytli nějaké nápady pro vaše projekty!

Pokud máte nápady na vylepšení, poslouchám!

PS: omlouvám se za moji angličtinu, překlad Google mi hodně pomáhá, ale pravděpodobně není dokonalý;-)

Doporučuje: