Sisukord:

Ühendatud kirjakast päikeseenergial: 12 sammu (piltidega)
Ühendatud kirjakast päikeseenergial: 12 sammu (piltidega)

Video: Ühendatud kirjakast päikeseenergial: 12 sammu (piltidega)

Video: Ühendatud kirjakast päikeseenergial: 12 sammu (piltidega)
Video: Возможна ли свободная энергия? Мы тестируем этот двигатель бесконечной энергии. 2024, Juuli
Anonim
Ühendatud kirjakast päikeseenergiaga
Ühendatud kirjakast päikeseenergiaga
Ühendatud kirjakast päikeseenergiaga
Ühendatud kirjakast päikeseenergiaga

Oma teise Ible'i puhul kirjeldan teile oma töid minu ühendatud postkasti kohta.

Pärast selle juhendi (+ paljude teiste) lugemist ja kuna minu postkast ei ole minu maja lähedal, tahtsin mind inspireerida Open Green Energy töödest, et ühendada oma postkast Domoticzi serveriga.

Eesmärgid

  • Telegram teavitab teid kirjade saabumisest;
  • Telegram teavitab teid paki saabumisest;
  • Kontrollige, kas kirjad / pakid on kätte saadud.

Minu peamine piirang

Postkast asub majast suhteliselt kaugel ja selle külge ei olnud võimalik elektrikaablit tõmmata, et midagi toita.

Pidin leidma teise lahenduse: päikeseenergia oli hea lahendus!

BOM

  • Raspberry Pi (võõrustada MQTT ja Domoticzi osi - pole siin kirjeldatud)
  • Telegram Boti konto
  • Lolin D1 mini (või Wemos …)
  • Pistikühendusega kruviklemmiploki pistik
  • TP4056 liitiumaku laadimislaud
  • 6V 2W fotogalvaaniline päikesepaneel
  • Li-Ion 18650 aku
  • Li-Ion akuhoidik
  • PCB DIY jootmine vask prototüüp trükkplaat
  • Analoog Servo SG90
  • 3 pilliroo lülitit (üks tähtede jaoks, üks paki jaoks ja üks kassasse)
  • Magnetid
  • Mõned juhtmed
  • Puidust kast: Kuna ma ei saanud ühtegi 3D -printerit, mõistsin oma väikest maja puiduga elektroonikaosade vastuvõtmiseks …
  • Varu Etherneti kaabel
  • RJ45 Etherneti pistikupesa

  • J-B Keevitus
  • Mõned kuullaagrid
  • Kruvid, mutrid, seibid

Samm: globaalne skeem

Globaalne skeem
Globaalne skeem
Globaalne skeem
Globaalne skeem

Ilusad joonistused on alati paremad kui pikad kõned;-)

Kuid mõned selgitused MQTT, Domoticzi ja Telegrami kohta on alati teretulnud!

MQTT (Message Queuing Telemetry Transport) on sõnumiprotokoll, mida kasutatakse andmete saatmiseks seadmete ja muude IoT (asjade Interneti) maailma süsteemide vahel.

Ilma liigsetesse üksikasjadesse laskumata põhineb selle töö põhimõttel, et kliendid ühenduvad serveriga. MQTT -s nimetatakse kliente tellijaks või avaldajaks ja serverit maakleriks.

Selles juhendis kasutan ainult ühte väljaandjat, Lolini, mis on ühendatud minu postkastiga: kui kirjad või pakid tuvastatakse postkasti paigaldatud pilliroo kontaktide kaudu (samm 1), saadab ta MQTT -sõnumi WIFI kaudu maaklerile (2. samm).

Maakleri osa teeb Mosquitto, mis on installitud Raspberry Pi (samm 3).

Teave Domoticzi kohta:

Nagu allikalehel kirjeldatud, on Domoticz "koduautomaatikasüsteem", mis võimaldab teil juhtida erinevaid seadmeid ja saada sisendit erinevatest protokollidest: MQTT on üks toetatud protokollidest …

Niipea, kui teave temani jõuab (4. samm), saate sündmusi määratleda: Kirjakasti puhul otsustasin saata telegrammiteate (5. samm).

Lõpuks on minu telefonis (ja ka minu naisel! - 6. samm) seadistatud Telegrami klient: lõpp -eesmärk on saavutatud …

2. samm: Shemaatiline / juhtmestik

Shemaatiline / juhtmestik
Shemaatiline / juhtmestik
Shemaatiline / juhtmestik
Shemaatiline / juhtmestik
Shemaatiline / juhtmestik
Shemaatiline / juhtmestik
Shemaatiline / juhtmestik
Shemaatiline / juhtmestik

Üks sõna analoogi kohta:

Esiteks märkasin pärast mõningaid uuringuid, et Lolin mini D1 (nagu vana Wemos) on sisseehitatud pingejagur tihvti A0 jaoks (arvestades 220KΩ R1 jaoks ja 100KΩ R2 jaoks - vt lingitud andmelehe paremal pool), mis võimaldab 3,2 volti maksimaalse analoogsisendpingena.

Arvestades, et aku maksimaalne väljundpinge on 4, 2 V (piiratud laadimisplaadiga) ja teoreetiliselt peate maksimaalse sisendpingevahemiku suurendamiseks lisama ainult välise resitori (jadaga R1). Kui lisate 100 000 järjestikku koos R1 -ga, saate järgmise tulemuse:

Vin * R1/(R1+R2) = Vout

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

Oma vooluringis otsustasin selle väärtust reguleerida, seetõttu olen eelistanud oma vooluahelas kasutada reguleeritavat takisti: võib -olla on see teie jaoks kasutu, kuid minu olukorras seadsin selle väärtuseks umbes 10KΩ ühtne väärtus Domoticzis …

Pange tähele, et A0 tihvti eraldusvõime on 10 bitti: see tähendab, et teie visandis tagastab teie analoognäitaja väärtuse vahemikus 0 kuni 1024.

Kuna ma tahan Domoticzile protsentuaalse väärtuse saata, pean ma analooglugemise tulemuse jagama 10, 24 -ga.

3. samm: toitehaldus

Toitehaldus
Toitehaldus
Toitehaldus
Toitehaldus

Loomulikult tahan, et kirjakast oleks autonoomne. Eesmärgi saavutamiseks kasutan järgmisi elemente:

  • Li-Ion 18650 aku 4000mAh;
  • päikesepaneel, mille võimsus on 6V / 2W;
  • liitiumaku laadimisplaat TP4056.

Sobivaima päikesepaneeli valimiseks vaatasin mõningaid näiteid, sealhulgas seda: selles näites kasutatakse 5,5 V / 0,66 W päikesepaneeli ja see on tõenäoliselt selleks otstarbeks piisav. Minu puhul ja kuna ESP8266 peab jääma päeva jooksul SISSE ja peab saama käitada servomootorit, et hoida maja päikese poole, valisin võimsama päikesepaneeli mudeli (6V / 2W) - see võimaldab mul ka et oodata pimedaid talveperioode ja pilviseid päevi;-)

Samuti, et vähendada energiakulu maksimaalselt, olen valinud järgmised stsenaariumid:

  • teades, et postiljon möödus alles kella 7–20, paigutatakse ESP ülejäänud ööks DeepSleepi;
  • Tegur ei möödu laupäeva keskpäeva ja esmaspäeva hommiku vahel: ESP lülitatakse sel perioodil ka DeepSleep režiimi.
  • Ajavahemikuks 7.00–20.00 ja energiatarbimise vähendamiseks keelan ma lihtsalt ESP võrguliidese: võrk taaskäivitatakse alles paki või kirja saabumisel, piisavalt aega teabe saatmiseks Domoticz. Mind ei pea kohe hoiatama ja võrguliidese taaskäivitamiseks vajalikud paar sekundit ei ole kahjulikud!

Mõni väärtus tarbimise kohta erinevates režiimides, mida kasutan Lolini puhul - vaadake andmelehte, lk 18:

  • Tavarežiimis (koos RF -tööga) võib energiatarve tõusta 170 mA -ni! Kuna minu postkast on minu majast umbes 50 meetri kaugusel (ja WIFI -signaali piiril …), arvan, et ühenduse säilitamiseks kasutatav võimsus on tema maksimaalne…
  • Modem-unerežiimis langeb energiatarve 15 mA-ni. Kuid nagu näete andmelehelt, ei peatanud see modemit täielikult, kuna ESP "säilitab WiFi-ühenduse ilma andmeedastuseta".
  • Sügava une ajal langeb võimsus 20uA-ni.

Et olla kindel, et wifi ei jää asjatult aktiivseks, eelistasin selle keelata järgmiste käskudega. Pange tähele palju viivitatud () kõnet … Ilma nendeta ESP krahh:

WiFi.disconnect ();

viivitus (1000); WiFi -režiim (WIFI_OFF); viivitus (1000); WiFi.forceSleepBegin (); viivitus (1);

Üldiselt tundub, et pärast mitmepäevast töötamist see töötab ja eriti õigesti laaditakse:

  • see võimaldab mul iga tunni tagant käitada servomootorit, et paigutada maja päikese poole;
  • Samuti võin lubada igal tunnil võrguliidese uuesti aktiveerida, et saata Domoticzile aku laetuse tase.

Samm: magnetite ja pilliroo kontaktide paigaldamine

Magnetite ja pilliroo kontaktide paigaldamine
Magnetite ja pilliroo kontaktide paigaldamine
Magnetite ja pilliroo kontaktide paigaldamine
Magnetite ja pilliroo kontaktide paigaldamine
Magnetite ja pilliroo kontaktide paigaldamine
Magnetite ja pilliroo kontaktide paigaldamine

Nagu tavaliselt, kasutasin oma Proxxoni abil pilliroo kohta puutükis.

Pilliroo kontakti kinnitamiseks selle auku kasutasin natuke J-B keevisõmblust.

Paki ja väljundi jaoks väike tükk linti, natuke rauasaega ja eesmärk on saavutatud!

Minu kirjakasti eeliseks on see, et see on metallist, mis hõlbustab magnetite positsioneerimist nii, et see suhtleb korralikult pilliroo kontaktidega.

Samm: looge ühendus minu väikese majaga

Ühendage Minu väikese majaga
Ühendage Minu väikese majaga
Ühendage Minu väikese majaga
Ühendage Minu väikese majaga

Et oleks võimalik hõlpsasti ühendada ja lahti ühendada kaabel, mis läheb pilliroo kontaktidele postkastist majja, otsustasin kasutada Etherneti pistikut.

Võite kasutada seda mudelit või nagu mina, kasutada vana Arduino Etherneti kilpi, mis ripub mu sahtlites: ta ei kannatanud, ta oli sae ees vapper, tema surm oli kiire ^^

Vaid paar sõna selle Arduino Etherneti kilbi kohta: ärge oodake, et mul oleks 8 eraldi draiverit … Kaablid on kilbi sees paaritud kahega … See ajas mind liiga kauaks hulluks !!!

Samm: majas…

Majas …
Majas …
Majas …
Majas …

Piisavalt koht aku kinnitamiseks, servo ja RJ45 femal pistiku kinnitamiseks.

Samm: laske sellel pöördlaual…

Las see pöördlauas…
Las see pöördlauas…
Las see pöördlauas…
Las see pöördlauas…
Las see pöördlauas…
Las see pöördlauas…
Las see pöördlauas…
Las see pöördlauas…

Eesmärk on hoida seda päikese poole …

Pööratavuse võimaldamiseks kasutasin teljeks pikka kruvi koos mõne mutri ja kahe kuullaagriga …

Seni kasutasin SG90 servot (pöördemoment: 1,8 kg/cm 4,8 v juures).

Maja (ja selle paari grammi) pööramiseks piisab. Teisest küljest ei ole ma kindel, et selle plastist hammasrattad peavad pikka aega vastu minu piirkonna sagedastele tuuleiilidele.

Tellisin veel ühe (MG995 pöördemoment: 9,4kg/cm 4,8v juures), ka mitte väga kallis, aga metallist hammasratastega.

Kui ma selle kätte saan, on see järgmine asi: ma loodan oma ühendatud postkastile, et teavitada mind tema saabumisest!

8. samm: mõned testid

Image
Image

Paar märkust:

See visand on mõeldud ainult tundide muutuste jäljendamiseks päeva jooksul, et saaksin servo asendit kontrollida.

  • SG90 puhul: lisavajadusi pole, see võib töötada patareikontrollerist tuleva väljundpingega.
  • Kuid MG 995 puhul:

    • Pöörlemisnurk ei ole sama (laiem): selle vähendamiseks pidin kasutama lisafunktsiooni (Servo_Delta ()).
    • Vajad alalisvoolu/alalisvoolu kiirust, et pakkuda servole piisavalt pinget… jätkamiseks…

/*

- KATSETUS SG90 -ga: ei vaja täiendavaid vajadusi, see võib töötada patareikontrollerist tuleva väljundpingega. - MG 995 jaoks: - kasutage funktsiooni Servo_Delta ()… tuleb jätkata: */ #include bool Logs = true; Servo myservo; #define PIN_SERVO D2 // servoasend: 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 vana; 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]; indeks 7 && i = Arr_Servo_Pos [i-7]; index-) {if (Logid) Serial.println (indeks); if (Logs) Serial.print ("Korrigeeritud väärtus:"); if (Logid) Serial.println (Servo_Delta (indeks)); viivitus (200); //myservo.write(Servo_Delta(index)); myservo.write (indeks); } viivitus (15); myservo.write (Arr_Servo_Pos [i-7]); // kirjutage uuesti viimane väärtus, et vältida tõmblusi, kui datach myservo.detach (); }}} viivitus (2000); }} int Servo_Delta (int väärtus) {int Temp_val; Temp_val = (väärtus*0,80) +9; return Temp_val; }

Samm: väike maja

Väike maja
Väike maja
Väike maja
Väike maja
Väike maja
Väike maja

Nagu ma juba ütlesin, ei saanud ma ühtegi 3D -printerit. Nii et ma otsustan kasutada vana köögiviljakasti …

Võib -olla see ei kesta kaua, kuid selleks ajaks oleks mul aega kaaluda mõnda muud lahendust (või sõpra, kellel on 3D -printer): puidu kaitsmiseks lisasin kõikjale palju lakki…

Näete "ilusaid kardinaid" … Nii juhtub, kui palute oma naisel tööd teha ^^

10. samm: visand

Käimas … Aga tundub stabiilne

Töötan endiselt koodiga: kuna see pole lõplik versioon, on teie kommentaarid / nõuanded teretulnud;-)

Mõned tähelepanekud:

  • Koodis on palju viivitusi (): see aitab vältida Lolini palju krahhi, eriti käivitusvõrgu peatamise ajal …
  • Ma ei leidnud lihtsat ja usaldusväärset viisi päikese asimuudi saamiseks: sellepärast määrasin servoväärtuse kindlaks vastavalt sellele, mida ma täheldasin … Mul on hea (ja lihtne) viis selle saamiseks, olen huvitatud! Võib -olla rada, mida siin õppida, isegi kui ma eelistan veebipõhist API -d, annab mulle asimuudi otse kuupäeva, tunni ja geograafilise asukoha järgi …
  • Une tehnikast: kuna Lolin on 32-bitine Tensilica protsessor, on selle maksimaalne väärtus 32-bitise allkirjata täisarvu jaoks 4294967295… siis annab see umbes 71 minutit sügava une intervalli. Sellepärast teen magamise mitu korda umbes 60 minutit l'ESP -ga…

EDIT - 08.10.2018:

Avastasin, et servol on palju tõmblevaid liigutusi, eriti enne kinnitust (), irdumist () ja iga kord, kui Lolin ärkab sügavast unest ().

Natuke rohkem teabelehti uurides sain aru kahest asjast:

  • Lolini andmelehel on D4 väljund juba ühendatud BUILTIN_LEDiga …
  • ESP8266ex andmelehel saame teada, et D4 väljundit kasutatakse UART 1/U 1 TXD (universaalne asünkroonne vastuvõtja saatja). Samuti on täpsustatud, et seda UART1 kasutatakse logi printimiseks.

Neid andmeid lugedes mõistsin, et D4 väljund ei olnud hea mõte, eriti servomootori haldamiseks!

Niisiis, nüüd on servomootori juhtimiseks kasutatav väljund D2, allpool olevat koodi on vastavalt uuendatud.

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

Kuupäev: 08/Kuupäev mise en prod: 08/Versioon: 0.9.4 Versioon IDE Arduino: 1.8.6 Üleslaadimiskiirus: 921600 Tüüpiline valik "LOLIN (WEMOS) D1 R2 & mini" LOLIN (WEMOS) D1 R2 & mini (https://www.amazon.fr/gp/product/B01ELFAF1S/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1) Nööpnõelte funktsioon ESP-8266 Pin-kasutusala ------- -------------------------------------------------- ------------------------------------ TX TXD TXD RX RXD RXD A0 analoogsisend, max 3,3 V sisend 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 reljeve D6 IO, MISO GPIO12 Reed letre 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 (vala sügavale.sleep) ***************************************/ #include bool Logs = true; // wifi const char* ssid = "LOL"; const char* parool = "LOL"; IPAdd ip (192, 168, 000, 000); IPAddns dns (192, 168, 000, 000); IPAddressi lüüs (192, 168, 000, 000); Alamvõrk IPAddress (255, 255, 000, 000); WiFiClient klient; // Servo #include #define PIN_SERVO D2 Servo myservo; // servoasend: 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}; // Pilliroog #define PIN_SWITCH_OUT D5 bait Old_Switch_State_OUT; bait Switch_State_OUT; #define PIN_SWITCH_IN_PARCEL D6 bait Old_Switch_State_IN_PARCEL; bait Switch_State_IN_PARCEL; #define PIN_SWITCH_IN_LETTER D7 bait Old_Switch_State_IN_LETTER; bait Switch_State_IN_LETTER; allkirjata pikk lüliti PressTime; const allkirjastamata pikk DEBOUCE_TIME = 200; // Analoog #define PIN_ANALOG A0 // MQTT #include const char* MQTT_Server_IP = "Sinu MQTT aadress"; const int MQTT_Server_Port =; int IDX_Letter_Box =; int IDX_Parcel_Box =; int IDX_Letter_Box_Battery =; PubSubClient ClientMQTT (klient); sümbol MQTT_Message_Buff [70]; String MQTT_Pub_String; // Pinge ujuk vcc; // NTP #include time_t tnow; int Vana_aeg = 0; int Int_Heures = 0; int Int_Minutes = 0; int Int_Sleep_Duration = 63; void setup () {Serial.begin (115200); võrk (tõene); 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 (); võrk (vale); // NTP seatud tnow = aeg (nullptr); Int_Heures = String (ctime (& tnow)). Alamstring (11, 13). ToInt (); Int_Minutes = String (ctime (& tnow)). Alamstring (14, 16). ToInt (); // Maga sügavalt ööseks, kui (! ((Int_Heures> = 7) && (Int_Heures <= 20))) {Serial.print ("Sleep pour la nuit ("); Serial.print (Int_Sleep_Duration - Int_Minutes); Serial. println ("minutid")); uni (Int_Sleep_Duration - Int_Minutes); }} void loop () {// NTP seatud tnow = time (nullptr); Int_Heures = String (ctime (& tnow)). Alamstring (11, 13). ToInt (); Int_Minutes = String (ctime (& tnow)). Alamstring (14, 16). ToInt (); //Serial.println(String(ctime(&tnow))); //Serial.println ("Heure:" + String (ctime (& tnow)). Alamstring (11, 13)); //Serial.println (String (ctime (& tnow)). Alamstring (11, 13). ToInt ()); // Servohaldus 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]; indeks 7 && Int_Heures = Arr_Servo_Pos [Int_Heures-7]; index-) {if (Logid) Serial.println (indeks); viivitus (200); myservo.write (indeks); } viivitus (15); myservo.write (Arr_Servo_Pos [Int_Heures-7]); // kirjutage uuesti viimane väärtus, et vältida tõmblusi liigutuste eemaldamisel myservo.detach (); } võrk (tõene); SendBatteryLevel (); võrk (vale); }}} // Deepps kui laupäev pärast 13h if ((String (ctime (& tnow)). Alamstring (0, 3) == "Sat") && (Int_Heures> = 13)) {if (Logs) Serial.print ("Sleep pour le samedi aprés midi ("); if (Logs) Serial.print (Int_Sleep_Duration - Int_Minutes); if (Logs) Serial.println ("minutes)"); uni (Int_Sleep_Duration - Int_Minutes); } // Deepps if if pühapäev if (String (ctime (& tnow)). Alamstring (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)"); uni (Int_Sleep_Duration - Int_Minutes); } // Pilliroo haldamine 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 ("kuller asjakohane!"); võrk (tõene); viivitus (5000); MQTT_Pubilsh (IDX_Letter_Box, 0, "0"); viivitus (5000); MQTT_Pubilsh (IDX_Parcel_Box, 0, "0"); viivitus (5000); võrk (vale); }} 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 ("kuller saabub!"); võrk (tõene); viivitus (5000); MQTT_Pubilsh (IDX_Letter_Box, 1, "Kuller"); viivitus (5000); võrk (vale); }} 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é!"); võrk (tõene); viivitus (5000); MQTT_Pubilsh (IDX_Parcel_Box, 1, "Colis"); viivitus (5000); võrk (vale); }} Old_Switch_State_IN_PARCEL = Switch_State_IN_PARCEL; }} tühine SendBatteryLevel () {delay (5000); vcc = analogRead (PIN_ANALOG)/10,24; if (Logid) Serial.println ("\ tPinge on asjakohane:" + String (vcc, 0)); MQTT_Pubilsh (IDX_Letter_Box_Battery, 0, String (vcc, 0)); viivitus (5000); } tühi uni (int Min_Duration) {ESP.deepSleep (Min_Duration * 60e6); } tühine võrk (bool UpDown) {if (UpDown) {Serial.print ("Võrgu algus"); WiFi.forceSleepWake (); viivitus (1); // init WIFI WiFi.config (ip, dns, gateway, alamvõrk); WiFi.begin (ssid, parool); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Seeria.print ("."); } viivitus (5000); Serial.println ("."); Serial.print ("\ tühendatud - IP -aadress:"); Serial.println (WiFi.localIP ()); // init MQTT klientMQTT.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 ("Network stop."); WiFi.disconnect (); delay (1000); WiFi.mode (WIFI_OFF); delay (1000); WiFi.forceSleepBegin (); delay (1);}} void reconnect () {while (! ClientMQTT.connected ()) {Serial.print (" / tMQTT -ühenduse proovimine… "); // Ühendamise katse, kui (ClientMQTT.connect (" ESP8266ClientBAL ")) {Serial.println (" connected ");} else {Serial.print (" failed, rc = "); Serial.print (ClientMQTT.state ()); Serial.println ("proovige uuesti 5 sekundi pärast"); // Oodake 5 sekundit enne viivituse uuesti proovimist (5000);}}} void MQTT_Pubilsh (int Int_IDX, int N_Value, String S_Value) {if (! ClientMQTT.connected ()) reonnect (); vcc = analogRead (PIN_ANALOG) /10.24; Serial.println ("\ tSend info to MQTT …"); MQTT_Pub_String = "{" idx / ":" + string (Int_IDX) + ", \" Aku / ":" + String (vcc, 0) + ", \" nväärtus / ":" + N_väärtus + ", \" väärtus / ": \" " + S_Väärtus +" / "}"; MQTT_Pub_String.toCharArray (MQTT_Message_Buff, MQTT_Pub_String.length ()+1); ClientMQTT.publish ("domoticz/in", MQTT_Message_Buff); ClientMQTT.disconnect (); }

Samm 11: Domoticz

Domoticz
Domoticz
Domoticz
Domoticz
Domoticz
Domoticz

Domoticzis:

Üldiseks kasutamiseks:

  • Looge kaks "Dummy (ei tee midagi, kasutage virtuaalsete lülitite jaoks)":

    1. Esimene kirjade jaoks…
    2. Paki teine …
  • Igaühe jaoks isikupärastage teatisi;
  • Loomulikult peate oma Tegegrami märgi seadistama.

Valikuliselt:

Aku laetuse taseme jälgimiseks saate lisada utiliidi anduri.

Näpunäiteid: siit leiate palju tasuta kohandatud ikoone …

12. samm: järeldus

Järeldus
Järeldus
Järeldus
Järeldus

Loodetavasti aitab see juhendamine teid:

  • kas teha oma ühendatud kirjakast;
  • või lihtsalt anda teile ideid oma projektide jaoks!

Kui teil on ideid parandamiseks, kuulan!

PS: vabandan inglise keele pärast, Google'i tõlge aitab mind palju, kuid pole ilmselt täiuslik;-)

Soovitan: