Съдържание:

Свързан Letterbox Solar Powered: 12 стъпки (със снимки)
Свързан Letterbox Solar Powered: 12 стъпки (със снимки)

Видео: Свързан Letterbox Solar Powered: 12 стъпки (със снимки)

Видео: Свързан Letterbox Solar Powered: 12 стъпки (със снимки)
Видео: «Чайка». Фильм Фонда борьбы с коррупцией. 2024, Ноември
Anonim
Свързан Letterbox Solar Powered
Свързан Letterbox Solar Powered
Свързан Letterbox Solar Powered
Свързан Letterbox Solar Powered

За втория си Ible ще ви опиша моите произведения за моята свързана пощенска кутия.

След като прочетох този Instructable (+ много други) и тъй като моята пощенска кутия не е близо до дома ми, исках да ме вдъхнови за творбите на Open Green Energy, за да свържа пощенската си кутия с моя сървър Domoticz.

Цели

  • Бъдете уведомени от Telegram, когато идват писма;
  • Бъдете уведомени от Telegram, когато пристига пратка;
  • Проверете дали писмата / колетите са взети.

Основното ми ограничение

Пощенската кутия е относително далеч от къщата и беше невъзможно да се изтегли електрически кабел до нея, за да се захранва всичко.

Трябваше да намеря друго решение: слънчевата енергия беше добро решение!

Спецификацията

  • Raspberry Pi (за домакин на MQTT и Domoticz части - не е описано тук)
  • Акаунт в Telegram Bot
  • Lolin D1 mini (или Wemos …)
  • Включващ се винтов конектор на клемния блок
  • Платка за зареждане на литиева батерия TP4056
  • 6V 2W фотоволтаичен слънчев панел
  • Li-Ion 18650 батерия
  • Поставка за литиево-йонна батерия
  • PCB DIY запояване меден прототип печатна платка
  • Аналогово серво SG90
  • 3 тръстикови превключватели (един за писма, един за колет и един за плащане)
  • Магнити
  • Някои проводници
  • Дървена щайга: Тъй като не получих нито един 3D принтер, осъзнах собствената си малка къща с дърво, за да получи части от електрониката …
  • Резервен Ethernet кабел
  • Пробивна платка за Ethernet конектор RJ45

  • J-B Weld
  • Някои сачмени лагери
  • Винтове, гайки, шайби

Стъпка 1: Глобална схема

Глобална схема
Глобална схема
Глобална схема
Глобална схема

Красивите рисунки винаги са по-добри от дългите речи;-)

Но няколко обяснения за MQTT, Domoticz и Telegram винаги са добре дошли!

MQTT (Message Queuing Telemetry Transport) е протокол за съобщения, използван за изпращане на данни между устройства и други системи в света на IoT (Интернет на нещата).

Без да навлизаме в твърде много подробности, работата му се основава на принципа на клиентите да се свързват със сървър. В MQTT клиентите се наричат абонат или издател, а сървърът се нарича брокер.

В тази инструкция използвам само един издател, Lolin, свързан към моята пощенска кутия: когато букви или колети се открият чрез тръстиковите контакти, инсталирани в пощенската кутия (Стъпка 1 в схематично), изпраща му MQTT съобщение през WIFI до брокера (Стъпка 2).

Частта на брокера се извършва от Mosquitto, който е инсталиран на Raspberry Pi (Стъпка 3).

За Domoticz:

Както е описано на страницата с източници, Domoticz е „система за домашна автоматизация“, която ви позволява да управлявате различни устройства и да получавате вход от различни протоколи: MQTT е един от поддържаните протоколи …

Веднага щом информацията достигне до него (Стъпка 4), можете да дефинирате събития: В случай на пощенската кутия, избрах да изпратя известие за Telegram (Стъпка 5).

И накрая, клиентът на Telegram е конфигуриран на моя телефон (и съпругата ми също! - Стъпка 6): крайната цел е постигната …

Стъпка 2: Схематично / окабеляване

Схематично / окабеляване
Схематично / окабеляване
Схематично / окабеляване
Схематично / окабеляване
Схематично / окабеляване
Схематично / окабеляване
Схематично / окабеляване
Схематично / окабеляване

Една дума за аналога чете:

На първо място, забелязах след някои изследвания, че Lolin mini D1 (като стария Wemos), има вграден делител на напрежение за щифт A0 (като се има предвид 220KΩ за R1 и 100KΩ за R2 - вижте вдясно на свързания лист с данни), което позволява 3,2 волта като максимално аналогово входно напрежение.

Като се има предвид, че максималното изходно напрежение на батерията е 4, 2v (ограничено от платката за зареждане) и теоретично трябва да добавите само външен резистор (последователно с R1), за да увеличите максималния диапазон на входното напрежение. След това, ако добавите 100K последователно с R1, ще получите този резултат:

Vin * R1/(R1+R2) = Vout

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

В моята схема избрах да мога да коригирам стойността му, затова предпочетох да използвам регулируем резистор във веригата си: може би това ще бъде безполезно за вас, но в моята ситуация зададох стойността му на около 10KΩ, за да има съгласувана стойност в Domoticz …

Обърнете внимание, че щифтът A0 има 10 -битова разделителна способност: това означава, че във вашата скица аналоговото отчитане ще върне стойност между 0 до 1024.

Тъй като искам да изпратя процентна стойност на Domoticz, трябва да разделя резултата от аналогово четене на 10, 24.

Стъпка 3: Управление на захранването

Управление на захранването
Управление на захранването
Управление на захранването
Управление на захранването

Разбира се, искам пощенската кутия да бъде автономна. За да постигна целта си, използвам следните елементи:

  • Li-Ion 18650 батерия от 4000mAh;
  • слънчев панел, който може да достави 6V / 2W;
  • платка за зареждане на литиева батерия TP4056.

За да избера най -подходящия слънчев панел, разгледах някои примери, включително този: в този пример се използва 5.5V / 0.66W слънчев панел и вероятно е достатъчен за целта. В моя случай и тъй като ESP8266 трябва да остане ВКЛЮЧЕН през деня и трябва да може да работи със серво мотор, за да държи къщата с лице към слънцето, аз избрах по -мощен модел слънчеви панели (6V / 2W) - Това също ми позволява за предвиждане на тъмни зимни периоди и облачни дни;-)

Също така и за да намаля максимално енергийните разходи, избрах следните сценарии:

  • знаейки, че пощальонът е минал само между 7 и 20 часа, ESP е поставен в DeepSleep през останалата част от нощта;
  • Факторът не преминава между събота по обяд и понеделник сутрин: ESP също е поставен в режим DeepSleep през този период.
  • За периода между 7 сутринта и 8 вечерта и за да намаля консумацията на енергия, просто деактивирам мрежовия интерфейс на ESP: мрежата се рестартира само при пристигането на пратка или писмо, достатъчно време за изпращане на информацията до Domoticz. Не трябва да бъда предупреден незабавно и няколкото допълнителни секунди, необходими за рестартиране на мрежовия интерфейс, не са вредни!

Някои стойности относно консумацията в различни режими, които използвам за Lolin - вижте листа с данни, p18:

  • В нормален режим (при работещ RF), консумацията на енергия може да се увеличи до 170mA! Тъй като моята пощенска кутия е на около 50 метра от моята къща (и на границата на WIFI сигнала …), предполагам, че използваната мощност за поддържане на връзката е максимална …
  • В режим Modem-sleep консумацията на енергия пада до 15mA. Но както можете да видите в листа с данни, той не спря напълно модема, тъй като ESP „поддържа Wi-Fi връзка без предаване на данни“.
  • При дълбок сън мощността пада до 20uA.

За да съм сигурен, че wifi не остава активен ненужно, предпочетох да го деактивирам със следните команди. Забележете многото call () повикване … Без тях ESP се срива:

WiFi.disconnect ();

забавяне (1000); WiFi.mode (WIFI_OFF); забавяне (1000); WiFi.forceSleepBegin (); забавяне (1);

Като цяло, след няколко дни работа, изглежда, че работи и особено да се зареди правилно:

  • това ми позволява да пускам сервомотора на всеки час, за да позиционирам къщата към слънцето;
  • Също така мога да си позволя да активирам отново мрежовия интерфейс на всеки час, за да изпратя на Domoticz нивото на зареждане на батерията.

Стъпка 4: Инсталиране на магнити и тръстикови контакти

Инсталиране на магнити и тръстикови контакти
Инсталиране на магнити и тръстикови контакти
Инсталиране на магнити и тръстикови контакти
Инсталиране на магнити и тръстикови контакти
Инсталиране на магнити и тръстикови контакти
Инсталиране на магнити и тръстикови контакти

Както обикновено, използвах моя Proxxon, за да оформя мястото на тръстиката в парче дърво.

За да фиксирам тръстиковия контакт в отвора му, използвах малко J-B заварка.

За пратката и продукцията, малко парче лента, малко ножовка и целта е постигната!

Предимството на моята пощенска кутия е, че е метална, което улеснява позиционирането на магнити, така че да взаимодейства правилно с тръстиковите контакти.

Стъпка 5: Свържете се с Моята малка къща

Свържете се с Моята малка къща
Свържете се с Моята малка къща
Свържете се с Моята малка къща
Свържете се с Моята малка къща

За да мога лесно да свързвам и изключвам кабела, който отива към тръстиковите контакти от пощенската кутия до къщата, избрах да използвам Ethernet конектор.

Можете да използвате този модел или също като мен да използвате стар Arduino Ethernet щит, който виси в чекмеджетата ми: Той не страдаше, беше смел пред триона, смъртта му беше бърза ^^

Само няколко думи за този Arduino Ethernet щит: не очаквайте да имате 8 отделни драйвера … Кабелите са сдвоени от 2 вътре в щита … Това ме побърка твърде дълго !!!

Стъпка 6: В къщата …

В къщата …
В къщата …
В къщата …
В къщата …

Просто достатъчно място за фиксиране на държача на батерията, настройка на серво и женския конектор RJ45.

Стъпка 7: Оставете го грамофон …

Нека се върти …
Нека се върти …
Нека се върти …
Нека се върти …
Нека се върти …
Нека се върти …
Нека се върти …
Нека се върти …

Целта е да го държите лице срещу слънцето …

За да позволя възможността да се върти, използвах дълъг винт като ос, с някои гайки и два сачмени лагера …

Досега използвах SG90 серво (въртящ момент: 1,8 кг/см при 4,8v).

За да обърнете къщата (и нейните няколко грама) е достатъчно. От друга страна, не съм сигурен, че пластмасовите й зъбни колела издържат дълго време на честите пориви на вятъра, които има в моя регион.

Поръчах друг (въртящ момент MG995: 9.4 кг/см при 4.8v), също не много скъп, но с метални зъбни колела.

След като го получа, това ще бъде следващото нещо: разчитам на свързаната си пощенска кутия, за да ме уведоми за пристигането си!

Стъпка 8: Някои тестове

Image
Image

Няколко бележки:

Тази скица е само за подражание на промените в часовете през деня, за да ми позволи да контролирам позицията на серво.

  • С SG90: няма допълнителни нужди, той може да работи с изходното напрежение, идващо от контролера на батерията.
  • Но с MG 995:

    • Общият ъгъл на завъртане не е същият (по -широк): трябваше да използвам допълнителна функция, за да го намаля (Servo_Delta ()).
    • Нуждаете се от DC/DC стъпка, за да осигурите достатъчно напрежение на серво … да продължи …

/*

- ТЕСТ с SG90: няма допълнителни нужди, той може да работи с изходното напрежение, идващо от контролера на батерията - ЗА MG 995: - използвайте Servo_Delta () функция … - Нуждаете се от DC/DC стъпка, за да осигурите достатъчно напрежение на серво … до ще бъде продължено: */ #include bool Logs = true; Servo myservo; #define PIN_SERVO D2 // позиция на серво за: 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 старо; 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]; индекс 7 && i = Arr_Servo_Pos [i-7]; индекс-) {if (Регистри) Serial.println (индекс); if (Регистрира) Serial.print ("Коригирана стойност:"); if (Регистри) Serial.println (Servo_Delta (индекс)); забавяне (200); //myservo.write(Servo_Delta(index)); myservo.write (индекс); } забавяне (15); myservo.write (Arr_Servo_Pos [i-7]); // записваме отново последната стойност, за да избегнем резки движения при datach myservo.detach (); }}} забавяне (2000); }} int Servo_Delta (int стойност) {int Temp_val; Temp_val = (стойност*0,80) +9; връщане Temp_val; }

Стъпка 9: Малката къща

Малката къща
Малката къща
Малката къща
Малката къща
Малката къща
Малката къща

Както казах по -рано, не получих 3D принтер. Затова решавам да използвам стара щайга за зеленчуци …

Може би няма да издържи дълго време, но дотогава щях да имам време да обмисля друго решение (или приятел, който притежава 3D принтер): за да защитя дървото, добавих много лак навсякъде …

Можете да видите "красивите завеси" … Това се случва, когато помолите жена си да свърши работата ^^

Стъпка 10: Скицата

В ход … Но изглежда стабилно

Все още работя върху кода: тъй като това не е окончателна версия, вашите коментари / съвети са добре дошли;-)

Някои забележки:

  • Те са много забавяния () в кода: това е за да се избегне много срив на Lolin, особено при спиране на стартираща мрежа …
  • Не намерих лесен и надежден начин за получаване на азимута на слънцето: затова фиксирах стойността на серво в зависимост от това, което наблюдавах … Имате добър (и прост) начин да го получите, интересувам се! Може би песен за изучаване тук, дори ако предпочитам онлайн API, ми дава азимута директно според датата, часа и географското положение …
  • Относно техниката на заспиване: тъй като Lolin е 32-битов процесор Tensilica, максималната му стойност за 32-битово беззначно цяло число е 4294967295 … тогава той дава около 71 минути за дълбокия интервал на сън. Ето защо карам да спим l'ESP много пъти за около 60 минути …

РЕДАКТИРАНЕ - 2018-10-08:

Открих, че сервото има много резки движения, особено преди attachment (), detach () и всеки път, когато Lolin се събужда от deepSleep ().

Докато изучавах малко повече технически листове, разбрах две неща:

  • В листа с данни Lolin изходът D4 вече е свързан с BUILTIN_LED …
  • В листа с данни ESP8266ex научаваме, че изходът D4 се използва като UART 1/U 1 TXD (универсален асинхронен приемник -предавател). Също така е посочено, че този UART1 се използва за отпечатване на дневник.

Четейки тази информация, разбрах, че изходът D4 не е добра идея, особено за управление на серво мотор!

Така че сега изходът, използван за управление на сервомотора, е D2, кодът по -долу е актуализиран съответно.

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

Създаване на дата: 08/Дата на промяна: 08/Версия: 0.9.4 Версия IDE Arduino: 1.8.6 Скорост на качване: 921600 Тип на картата в lIDE: "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) ПИН функция ESP-8266 ПИН използване на местоположението ------- -------------------------------------------------- ------------------------------------ TX TXD TXD RX RXD RXD A0 Аналогов вход, макс 3.3V вход A0 Изхранващо напрежение D0 IO GPIO16 Connecté à RST (налива дълбоко. Сън) D1 IO, SCL GPIO5 D2 IO, SDA GPIO4 Сервомотор D3 IO, 10k издърпващ GPIO0 D4 IO, 10k издърпване, 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 5V 5V-3V3 3.3V 3.3V RST Нулиране RST Connecté à D0 (лейте дълбоко.sleep) ****************************************/ #include bool Logs = true; // wifi const char* ssid = "LOL"; const char* password = "LOL"; IP Адрес ip (192, 168, 000, 000); IPAddress dns (192, 168, 000, 000); IPAddress шлюз (192, 168, 000, 000); Подмрежа IPAddress (255, 255, 000, 000); Клиент WiFiClient; // Servo #include #define PIN_SERVO D2 Servo myservo; // позиция на серво за: 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}; // Reed #define PIN_SWITCH_OUT D5 байт Old_Switch_State_OUT; байт Switch_State_OUT; #дефинирайте PIN_SWITCH_IN_PARCEL D6 байт Old_Switch_State_IN_PARCEL; байт Switch_State_IN_PARCEL; #дефинирайте PIN_SWITCH_IN_LETTER D7 байт Old_Switch_State_IN_LETTER; байт Switch_State_IN_LETTER; без подпис дълъг switchPressTime; const unsigned long DEBOUCE_TIME = 200; // Analog #define PIN_ANALOG A0 // MQTT #include const char* MQTT_Server_IP = "Вашият MQTT адрес"; const int MQTT_Server_Port =; int IDX_Letter_Box =; int IDX_Parcel_Box =; int IDX_Letter_Box_Battery =; PubSubClient ClientMQTT (клиент); char MQTT_Message_Buff [70]; Низ MQTT_Pub_String; // Напрежение поплавък 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); мрежа (вярно); 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 (); мрежа (невярно); // NTP набор tnow = време (nullptr); Int_Heures = Низ (ctime (& tnow)). Подниза (11, 13).toInt (); Int_Minutes = String (ctime (& tnow)). Подниза (14, 16).toInt (); // Заспиване през нощта, ако (! ((Int_Heures> = 7) && (Int_Heures <= 20))) {Serial.print ("Sleep pour la nuit ("); Serial.print (Int_Sleep_Duration - Int_Minutes); Serial. println ("минути)"); сън (Int_Sleep_Duration - Int_Minutes); }} void loop () {// NTP set tnow = time (nullptr); Int_Heures = Низ (ctime (& tnow)). Подниза (11, 13).toInt (); Int_Minutes = Низ (ctime (& tnow)). Подниза (14, 16).toInt (); //Serial.println(String(ctime(&tnow))); //Serial.println ("Heure:" + String (ctime (& tnow)). Подниза (11, 13)); //Serial.println (String (ctime (& tnow)). Подниза (11, 13).toInt ()); // Управление на серво, ако (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]; индекс 7 && Int_Heures = Arr_Servo_Pos [Int_Heures-7]; индекс); забавяне (200); myservo.write (индекс); } забавяне (15); myservo.write (Arr_Servo_Pos [Int_Heures-7]); // изписваме отново последната стойност, за да избегнем резки движения при отделяне myservo.detach (); } мрежа (вярно); SendBatteryLevel (); мрежа (невярно); }}} // Дълбоко заспиване, ако събота след 13 часа if ((String (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); if (Logs) Serial.println ("минути)"); сън (Int_Sleep_Duration - Int_Minutes); } // Дълбоко заспиване, ако неделя 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 ("минути)"); сън (Int_Sleep_Duration - Int_Minutes); } // Управление на тръстиката 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 ("съобщение на курьера!"); мрежа (вярно); забавяне (5000); MQTT_Pubilsh (IDX_Letter_Box, 0, "0"); забавяне (5000); MQTT_Pubilsh (IDX_Parcel_Box, 0, "0"); забавяне (5000); мрежа (невярно); }} 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 ("куриер пристига!"); мрежа (вярно); забавяне (5000); MQTT_Pubilsh (IDX_Letter_Box, 1, "Courrier"); забавяне (5000); мрежа (невярно); }} 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 пристига!"); мрежа (вярно); забавяне (5000); MQTT_Pubilsh (IDX_Parcel_Box, 1, "Colis"); забавяне (5000); мрежа (невярно); }} Old_Switch_State_IN_PARCEL = Switch_State_IN_PARCEL; }} void SendBatteryLevel () {забавяне (5000); vcc = analogRead (PIN_ANALOG) /10.24; if (Регистрира) Serial.println ("\ tTension relevée:" + String (vcc, 0)); MQTT_Pubilsh (IDX_Letter_Box_Battery, 0, String (vcc, 0)); забавяне (5000); } void sleep (int Min_Duration) {ESP.deepSleep (Min_Duration * 60e6); } void network (bool UpDown) {if (UpDown) {Serial.print ("Network start"); WiFi.forceSleepWake (); забавяне (1); // init WIFI WiFi.config (ip, dns, шлюз, подмрежа); WiFi.begin (ssid, парола); while (WiFi.status ()! = WL_CONNECTED) {забавяне (500); Serial.print ("."); } забавяне (5000); Serial.println ("."); Serial.print ("\ tConnected - IP адрес:"); 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 ("."); Забавяне (100);} Serial.println (".");} Else {Serial.println ("Мрежово спиране."); WiFi.disconnect (); забавяне (1000); WiFi.mode (WIFI_OFF); забавяне (1000); WiFi.forceSleepBegin (); забавяне (1);}} void reconnect () {while (! ClientMQTT.connected ()) {Serial.print (" / tОпитване за MQTT връзка … "); // Опит за свързване if (ClientMQTT.connect (" ESP8266ClientBAL ")) {Serial.println (" свързан ");} else {Serial.print (" неуспешно, rc = "); Serial.print (ClientMQTT.state ()); Serial.println ("опитайте отново след 5 секунди"); // Изчакайте 5 секунди, преди да опитате отново забавяне (5000);}}} void 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) + ", \" Батерия / ":" + Низ (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 (); }

Стъпка 11: Domoticz

Домотич
Домотич
Домотич
Домотич
Домотич
Домотич

В Domoticz:

За обща употреба:

  • Създайте две „Dummy (Не прави нищо, използвайте за виртуални превключватели)“:

    1. Първият за букви …
    2. Второто за пратка …
  • За всеки от тях персонализирайте известията;
  • Разбира се, трябва да настроите своя жетон Tegegram.

По желание:

Можете да добавите „Помощен сензор“, за да контролирате нивото на зареждане на батерията.

Съвети: тук можете да намерите много безплатни персонализирани икони …

Стъпка 12: Заключение

Заключение
Заключение
Заключение
Заключение

Надявам се, че тази инструкция ще ви помогне:

  • дали да направите своя собствена свързана пощенска кутия;
  • или просто да ви дам някои идеи за вашите проекти!

Ако имате идеи за подобрения, слушам!

PS: съжалявам за английския ми, преводът от Google ми помага много, но вероятно не е перфектен;-)

Препоръчано: