Innholdsfortegnelse:

Tilkoblet Letterbox Solar Powered: 12 trinn (med bilder)
Tilkoblet Letterbox Solar Powered: 12 trinn (med bilder)

Video: Tilkoblet Letterbox Solar Powered: 12 trinn (med bilder)

Video: Tilkoblet Letterbox Solar Powered: 12 trinn (med bilder)
Video: 12 Best Solar Post Lights of 2022 2024, Juli
Anonim
Tilkoblet Letterbox Solar Powered
Tilkoblet Letterbox Solar Powered
Tilkoblet Letterbox Solar Powered
Tilkoblet Letterbox Solar Powered

For min andre Ible skal jeg beskrive mine arbeider om min tilkoblede brevkasse.

Etter å ha lest denne Instructable (+ mange andre), og ettersom min brevkasse ikke er i nærheten av huset mitt, ønsket jeg å inspirere meg til Open Green Energy sine arbeider for å koble brevkassen min til min Domoticz -server.

Mål

  • Bli informert av Telegram når det kommer brev;
  • Bli informert av Telegram når en pakke kommer;
  • Sjekk om bokstavene / pakkene er hentet.

Min viktigste begrensning

Postkassen er relativt langt fra huset, og det var umulig å trekke en elektrisk kabel opp til den for å drive noe.

Jeg måtte finne en annen løsning: solenergi var en god løsning!

BOM

  • Raspberry Pi (for å være vert for MQTT og Domoticz deler - ikke beskrevet her)
  • En Telegram Bot -konto
  • Lolin D1 mini (eller Wemos …)
  • Plug-In Skrue Terminal Block Connector
  • TP4056 litiumbatterilader
  • 6V 2W fotovoltaisk solcellepanel
  • Li-Ion 18650 batteri
  • Li-ion batteriholder
  • PCB DIY lodding kobber prototype kretskort
  • Analog Servo SG90
  • 3 sivbrytere (en for bokstaver, en for pakke og en for kassen)
  • Magneter
  • Noen ledninger
  • Trekasse: Da jeg ikke fikk noen 3D -skriver, innså jeg mitt eget lille hus med tre for å motta elektronikkdeler …
  • Reserve Ethernet -kabel
  • RJ45 Ethernet Connector Breakout Board

  • J-B Weld
  • Noen kulelager
  • Skruer, muttere, skiver

Trinn 1: Globalt opplegg

Globalt opplegg
Globalt opplegg
Globalt opplegg
Globalt opplegg

Vakre tegninger er alltid bedre enn lange taler;-)

Men noen få forklaringer om MQTT, Domoticz og Telegram er alltid velkomne!

MQTT (Message Queuing Telemetry Transport), er en meldingsprotokoll som brukes til å sende data mellom enheter og andre systemer i IoT (tingenes internett) verden.

Uten å gå inn for mange detaljer, er driften basert på prinsippet om klienter som kobler seg til en server. I MQTT kalles klienter abonnent eller utgiver, og serveren kalles megler.

I denne instruksjonsboken bruker jeg bare en utgiver, Lolin koblet til brevkassen min: Når bokstaver eller pakke oppdages via sivkontaktene som er installert i brevboksen (trinn 1 i skjematisk), sender den MQTT -melding over WIFI til megleren (trinn 2).

Meglerdelen er utført av Mosquitto, som er installert på Raspberry Pi (trinn 3).

Om Domoticz:

Som beskrevet på kildesiden, er Domoticz et "hjemmeautomatiseringssystem", som lar deg kontrollere forskjellige enheter og motta input fra forskjellige protokoller: MQTT er en av de støttede protokollene …

Så snart informasjonen når ham (trinn 4), kan du definere hendelser: Når det gjelder brevboksen, valgte jeg å sende et Telegram -varsel (trinn 5).

Til slutt er Telegram -klienten konfigurert på telefonen min (og min kones også! - Trinn 6): sluttmålet er nådd …

Trinn 2: Sjematisk / ledninger

Sjematisk / ledninger
Sjematisk / ledninger
Sjematisk / ledninger
Sjematisk / ledninger
Sjematisk / ledninger
Sjematisk / ledninger
Sjematisk / ledninger
Sjematisk / ledninger

Ett ord om den analoge leste:

Først av alt, la jeg merke til etter noen undersøkelser at Lolin mini D1 (som den gamle Wemos), har innebygd spenningsdeler for pin A0 (vurderer 220KΩ for R1 og 100KΩ for R2 - se til høyre for databladet koblet), slik at 3,2 volt som maksimal analog inngangsspenning.

Med tanke på maksimal utgangsspenning fra batteriet er 4, 2v (begrenset av ladekortet), og teoretisk sett trenger du bare å legge til en ekstern resitor (i serie med R1) for å øke maks. Inngangsspenningsområde. Hvis du legger til 100K i serie med R1, får du dette resultatet:

Vin * R1/(R1+R2) = Vout

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

I min krets valgte jeg å kunne justere verdien, derfor har jeg foretrukket å bruke en justerbar motstand i min krets: kanskje det vil være ubrukelig for deg, men i min situasjon satte jeg verdien til omtrent 10KΩ å ha en sammenhengende verdi i Domoticz …

Vær oppmerksom på at A0 -pinnen har 10 biters oppløsning: dette betyr at i din skisse vil din analoge lesing returnere en verdi mellom 0 til 1024.

Siden jeg vil sende en prosentverdi til Domoticz, må jeg dele analogt leseresultat med 10, 24.

Trinn 3: Strømstyring

Strømstyring
Strømstyring
Strømstyring
Strømstyring

Selvfølgelig vil jeg at brevkassen skal være autonom. For å nå målet mitt bruker jeg disse elementene:

  • et Li-Ion 18650 batteri på 4000mAh;
  • et solcellepanel som kan levere 6V / 2W;
  • et ladekort for TP4056 litiumbatteri.

For å velge det mest passende solcellepanelet, tok jeg en titt på noen eksempler, inkludert dette: I dette eksemplet brukes et 5,5V / 0,66W solcellepanel, og er sannsynligvis tilstrekkelig for formålet. I mitt tilfelle, og da ESP8266 må forbli PÅ i løpet av dagen og må kunne kjøre en servomotor for å holde huset mot solen, valgte jeg en kraftigere solcellepanelmodell (6V / 2W) - Det tillater meg også å forutse mørke vinterperioder og skyet dager;-)

Også, og for å redusere energiforbruket til det maksimale, har jeg valgt følgende scenarier:

  • vel vitende om at postbudet bare har passert mellom kl. 7 og 20, er ESP plassert i DeepSleep resten av natten;
  • Faktoren går ikke mellom lørdag middag og mandag morgen: ESP er også plassert i DeepSleep -modus i denne perioden.
  • For perioden mellom kl. 7 og 20, og for å redusere strømforbruket, deaktiverer jeg ganske enkelt nettverksgrensesnittet til ESP: nettverket startes på nytt bare ved ankomst av en pakke eller et brev, bare nok tid til å sende informasjonen til Domoticz. Jeg trenger ikke å bli advart umiddelbart, og de få sekundene som er nødvendige for å starte nettverksgrensesnittet på nytt er ikke skadelige!

Noen verdi om forbruk i forskjellige moduser som jeg bruker for Lolin - se på databladet, s18:

  • I normal modus (med RF -arbeid) kan strømforbruket øke til 170mA! Siden postkassen min er omtrent 50 meter fra huset mitt (og ved grensen for WIFI -signalet …) antar jeg at strømmen som brukes til å opprettholde tilkoblingen er på maksimum …
  • I modem-søvn faller strømforbruket til 15mA. Men som du kan se i databladet, stoppet det ikke helt modemet, siden ESP "opprettholder en Wi-Fi-tilkobling uten dataoverføring".
  • I dyp søvn faller strømmen til 20uA.

For å være sikker på at wifi ikke forblir aktivt unødvendig, foretrakk jeg å deaktivere det med følgende kommandoer. Legg merke til mange forsinkelser () -anrop … Uten dem krasjer ESP:

WiFi. Koble fra ();

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

Totalt sett ser det ut til å fungere og spesielt etter å ha lastet inn riktig etter flere dagers drift:

  • dette lar meg kjøre servomotoren hver time for å plassere huset mot solen;
  • Jeg kan også tillate meg selv å aktivere nettverksgrensesnittet igjen hver time for å sende batterinivået til Domoticz.

Trinn 4: Installere magneter og sivkontakter

Installere magneter og sivkontakter
Installere magneter og sivkontakter
Installere magneter og sivkontakter
Installere magneter og sivkontakter
Installere magneter og sivkontakter
Installere magneter og sivkontakter

Som vanlig brukte jeg min Proxxon til å forme sivets sted i et treverk.

For å fikse sivkontakten i hullet, brukte jeg litt J-B sveis.

For pakken og utdataene, et lite stykke tape, en liten båndsag, og målet er nådd!

Fordelen med brevkassen min er at den er metall, noe som letter posisjoneringen av magneter slik at den samhandler riktig med sivkontakter.

Trinn 5: Koble til My Little House

Koble til My Little House
Koble til My Little House
Koble til My Little House
Koble til My Little House

For å enkelt kunne koble til og fra kabelen som går til sivkontaktene fra brevboksen til huset, valgte jeg å bruke en Ethernet -kontakt.

Du kan bruke denne modellen eller, som meg, bruke et gammelt Arduino Ethernet -skjold som henger i skuffene mine: Han led ikke, han var modig foran sagen, hans død var rask ^^

Bare et ord om dette Arduino Ethernet -skjoldet: ikke forvent å ha 8 separate drivere … Kabler er paret med 2 inne i skjoldet … Det gjorde meg gal for lenge !!!

Trinn 6: I huset …

I huset …
I huset …
I huset …
I huset …

Akkurat nok sted til å fikse batteriholderen, sette servoen og RJ45 -hunnkontakten.

Trinn 7: La det dreiebord …

La det dreiebord …
La det dreiebord …
La det dreiebord …
La det dreiebord …
La det dreiebord …
La det dreiebord …
La det dreiebord …
La det dreiebord …

Målet er å holde det vendt mot solen …

For å la muligheten til å være svingbar brukte jeg en lang skrue som en aksel, med noen muttere og to kulelagre …

Frem til nå brukte jeg SG90 servo (dreiemoment: 1,8kg/cm ved 4,8v).

Å snu huset (og dets få gram) er nok. På den annen side er jeg ikke sikker på at plastgirene i lang tid motstår de hyppige vindkastene i min region.

Jeg bestilte en til (MG995 dreiemoment: 9,4 kg/cm ved 4,8 v), ikke veldig dyrt heller, men med metallgir.

Det vil være det neste jeg må gjøre når jeg har mottatt det: Jeg stoler på den tilkoblede brevkassen min for å varsle meg om hans ankomst!

Trinn 8: Noen tester

Image
Image

Noen få notater:

Denne skissen er bare for å etterligne endringer av timer i løpet av dagen, slik at jeg kan kontrollere posisjonen til servoen.

  • Med SG90: ingen ekstra behov, kan den fungere med OUT -spenningen som kommer fra batterikontrolleren.
  • Men, med MG 995:

    • Den totale rotasjonsvinkelen er ikke den samme (bredere): Jeg måtte bruke en ekstra funksjon for å redusere den (Servo_Delta ()).
    • Trenger en DC/DC Step up for å gi nok spenning til servoen … for å fortsette …

/*

- TEST med SG90: ingen ekstra behov, den kan fungere med OUT -spenningen som kommer fra batterikontrolleren - FOR MG 995: - bruk Servo_Delta () -funksjonen … - Trenger en DC/DC Step up for å gi nok spenning til servoen … for å fortsett: */ #include bool Logs = true; Servo myservo; #define PIN_SERVO D2 // servoposisjon for: 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 gammel; int pos; int i; ugyldig oppsett () {Serial.begin (115200); } void loop () {for (i = 7; i <= 22; i ++) {old = i; if (i == 7) {if (Logger) 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 (Logger) Serial.println (indeks); if (Logger) Serial.print ("Justert verdi:"); hvis (Logger) Serial.println (Servo_Delta (indeks)); forsinkelse (200); //myservo.write(Servo_Delta(index)); myservo.write (indeks); } forsinkelse (15); myservo.write (Arr_Servo_Pos [i-7]); // skriv igjen den siste verdien for å unngå rykete bevegelser når datach myservo.detach (); }}} forsinkelse (2000); }} int Servo_Delta (int verdi) {int Temp_val; Temp_val = (verdi*0,80) +9; returner Temp_val; }

Trinn 9: Det lille huset

Det lille huset
Det lille huset
Det lille huset
Det lille huset
Det lille huset
Det lille huset

Som jeg fortalte før, fikk jeg ingen 3D -skriver. Så jeg bestemmer meg for å bruke gammel grønnsakskasse …

Kanskje det ikke varer lenge, men da ville jeg ha tid til å vurdere en annen løsning (eller en venn som eier en 3D -skriver): For å beskytte treverket la jeg til mye lakk overalt …

Du kan se de "vakre gardinene" … Det er det som skjer når du ber kona om å gjøre jobben ^^

Trinn 10: Skissen

Pågår … Men ser ut til å være stabil

Jeg jobber fortsatt med koden: ettersom dette ikke er en endelig versjon, er dine kommentarer / råd velkomne;-)

Noen bemerkninger:

  • De er mange forsinkelser () i koden: dette er for å unngå mye krasj av Lolin, spesielt mens du stopper et startnettverk …
  • Jeg fant ikke en enkel og pålitelig måte å få solasimuten på: Det er derfor jeg fikset servoverdien i funksjon av det jeg observerte … Jeg har en god (og enkel) måte å få det på, jeg er interessert! Kanskje et spor å studere her, selv om jeg foretrekker et online API, gir meg asimuten direkte i henhold til dato, time og geografisk posisjon …
  • Om søvnteknikken: ettersom Lolin er en 32-biters Tensilica-prosessor, er maksimalverdien for et 32-bits usignert heltall 4294967295 … da gir den omtrent maks 71 minutter for dyp søvnintervallet. Derfor sover jeg l'ESP mange ganger i omtrent 60 minutter …

EDIT - 2018-10-08:

Jeg oppdaget at servoen har mange rykkete bevegelser, spesielt før vedlegget (), løsner () og hver gang Lolin våkner fra deepSleep ().

Mens jeg studerte litt mer datablad, innså jeg to ting:

  • På Lolin -databladet er D4 -utgangen allerede koblet til BUILTIN_LED …
  • På databladet ESP8266ex lærer vi at D4 -utgangen brukes som UART 1/U 1 TXD (Universal Asynchronous Receiver Transmitter). Det er også spesifisert at denne UART1 brukes til å skrive ut logg.

Ved å lese denne informasjonen innså jeg at D4 -utgangen ikke var en god idé, spesielt for å administrere en servomotor!

Så nå er utgangen som brukes til å kontrollere servomotoren D2, koden nedenfor har blitt oppdatert tilsvarende.

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

Date création: 08/Date mise en prod: 08/Version: 0.9.4 Version IDE Arduino: 1.8.6 Upload speed: 921600 Type de carte dans l'IDE: "LOLIN (WEMOS) D1 R2 & mini" Carte physique employée: LOLIN (WEMOS) D1 R2 & mini (https://www.amazon.fr/gp/product/B01ELFAF1S/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1) Pin-funksjon ESP-8266 Pin Utilisation locale ------- -------------------------------------------------- ------------------------------------ TX TXD TXD RX RXD RXD A0 Analog inngang, maks 3,3V inngang A0 Tension d'alimentaion D0 IO GPIO16 Connecté à RST (pour le deep.sleep) D1 IO, SCL GPIO5 D2 IO, SDA GPIO4 Servomotor 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 (hell le deep.sleep) ***************************************/ #include bool Logger = true; // wifi const char* ssid = "LOL"; const char* password = "LOL"; IPAddress ip (192, 168, 000, 000); IPAddress dns (192, 168, 000, 000); IPAddress -gateway (192, 168, 000, 000); IPAddress -delnett (255, 255, 000, 000); WiFiClient -klient; // Servo #include #define PIN_SERVO D2 Servo myservo; // servoposisjon for: 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}; // Reeds #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; usignert lang switchPressTime; const usignert lang DEBOUCE_TIME = 200; // Analog #define PIN_ANALOG A0 // MQTT #include const char* MQTT_Server_IP = "Din MQTT -adresse"; 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]; String MQTT_Pub_String; // Tension float vcc; // NTP #include time_t tnow; int Old_Time = 0; int Int_Heures = 0; int Int_Minutes = 0; int Int_Sleep_Duration = 63; ugyldig oppsett () {Serial.begin (115200); nettverk (sant); 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 (); nettverk (falskt); // NTP sett tnow = time (nullptr); Int_Heures = String (ctime (& tnow)). Delstreng (11, 13).toInt (); Int_Minutes = String (ctime (& tnow)). Delstreng (14, 16).toInt (); // Dype søvn for natten hvis (! ((Int_Heures> = 7) && (Int_Heures <= 20))) {Serial.print ("Sleep pour la nuit ("); Serial.print (Int_Sleep_Duration - Int_Minutes); Serial. println ("minutter)"); sove (Int_Sleep_Duration - Int_Minutes); }} void loop () {// NTP sett tnow = time (nullptr); Int_Heures = String (ctime (& tnow)). Delstreng (11, 13).toInt (); Int_Minutes = String (ctime (& tnow)). Delstreng (14, 16).toInt (); //Serial.println(String(ctime(&tnow))); //Serial.println ("Heure:" + String (ctime (& tnow)). Delstreng (11, 13)); //Serial.println (String (ctime (& tnow)). Delstreng (11, 13).toInt ()); // Servostyring hvis (Old_Time! = Int_Heures) {Old_Time = Int_Heures; if (Int_Heures == 7) {if (Logger) 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 (Logger) Serial.println (indeks); forsinkelse (200); myservo.write (indeks); } forsinkelse (15); myservo.write (Arr_Servo_Pos [Int_Heures-7]); // skriv igjen den siste verdien for å unngå rykete bevegelser når du løsner myservo.detach (); } nettverk (sant); SendBatteryLevel (); nettverk (falskt); }}}} // Deepsleep hvis lørdag etter 13 timer hvis ((String (ctime (& tnow)). Delstreng (0, 3) == "Sat") && (Int_Heures> = 13)) {if (Logger) Serial.print ("Sleep pour le samedi aprés midi ("); if (Logs) Serial.print (Int_Sleep_Duration - Int_Minutes); if (Logs) Serial.println ("minutes" "); sove (Int_Sleep_Duration - Int_Minutes); } // Deepsleep if søndag hvis (String (ctime (& tnow)). Substring (0, 3) == "Sun") {if (Logs) Serial.print ("Sleep pour le dimanche ("); if (Logger) Serial.print (Int_Sleep_Duration - Int_Minutes); if (Logger) Serial.println ("minutter)"); sove (Int_Sleep_Duration - Int_Minutes); } // Reeds management 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 ("courrier relevant!"); nettverk (sant); forsinkelse (5000); MQTT_Pubilsh (IDX_Letter_Box, 0, "0"); forsinkelse (5000); MQTT_Pubilsh (IDX_Parcel_Box, 0, "0"); forsinkelse (5000); nettverk (falskt); }} 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 (); hvis (Switch_State_IN_LETTER == HIGH) {Serial.println ("courrier arrivé!"); nettverk (sant); forsinkelse (5000); MQTT_Pubilsh (IDX_Letter_Box, 1, "Courrier"); forsinkelse (5000); nettverk (falskt); }} 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é!"); nettverk (sant); forsinkelse (5000); MQTT_Pubilsh (IDX_Parcel_Box, 1, "Colis"); forsinkelse (5000); nettverk (falskt); }} Old_Switch_State_IN_PARCEL = Switch_State_IN_PARCEL; }} ugyldig SendBatteryLevel () {forsinkelse (5000); vcc = analogRead (PIN_ANALOG) /10.24; if (Logger) Serial.println ("\ tTension relevant:" + streng (vcc, 0)); MQTT_Pubilsh (IDX_Letter_Box_Battery, 0, String (vcc, 0)); forsinkelse (5000); } ugyldig søvn (int Min_Duration) {ESP.deepSleep (Min_Duration * 60e6); } ugyldig nettverk (bool UpDown) {if (UpDown) {Serial.print ("Nettverksstart"); WiFi.forceSleepWake (); forsinkelse (1); // init WIFI WiFi.config (ip, dns, gateway, delnett); WiFi.begin (ssid, passord); mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (500); Serial.print ("."); } forsinkelse (5000); Serial.println ("."); Serial.print ("\ tConnected - IP Address:"); Serial.println (WiFi.localIP ()); // init MQTT ClientMQTT.setServer (MQTT_Server_IP, MQTT_Server_Port); // Init NTP Serial.print ("\ tTime Synch."); configTime (0, 0," fr.pool.ntp.org "); setenv (" TZ "," CET-1CEST, M3.5.0, M10.5.0/3 ", 0); while (time (nullptr) <= 100000) {Serial.print ("."); Delay (100);} Serial.println (".");} Else {Serial.println ("Nettverksstopp."); WiFi.disconnect (); delay (1000); WiFi.mode (WIFI_OFF); delay (1000); WiFi.forceSleepBegin (); delay (1);}} void reconnect () {while (! ClientMQTT.connected ()) {Serial.print (" / tForsøk på MQTT -tilkobling … "); // Forsøk på å koble til hvis (ClientMQTT.connect (" ESP8266ClientBAL ")) {Serial.println (" tilkoblet ");} annet {Serial.print (" mislyktes, rc = "); Serial.print (ClientMQTT.state ()); Serial.println ("prøv igjen om 5 sekunder"); // Vent 5 sekunder før forsøk på nytt (5000);}}} ugyldig MQTT_Pubilsh (int Int_IDX, int N_Value, String S_Value) {if (! ClientMQTT.connected ()) koble til på nytt (); vcc = analogRead (PIN_ANALOG) /10.24; Serial.println ("\ tSend informasjon til MQTT …"); MQTT_Pub_String = "{" idx / ":" + streng (Int_IDX) + ", \" Battery / ":" + String (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 (); }

Trinn 11: Domoticz

Domoticz
Domoticz
Domoticz
Domoticz
Domoticz
Domoticz

I Domoticz:

For generell bruk:

  • Lag to "Dummy (gjør ingenting, bruk for virtuelle brytere)":

    1. Den første for bokstaver …
    2. Den andre for pakken …
  • Tilpass varsler for hver av dem;
  • Selvfølgelig må du konfigurere Tegegram -tokenet ditt.

Eventuelt:

Du kan legge til en "Utility -sensor" for å overvåke batterinivået.

Tips: her kan du finne mange gratis tilpassede ikoner …

Trinn 12: Konklusjon

Konklusjon
Konklusjon
Konklusjon
Konklusjon

Håper denne instruksjonsboken vil hjelpe deg:

  • om du skal lage din egen tilkoblede brevkasse;
  • eller bare for å gi deg noen ideer til prosjektene dine!

Hvis du har ideer til forbedringer, hører jeg!

PS: beklager engelsk, Google-oversettelse hjelper meg mye, men er sannsynligvis ikke perfekt;-)

Anbefalt: