Orodha ya maudhui:

Sanduku la Barua Iliyounganishwa Inatumiwa na Sola: Hatua 12 (na Picha)
Sanduku la Barua Iliyounganishwa Inatumiwa na Sola: Hatua 12 (na Picha)

Video: Sanduku la Barua Iliyounganishwa Inatumiwa na Sola: Hatua 12 (na Picha)

Video: Sanduku la Barua Iliyounganishwa Inatumiwa na Sola: Hatua 12 (na Picha)
Video: БОШ РАЗВАЛИЛСЯ! Как ПОЛНОСТЬЮ убрать люфт патрона? Переделка редуктора шуруповёрта! 2024, Julai
Anonim
Sanduku la Barua Iliyounganishwa Inaendeshwa na jua
Sanduku la Barua Iliyounganishwa Inaendeshwa na jua
Sanduku la Barua Iliyounganishwa Inaendeshwa na jua
Sanduku la Barua Iliyounganishwa Inaendeshwa na jua

Kwa Ible yangu wa pili, nitakuelezea kazi zangu kuhusu barua yangu iliyounganishwa.

Baada ya kusoma hii Inayoweza kufundishwa (+ nyingine nyingi), na kwa kuwa sanduku langu la barua haliko karibu na nyumba yangu, nilitaka kunitia msukumo wa kazi za Open Green Energy za kuunganisha sanduku langu la barua na seva yangu ya Domoticz.

Malengo

  • Kushauriwa na Telegram wakati barua zinakuja;
  • Kushauriwa na Telegram wakati kifungu kinakuja;
  • Angalia ikiwa barua / vifurushi vimechukuliwa.

Kikwazo changu kuu

Sanduku la barua liko mbali sana na nyumba, na haikuwezekana kuvuta kebo ya umeme ili kuwezesha chochote.

Ilinibidi kutafuta suluhisho lingine: nguvu ya jua ilikuwa suluhisho nzuri!

BOM

  • Raspberry Pi (kukaribisha sehemu za MQTT na Domoticz - haijatengwa hapa)
  • Akaunti ya Bot ya Telegram
  • Lolin D1 mini (au Wemos…)
  • Plug-In Screw Terminal Block Kiunganishi
  • Bodi ya kuchaji betri ya Lithium ya TP4056
  • Jopo la jua la 6V 2W Photovoltaic
  • Li-Ion 18650 betri
  • Mmiliki wa betri ya Li-Ion
  • PCB DIY Soldering Copper Prototype Printed Circuit Board
  • Analog Servo SG90
  • Mabadiliko 3 ya Mwanzi (moja kwa herufi, moja kwa kifurushi na moja ya malipo)
  • Sumaku
  • Baadhi ya waya
  • Kreti la mbao: Kwa kuwa sikupata printa yoyote ya 3D, niligundua nyumba yangu ndogo na kuni kupokea sehemu za elektroniki…
  • Spare Ethernet cable
  • Bodi ya kuzima kiunganishi cha RJ45 Ethernet

  • J-B Weld
  • Baadhi ya fani za mpira
  • Screws, karanga, washers

Hatua ya 1: Mpango wa Ulimwenguni

Mpango wa Ulimwenguni
Mpango wa Ulimwenguni
Mpango wa Ulimwenguni
Mpango wa Ulimwenguni

Michoro nzuri daima ni bora kuliko hotuba ndefu;-)

Lakini uchunguzi machache kuhusu MQTT, Domoticz na Telegram unakaribishwa kila wakati!

MQTT (Ujumbe wa Usafirishaji wa Telemetry ya Ujumbe), ni itifaki ya ujumbe, inayotumiwa kutuma datas kati ya vifaa na mifumo mingine ulimwenguni mwa IoT (Mtandao wa vitu).

Bila kuingia kwenye maelezo mengi, operesheni yake inategemea kanuni ya wateja wanaounganisha na seva. Katika MQTT, wateja huitwa Msajili au Mchapishaji, na seva inaitwa Broker.

Katika Agizo hili, mimi hutumia mchapishaji mmoja tu, Lolin imeunganishwa kwenye sanduku langu la barua: barua au kifungu kinapogunduliwa kupitia anwani za mwanzi zilizowekwa kwenye kisanduku cha barua (Hatua ya 1 kwa shematic), hutuma ujumbe wa MQTT juu ya WIFI kwa Broker (Hatua ya 2).

Sehemu ya Broker inafanywa na Mosquitto, ambayo imewekwa kwenye Raspberry Pi (Hatua ya 3).

Kuhusu Domoticz:

Kama ilivyoelezewa kwenye ukurasa wa chanzo, Domoticz ni "mfumo wa kiotomatiki wa nyumbani", unaokuruhusu kudhibiti vifaa anuwai na kupokea maoni kutoka kwa itifaki anuwai: MQTT ni moja wapo ya itifaki zinazoungwa mkono…

Mara tu habari inapomfikia (Hatua ya 4), unaweza kufafanua hafla: Katika kesi ya sanduku la barua, nilichagua kutuma arifa ya Telegram (Hatua ya 5).

Mwishowe, mteja wa Telegram amesanidiwa kwenye simu yangu (na mke wangu pia! - Hatua ya 6): lengo la mwisho linafikiwa…

Hatua ya 2: Shematic / Wiring

Shematic / Wiring
Shematic / Wiring
Shematic / Wiring
Shematic / Wiring
Shematic / Wiring
Shematic / Wiring
Shematic / Wiring
Shematic / Wiring

Neno moja kuhusu Analog ilisomeka:

Kwanza kabisa, niligundua baada ya tafiti kadhaa kwamba Lolin mini D1 (kama Wemos wa zamani), imejengwa kwa mgawanyiko wa voltage kwa pini A0 (ikizingatiwa 220KΩ kwa R1 na 100KΩ kwa R2 - tazama upande wa kulia wa data iliyounganishwa), ikiruhusu Volts 3.2 kama kiwango cha juu cha kuingiza voltage.

Kuzingatia kiwango cha juu cha pato kutoka kwa betri ni 4, 2v (imepunguzwa na bodi ya kuchaji), na kinadharia, unahitaji tu kuongeza mtoaji wa nje (kwa safu na R1) kuongeza kiwango cha juu cha pembejeo. Halafu, ikiwa utaongeza 100K mfululizo na R1, utapata matokeo haya:

Vin * R1 / (R1 + R2) = Kura

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

Katika mzunguko wangu, nilichagua kuweza kurekebisha thamani yake, ndiyo sababu nimependelea kutumia kontena linaloweza kubadilishwa katika mzunguko wangu: labda itakuwa haina maana kwako, lakini katika hali yangu, niliweka thamani yake kwa karibu 10KΩ kuwa thamani madhubuti katika Domoticz…

Kumbuka kuwa pini ya A0 ina azimio 10 kidogo: hii inamaanisha kuwa katika mchoro wako, usomaji wako wa Analog utarudisha thamani kati ya 0 hadi 1024.

Kama ninataka kutuma dhamana ya asilimia kwa Domoticz, lazima nigawe matokeo ya kusoma ya Analog na 10, 24.

Hatua ya 3: Usimamizi wa Nguvu

Usimamizi wa Nguvu
Usimamizi wa Nguvu
Usimamizi wa Nguvu
Usimamizi wa Nguvu

Kwa kweli, ninataka kisanduku cha barua kiwe huru. Ili kufikia lengo langu, ninatumia vitu hivi:

  • betri ya Li-Ion 18650 ya 4000mAh;
  • jopo la jua ambalo litaweza kutoa 6V / 2W;
  • bodi ya kuchaji Betri ya Lithium ya TP4056.

Ili kuchagua paneli inayofaa zaidi ya jua, niliangalia mifano kadhaa, pamoja na huu: katika mfano huu, paneli ya jua ya 5.5V / 0.66W hutumiwa, na labda inatosha kwa kusudi. Kwa upande wangu, na kama ESP8266 inapaswa kukaa ON wakati wa mchana na lazima iwe na uwezo wa kuendesha servo motor kuweka nyumba uso kwa jua, nilichagua modeli yenye nguvu zaidi ya jopo la jua (6V / 2W) - Pia inaniruhusu kutarajia vipindi vya majira ya baridi kali na siku za mawingu;-)

Pia, na ili kupunguza matumizi ya nishati kwa kiwango cha juu, nimechagua hali zifuatazo:

  • tukijua kwamba mtuma posta tu kati ya saa 7 asubuhi na 8 mchana, ESP imewekwa katika Kulala Kulala usiku wote;
  • Sababu haipiti kati ya Jumamosi adhuhuri na Jumatatu asubuhi: ESP pia imewekwa katika hali ya Kulala Sana wakati huu.
  • Kwa kipindi cha kati ya saa 7 asubuhi na saa 8 mchana, na ili kupunguza matumizi ya nguvu, mimi hulemaza tu kiolesura cha mtandao cha ESP: mtandao umeanza tena tu wakati wa kuwasili kwa kifurushi au barua, muda wa kutosha tu kutuma habari kwa Sihitaji kuonywa mara moja na sekunde chache za ziada zinazohitajika kuanzisha upya kiolesura cha mtandao sio hatari!

Thamani fulani juu ya matumizi katika njia tofauti ambazo ninatumia kwa Lolin - angalia data ya data, p18:

  • Katika hali ya kawaida (na RF inafanya kazi), matumizi ya nguvu yanaweza kuongezeka hadi 170mA! Kwa kuwa kisanduku changu cha barua kiko karibu mita 50 kutoka nyumbani kwangu (na kwa kikomo cha ishara ya WIFI…) nadhani nguvu inayotumiwa kudumisha unganisho iko kwa upeo wake…
  • Katika Modem-usingizi, matumizi ya nguvu hushuka hadi 15mA. Lakini kama unavyoona kwenye data, haikusimamisha kabisa modem, kwani ESP "inadumisha unganisho la Wi-Fi bila usafirishaji wa data".
  • Katika usingizi mzito, kushuka kwa nguvu hadi 20uA.

Ili kuwa na hakika kwamba wifi haibaki hai bila lazima, nilipendelea kuizima kwa amri zifuatazo. Kumbuka ucheleweshaji mwingi () simu… Bila yao, ajali ya ESP:

Kuondoa WiFi ();

kuchelewesha (1000); Njia ya WiFi (WIFI_OFF); kuchelewesha (1000); WiFi.forceSleepBegin (); kuchelewesha (1);

Kwa ujumla, baada ya siku kadhaa za operesheni, inaonekana inafanya kazi na haswa kupakia kwa usahihi:

  • hii inaniruhusu kuendesha servomotor kila saa kuweka nyumba kuelekea jua;
  • Ninaweza pia kujiruhusu kuanzisha tena kiolesura cha mtandao kila saa pia kutuma kwa Domoticz kiwango cha malipo ya betri.

Hatua ya 4: Kusanikisha Magneti na Anwani za Reed

Kusakinisha sumaku na Anwani za mwanzi
Kusakinisha sumaku na Anwani za mwanzi
Kusakinisha sumaku na Anwani za mwanzi
Kusakinisha sumaku na Anwani za mwanzi
Kusakinisha sumaku na Anwani za mwanzi
Kusakinisha sumaku na Anwani za mwanzi

Kama kawaida, nilitumia Proxxon yangu kutengeneza mahali pa Reed katika kipande cha kuni.

Ili kurekebisha mawasiliano ya mwanzi kwenye shimo lake, nilitumia kidogo weld J-B.

Kwa kifurushi na pato, kipande kidogo cha mkanda, hacksaw kidogo, na lengo linafikiwa!

Faida ya sanduku langu la barua ni kwamba ni chuma, ambayo inawezesha uwekaji wa sumaku ili iweze kuingiliana vizuri na mawasiliano ya mwanzi.

Hatua ya 5: Unganisha na Nyumba Yangu Kidogo

Unganisha na Nyumba Yangu Kidogo
Unganisha na Nyumba Yangu Kidogo
Unganisha na Nyumba Yangu Kidogo
Unganisha na Nyumba Yangu Kidogo

Ili kuweza kuunganisha kwa urahisi na kukata kebo inayokwenda kwa anwani za mwanzi kutoka kwenye kisanduku cha barua kwenda nyumbani, nilichagua kutumia kiunganishi cha Ethernet.

Unaweza kutumia mfano huu au, kama mimi, tumia ngao ya zamani ya Arduino Ethernet ambayo inaning'inia kwenye droo zangu: Hakuteseka, alikuwa jasiri mbele ya msumeno, kifo chake kilikuwa haraka ^ ^

Neno tu juu ya ngao hii ya Arduino Ethernet: usitarajie kuwa na madereva 8 tofauti… Cables zimeunganishwa na 2 ndani ya ngao… Ilinitia wazimu kwa muda mrefu sana !!!

Hatua ya 6: Katika Nyumba…

Nyumbani…
Nyumbani…
Nyumbani…
Nyumbani…

Mahali pa kutosha kurekebisha mmiliki wa betri, kuweka servo, na kiunganishi cha kike cha RJ45.

Hatua ya 7: Wacha iweze kubadilika…

Acha Igeuke…
Acha Igeuke…
Acha Igeuke…
Acha Igeuke…
Acha Igeuke…
Acha Igeuke…
Acha Igeuke…
Acha Igeuke…

Lengo ni kuiweka uso kwa jua…

Kuruhusu uwezo wa kugeuzwa, nilitumia screw ndefu kama axle, na karanga kadhaa na fani mbili za mpira…

Hadi sasa, nilikuwa nikitumia servo ya SG90 (torque: 1.8kg / cm saa 4.8v).

Kugeuza nyumba (na gramu zake chache) ni ya kutosha. Kwa upande mwingine, sina hakika kwamba gia zake za plastiki zinapinga kwa muda mrefu upepo wa mara kwa mara ambao upo katika mkoa wangu.

Niliamuru nyingine (torque ya MG995: 9.4kg / cm saa 4.8v), sio ghali sana pia, lakini na gia za chuma.

Itakuwa jambo la pili kufanya wakati nimepokea: Nategemea sanduku langu la barua lililounganishwa kuniarifu juu ya ujio wake!

Hatua ya 8: Majaribio mengine

Image
Image

Vidokezo vichache:

Mchoro huu ni kuiga tu mabadiliko ya masaa wakati wa mchana kuniruhusu kudhibiti msimamo wa servo.

  • Na SG90: hakuna mahitaji ya ziada, inaweza kufanya kazi na voltage OUT inayotoka kwa mdhibiti wa betri.
  • Lakini, pamoja na MG 995:

    • Pembe ya mzunguko sio sawa (pana): ilibidi nitumie kazi ya ziada kuipunguza (Servo_Delta ()).
    • Unahitaji DC / DC Panda juu ili kutoa voltage ya kutosha kwa servo… itaendelea…

/*

- JARIBU na SG90: hakuna mahitaji ya ziada, inaweza kufanya kazi na OUT voltage inayotoka kwa controler ya betri - KWA MG 995: - tumia kazi ya Servo_Delta ()… - Inahitaji DC / DC Hatua juu ili kutoa voltage ya kutosha kwa servo… kwa itaendelea: * / # pamoja na bool Logs = true; Servo myservo; #fafanua PIN_SERVO D2 // nafasi ya servo ya: 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 zamani; int pos; int i; kuanzisha batili () {Serial.begin (115200); } kitanzi batili () {for (i = 7; i <= 22; i ++) {old = i; ikiwa (i == 7) {ikiwa (Magogo) Serial.println ("Positionne le servo pour 7 Heure"); ambatisha myservo (PIN_SERVO); kwa (int index = Arr_Servo_Pos [(sizeof (Arr_Servo_Pos) / sizeof (Arr_Servo_Pos [0])) -1]; faharisi 7 && i = Arr_Servo_Pos [i-7]; index -) {if (Logs) Serial.println (index); ikiwa (Magogo) Serial.print ("Thamani iliyobadilishwa:"); ikiwa (Magogo) Serial.println (Servo_Delta (index)); kuchelewesha (200); //myservo.write (Servo_Delta (index)); kuandika. (index); } kuchelewa (15); kuandika. (Arr_Servo_Pos [i-7]); // andika tena thamani ya mwisho kuepusha harakati za kufifia wakati wa data myservo.detach (); }}} kuchelewa (2000); }} int Servo_Delta (thamani ya int) {int Temp_val; Temp_val = (thamani * 0.80) +9; kurudi Temp_val; }

Hatua ya 9: Nyumba Ndogo

Nyumba Ndogo
Nyumba Ndogo
Nyumba Ndogo
Nyumba Ndogo
Nyumba Ndogo
Nyumba Ndogo

Kama nilivyosema hapo awali, sikupata printa yoyote ya 3D. Kwa hivyo ninaamua kutumia kreti ya zamani ya mboga…

Labda haitadumu hali ya hewa ndefu, lakini wakati huo, ningekuwa na wakati wa kufikiria suluhisho lingine (au rafiki ambaye anamiliki printa ya 3D): kulinda kuni, niliongeza varnish nyingi kila mahali…

Unaweza kuona "pazia zuri"… Ndivyo inavyotokea unapouliza mke wako afanye kazi ^ ^

Hatua ya 10: Mchoro

Inaendelea… Lakini inaonekana kuwa thabiti

Bado ninafanya kazi kwa nambari: kwani hii sio toleo la uhakika, maoni yako / ushauri wako unakaribishwa;-)

Maneno mengine:

  • Ni ucheleweshaji mwingi () katika nambari: hii ni kuzuia ajali nyingi za Lolin, haswa wakati wa kusimamisha mtandao wa kuanzia…
  • Sikupata njia rahisi na ya kuaminika ya kupata azimuth ya jua: ndio sababu nilibadilisha thamani ya servo katika utendaji wa kile nilichoona… Nina njia nzuri (na rahisi) ya kuipata, ninavutiwa! Labda wimbo wa kusoma hapa, hata nikipenda API mkondoni hunipa azimuth moja kwa moja kulingana na tarehe, saa, na nafasi ya kijiografia…
  • Kuhusu mbinu ya kulala: kama Lolin ni Prosesa ya Tensilica ya 32-bit, thamani yake ya juu kwa nambari 32 isiyosainiwa ni 4294967295… basi, inatoa dakika max 71 kwa muda wa kulala. Hiyo ni kwa nini mimi kufanya kulala l'ESP mara nyingi kwa kama dakika 60…

BONYEZA - 2018-10-08:

Niligundua servo ina harakati nyingi za kufyatua, haswa kabla ya kiambatisho (), kujitenga () na kila wakati Lolin inapoamka kutoka kwaSleepSleep ().

Wakati nilikuwa nikisoma hati za data zaidi, niligundua vitu viwili:

  • Kwenye jarida la Lolin, pato la D4 tayari limeunganishwa na BUILTIN_LED…
  • Kwenye lahajedwali la ESP8266ex, tunajifunza pato la D4 linatumika kama UART 1 / U 1 TXD (Universal Asynchronous Receiver Transmitter). Imeainishwa pia kuwa UART1 hii hutumiwa kwa logi ya kuchapisha.

Kwa kusoma habari hizi, niligundua kuwa pato la D4 halikuwa wazo nzuri, haswa kusimamia motor servo!

Kwa hivyo, sasa pato linalotumiwa kudhibiti servomotor ni D2, nambari iliyo hapa chini imesasishwa ipasavyo.

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

Tarehe ya kuandikishwa: 08 / Tarehe mise en prod: 08 / Toleo: 0.9.4 Toleo IDE Arduino: 1.8.6 Kasi ya kupakia: 921600 Type de carte dans l'IDE: "LOLIN (WEMOS) D1 R2 & mini" Carte physique hireéee: LOLIN (WEMOS) D1 R2 & mini (https://www.amazon.fr/gp/product/B01ELFAF1S/ref=oh_aui_detailpage_o00_s00? -------------------------------------------------- -------------------------- A0 Mvutano d'alimentaion D0 IO GPIO16 Unganisha kwa RST (mimina kina. Kulala) D1 IO, SCL GPIO5 D2 IO, SDA GPIO4 Servo moteur D3 IO, 10k Vuta-up GPIO0 D4 IO, 10k kuvuta, BUILTIN_LED GPIO2 D5, 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 3.3V RST Rudisha RST Connecté à D0 (mimina le kina.kulala) *************************************** / # pamoja na bool Logs = true; // wifi const char * ssid = "LOL"; const char * nywila = "LOL"; Anwani ya IP (192, 168, 000, 000); Anwani za IPAddress (192, 168, 000, 000); Lango la IPAdress (192, 168, 000, 000); Subnet ya IPAdress (255, 255, 000, 000); Mteja wa Wateja wa WiFi; // Servo # pamoja na #fafanua PIN_SERVO D2 Servo myservo; // nafasi ya servo ya: 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 #fasili PIN_SWITCH_OUT D5 byte Old_Switch_State_OUT; byte Badilisha_State_OUT; #fafanua PIN_JIBU_YA_PARCEL D6 byte Old_Switch_State_IN_PARCEL; byte Badilisha_State_IN_PARCEL; #fafanua PIN_JIBU_IN_LETTER D7 byte Old_Switch_State_IN_LETTER; byte Badilisha_State_IN_LETTER; kubadili muda mrefuPressTime; const haijasainiwa kwa muda mrefu DEBOUCE_TIME = 200; // Analog #fafanua PIN_ANALOG A0 // MQTT # pamoja na const char * MQTT_Server_IP = "Anwani yako ya MQTT"; const int MQTT_Server_Port =; int IDX_Letter_Box =; int IDX_Parcel_Box =; Int IDX_Letter_Box_Battery =; Mteja wa PubSubMtejaMQTT (mteja); char MQTT_Message_Buff [70]; Kamba MQTT_Pub_String; // Kuelea kwa mvutano vcc; // NTP #jumlisha na wakati_wa sasa; int Old_Time = 0; int Int_Heures = 0; int_Miniti = 0; Int_Sleep_Duration = 63; kuanzisha batili () {Serial.begin (115200); mtandao (kweli); 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 = Soma dijitali (PIN_SWITCH_IN_LETTER); pinMode (PIN_SWITCH_IN_PARCEL, INPUT_PULLUP); Old_Switch_State_IN_PARCEL = Soma dijitali (PIN_SWITCH_IN_PARCEL); SendBatteryLevel (); mtandao (uwongo); // NTP kuweka tnow = wakati (nullptr); Int_Heures = Kamba (ctime (& tnow)). Substring (11, 13).toInt (); Int_Minutes = Kamba (ctime (& tnow)). Mstari (14, 16).toInt (); // Kulala usingizi kwa usiku ikiwa (! (((Int_Heures> = 7) && (Int_Heures <= 20))) {Serial.print ("Sleep pour la nuit ("); Serial.print (Int_Sleep_Duration - Int_Minutes); Serial. println ("dakika)"); kulala (Int_Sleep_Duration - Int_Minutes); }} kitanzi batili () {// NTP kuweka tnow = wakati (nullptr); Int_Heures = Kamba (ctime (& tnow)). Substring (11, 13).toInt (); Int_Minutes = Kamba (ctime (& tnow)). Mstari (14, 16).toInt (); //Serial.println(String (wakati (& sasa))); //Serial.println ("Heure:" + String (ctime (& tnow)). Substring (11, 13)); //Serial.println (Kamba (ctime (& tnow)). Substring (11, 13).toInt ()); // Usimamizi wa Servo ikiwa (Old_Time! = Int_Heures) {Old_Time = Int_Heures; ikiwa (Int_Heures == 7) {ikiwa (Magogo) Serial.println ("Positionne le servo pour 7 Heure"); ambatisha myservo (PIN_SERVO); kwa (int index = Arr_Servo_Pos [(sizeof (Arr_Servo_Pos) / sizeof (Arr_Servo_Pos [0])) -1]; faharisi 7 && Int_Heures = Arr_Servo_Pos [Int_Heures-7]; index -) {if (Logs) Serial.println (index); kuchelewesha (200); kuandika. (index); } kuchelewa (15); kuandika. (Arr_Servo_Pos [Int_Heures-7]) // andika tena dhamani ya mwisho ili kuepuka harakati za kupendeza wakati wa kutenganisha myservo.detach (); } mtandao (kweli); SendBatteryLevel (); mtandao (uwongo); }}} // Kulala kidogo ikiwa Jumamosi baada ya 13h ikiwa ((Kamba (ctime (& tnow)). Substring (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); ikiwa (Kumbukumbu) Serial.println ("dakika)"); kulala (Int_Sleep_Duration - Int_Minutes); } // Kulala kwa usingizi ikiwa siku ya Jumapili ikiwa (Kamba (ctime (& tnow)). Serial.print (Int_Sleep_Duration - Int_Minutes); ikiwa (Magogo) Serial.println ("dakika)"); kulala (Int_Sleep_Duration - Int_Minutes); } // Usimamizi wa Reed Switch_State_OUT = digitalRead (PIN_SWITCH_OUT); ikiwa (Switch_State_OUT! = Old_Switch_State_OUT) {if (millis () - switchPressTime> = DEBOUCE_TIME) {switchPressTime = millis (); ikiwa (Switch_State_OUT == JUU) {Serial.println ("mtoaji wa dhamana!"); mtandao (kweli); kuchelewesha (5000); MQTT_Pubilsh (IDX_Letter_Box, 0, "0"); kuchelewesha (5000); MQTT_Pubilsh (IDX_Parcel_Box, 0, "0"); kuchelewesha (5000); mtandao (uwongo); }} Old_Switch_State_OUT = Switch_State_OUT; } Switch_State_IN_LETTER = kusoma kwa dijiti (PIN_SWITCH_IN_LETTER); ikiwa (Switch_State_IN_LETTER! = Old_Switch_State_IN_LETTER) {if (millis () - switchPressTime> = DEBOUCE_TIME) {switchPressTime = millis (); ikiwa (Switch_State_IN_LETTER == JUU) {Serial.println ("arrivé arrivé!"); mtandao (kweli); kuchelewesha (5000); MQTT_Pubilsh (IDX_Letter_Box, 1, "Msaidizi"); kuchelewesha (5000); mtandao (uwongo); }} Old_Switch_State_IN_LETTER = Switch_State_IN_LETTER; } Switch_State_IN_PARCEL = kusoma kwa dijiti (PIN_SWITCH_IN_PARCEL); ikiwa (Switch_State_IN_PARCEL! = Old_Switch_State_IN_PARCEL) {if (millis () - switchPressTime> = DEBOUCE_TIME) {switchPressTime = millis (); ikiwa (Switch_State_IN_PARCEL == JUU) {Serial.println ("colis arrivé!"); mtandao (kweli); kuchelewesha (5000); MQTT_Pubilsh (IDX_Parcel_Box, 1, "Colis"); kuchelewesha (5000); mtandao (uwongo); }} Old_Switch_State_IN_PARCEL = Switch_State_IN_PARCEL; }} batili SendBatteryLevel () {kuchelewesha (5000); vcc = analogSoma (PIN_ANALOG) /10.24; ikiwa (Kumbukumbu) Serial.println ("\ tThis umuhimu wa mvutano:" + Kamba (vcc, 0)); MQTT_Pubilsh (IDX_Letter_Box_Battery, 0, Kamba (vcc, 0)); kuchelewesha (5000); } usingizi mtupu (int Min_Duration) {ESP.deepSleep (Min_Duration * 60e6); } mtandao batili (bool UpDown) {ikiwa (UpDown) {Serial.print ("Anza mtandao"); WiFi.forceSleepWake (); kuchelewesha (1); // init WIFI WiFi.config (ip, dns, lango, subnet); WiFi.anza (ssid, nywila); wakati (WiFi.status ()! = WL_CONNECTED) {kuchelewa (500); Printa ya serial ("."); } kuchelewa (5000); Serial.println ("."); Serial.print ("\ t Imeunganishwa - Anwani ya IP:"); Serial.println (WiFi.localIP ()); // init Mteja wa MQTTMQTT.setServer (MQTT_Server_IP, MQTT_Server_Port); // Init NTP Serial.print ("Wakati wa Synch.wakati (saa (0, 0, "fr.pool.ntp.org"); setenv ("TZ", "CET-1CEST, M3.5.0, M10.5.0 / 3", 0);) <= 100000) {Serial.print ("."); Kuchelewesha (100);} Serial.println (".");} Mwingine {Serial.println ("Stop network."); WiFi.disconnect (); kuchelewesha (1000); Njia ya WiFi (WIFI_OFF); kuchelewesha (1000); Kujaribu unganisho la MQTT… ");.print (ClientMQTT.state ()); Serial.println ("jaribu tena kwa sekunde 5"); // Subiri sekunde 5 kabla ya kujaribu kuchelewesha tena (5000);}}} tupu MQTT_Pubilsh (int Int_IDX, int N_Value, String S_Value) {if (! ClientMQTT.connected ()) unganisha tena (); vcc = analogRead (PIN_ANALOG) /10.24; Serial.println ("\ tTuma habari kwa MQTT…"); MQTT_Pub_String = "{" idx / ":" + String (Int_IDX) + ", \" Battery / ":" + Kamba (vcc, 0) + ", \" nambari / ":" + N_Value + ", \" svalue / ": \" "+ S_Vali +" / "}"; MQTT_Pub_String.toCharArray (MQTT_Message_Buff, MQTT_Pub_String.length () + 1); MtejaMQTT.chapisha ("domoticz / in", MQTT_Message_Buff); MtejaMQTT.disconnect (); }

Hatua ya 11: Domoticz

Domoticz
Domoticz
Domoticz
Domoticz
Domoticz
Domoticz

Katika Domoticz:

Kwa matumizi ya jumla:

  • Unda "Dummy" mbili (Haifanyi chochote, tumia kwa swichi halisi) ":

    1. Ya kwanza kwa herufi…
    2. Ya pili kwa kifurushi…
  • Kwa kila mmoja wao, badilisha arifa;
  • Kwa kweli, unahitaji kusanidi tokeni yako ya Tegegram.

Kwa hiari:

Unaweza kuongeza "sensa ya Utumiaji" kusimamia kiwango cha malipo ya betri yako.

Vidokezo: hapa unaweza kupata aikoni nyingi za kawaida …

Hatua ya 12: Hitimisho

Hitimisho
Hitimisho
Hitimisho
Hitimisho

Natumahi kuwa hii ya Agizo itakusaidia:

  • ikiwa utengeneze sanduku lako la barua lililounganishwa;
  • au tu kukupa maoni ya miradi yako!

Ikiwa una maoni ya maboresho, ninasikiliza!

PS: samahani kwa Kiingereza changu, tafsiri ya Google hunisaidia sana lakini labda sio kamili;-)

Ilipendekeza: