Прошивка для Sonoff Basic Relay с поддержкой ДУ
Vložit
- čas přidán 27. 08. 2024
- Альтернативная прошивка для реле Sonoff серии Basic получила возможность управлять реле с помощью пульта ДУ на 433 МГц или ИК. Никуда не делась поддержка датчика движения и погодных датчиков DS18x20 или DHTxx.
PIR, RF или IR подключаются к пину RX.
Код скетча: drive.google.c...
Ссылка на библиотеку IRremoteESP8266: github.com/mar...
Если у вас после прошивки модуль не работает, то в конфигурации платы в Arduino IDE измените Flash Мode на "DOUT" и прошейте модуль еще раз (спасибо за решение Сергею Тучкину).
PS: у кого прошивка вызывала перезагрузку модуля при входе в настройки расписания на версиях поддержки ESP8266 новее 2.4.1, перекачайте архив.
Прошивка просто отличная, огромное спасибо) удачи в дальнейших проектах
Отличная работа, молодец. Что касается модулей на 433МГц, то скорее всего интересней будет добавление передатчика на 433МГц, а не приемника. Для того, чтобы например управлять настенными выключателями sesoo или levolo. Отличное видео, удачи во всём.
И для этого, кстати, больше подойдёт Sonoff bridge. Это ихновый мост. Там два модуля 433МГц.
Спасибо за прошивку. Очень не хватает расширителя портов, в идеале с поддержкой диммера. Сама пользуюсь вашей прошивкой "умное реле5" уже полгода не единого сбоя не было :).Пыталась тут часы на главную страницу вытащить ничего не получилось правда, но это рюшечки ,как ни будь добью))). А вот пытаться добавить расширитель к вашим проектам( сонофф,реле5) даже пытаться не буду не мой уровень ((( ,вся надежа на вас !
Ну и присоединяюсь к просьбе Руслан Бег
;)
Пожалуй присоединюсь.
Спасибо огромное за ролик! Но все таки не могли бы вы объединить скетч Sonoff с ESP Relay 5++ (пульт 433МГц) или добавить количество реле сюда. Спасибо!
Спасибо! Прошивка нереально крутая. Возможности поражают. Подключил и IR приемник, и обычный выключатель света (с доработкой кода), и еще остался 14 пин для датчика, а потом можно и светодиод заменить на что-то еще. Особенно порадовала страница /update, о которой вроде бы не говорилось в видео, крайне удобно обновлять уже на месте установки ;)
Единственная проблема была с пультом самсунга, он посылал IR код со значением больше 2147483647, пришлось на приеме кода обрезать первую цифру, иначе преобразование string to uint32_t отрабатывало некорректно.
С большими кодами можно бороться приведением к знаковому целому (т.е. числа будут представлены отрицательными величинами). Но поправить придется в нескольких местах (в формировании JSON-пакета и в веб-интерфейсе).
Вот когда коды будут использовать больше 32-х бит - тогда придется мудрить... Библиотека IRremoteESP8266 уже давно перешла на 64-х битовые коды, учитывая, что кондиционеры имеют длинные посылки.
Думал над таким решением, когда не мог починить преобразование другими функциями (не смог найти адекватного способа преобразовать String в uint), но решил, что обрезать одну цифру в принимаемом коде вполне достаточно в моем случае, так как она одинаковая для всех кнопок пульта ;)
Большое спасибо за безкорыстный труд.
Спасибо, шикарная работа!
Все классно, спасибо! Хотелось бы увидеть вариант для управления домашне техникой по ИК! У меня кондиционер и робот-пылесос не дорогие. Хочу как то их включать дистанционно, чтоб пылесос работал когда никого дома, шумный слегка.
Реле Sonoff Basic на чипе8285 не имеет внешнего пина GPIO 14.На гребёнку выведен GPIO2 Нужно подпаиваться непосредственно к 9 ножке чипа. После подключения DHT11 показания влажности приблизительно раз в 4сек изменяются от 23% до 37-38% по циклу. Причём последние цифры явно ближе к натуральным ( сравниваю с показателями увлажнителя воздуха в комнате). В чём может быть проблема?
В логе есть DHT error? На 3.3 В именно этот DHT11 как себя ведет?
Спасибо за ролик! Не могли бы скрестить скетч Sonoff с ESP Relay 5+ (точнее возможность управлять с ДУ на 433МГц)? Заранее спасибо!
Добрый день. Большое спасибо за прошивку.
Не могу понять, что не так с настройками планировщика. Нужно, чтобы реле срабатывало ежедневно в определенное время. Но с настройками ниже и судя по Uptime, что-то не так.
В Time Setup показывает правильное Current date and time. В логах time update происходит стабильно каждый час. Вот пример: Current date and time: 21.11.2017 11:37:28
В шедулере вот так:
1 Every Mon, Tue, Wed, Thu, Fri, Sat, Sun at 18:38:00 22.11.2017 18:38:00 Relay off
2 Every Mon, Tue, Wed, Thu, Fri, Sat, Sun at 18:38:20 22.11.2017 18:38:20 Relay on
Почему Next time = 22.11.2017 18:38:00, а не 21.11.2017?
Вы давно скачивали этот скетч? Уже с месяц, наверное, ошибка в определении дня недели исправлена. Перекачайте архив.
Спасибо. Попробую перезалить скетч. Если кому интересно, с розеткой Sonoff S20 тоже работает, жаль только в ней нет GPIO14.
Спасибо за ваш труд!
Хочу использовать обычный выключатель (не возвратный) через контакт RX для включения функции "toggle". Но "toggle" будет активироваться при переходе с 0 на 1. Что нужно изменить в коде, чтобы "toggle" срабатывал и при 0-1 и при 1-0, т.е. при каждом щелчке выключателя?
Смотрите код для PIR-датчика. Он основан на прерывании по любому изменению состояния ноги RX. Его функцию прерывания pirISR и надо менять.
AIDE 1.8.5 +платформа 2.4.2 - компилит без ошибок. Если платформа 2.6.0, то Error в этой строке: customAutoOff = _max(0, httpServer->arg(F("autooff")).toInt());
Чтобы скомпилировалось, необходимо отредактировать следующим образом (приведение типа): customAutoOff = _max(0, (uint16_t)httpServer->arg(F("autooff")).toInt());
(кстати при компиляции с платформой 2.6.0 бинарник для прошивки программатором получается на 36 килобайт больше, чем при 2.4.2)
Встроил Sanoff в обычный сетевой фильтр.... и поэтому хотел на gpio 14 повесить обычный выключатель с фиксачцией(вывел его наружу фильтра). С помощью этого выключателя включать и выключать реле на 12 gpio (инвертно)
добавил в скетч это:
void setup()
{
pinMode(12, OUTPUT);
#ifndef NOSERIAL
Serial.begin(115200, SERIAL_8N1, SERIAL_TX_ONLY);
Serial.println();
#endif
void loop() {
if(digitalRead(14)==HIGH&&flag==0)
{
digitalWrite(12,!digitalRead(12)); //включаем светодиод
flag=1;
}
if(digitalRead(14)==LOW&&flag==1)
{
flag=0;
app->loop();
}
}
после заливки скетча...на вебморду так и не смог попасть...хотя при замыкании gpio 14 на землю релле включается и выключается. Подскажите пожалуйста как реализовать задуманное И еще при таком корявом варианте реле замкнуто сразу при включении санофа(а так не правильно...)
Прошил реле вашей прошивкой и связал его с умным домом majordomo, и наблюдаю непонятное поведение, а в частности, когда через mqtt брокер умного дома включаешь или выключаешь реле, ну там 1 или 0, лампа отрабатывает как надо, но через пару секунд значение в самом топике брокера изменяется автоматически, изменяется значение, но реле ясное дело не выключает лампу, зависит это от того что выбрано в меню "relay setup" - on boot, т.е. если off, то всегда будет изменяться на 0, если "on" то всегда будет изменяться на 1. Ну т.е. получается неприятная ситуация умный дом думает что лампа выключена, а она реально работает. Я вижу в логе сообщение "relay turned off with auto off after 0 sec. by web interface" я плохо понимаю как работает mqtt протокол, но такое впечатление что там вместе со значением на включение или выключение приходит таймер который через пару секунд изменяет показания в топике брокера согласно флажку в меню реле. Это можно как то отключить. А то допустим включаешь реле через умный дом, в топике 1, лампа загорается, пару секунд и сообщение меняется на 0, а лампа горит и умный дом думает что она реально выключена.
Или это не в прошивке дело? Хотя такое ощущение, что 100% в ней т.к. если в меню реле выбрать флажок на включение при первом запуска то тогда значение в топике брокера всегда автоматически изменяется на 1, т.е. через умный дом в топик отправляешь 0, лампа выключается, пару секунд и значение вдруг меняется на 1... но лампа при этом ясное дело не включилась.
PS простите если мутно написал, как говориться краткость сестра таланта, но это не про меня, сорри :)
То, что вы описываете, может быть только при управлении реле через веб-интерфейс. Через MQTT такие сообщения в лог не валятся. Вы уверены, что настроили Majordomo именно через MQTT, а не каким-нибудь костылем через web?
@@alexmorozov73 ---- czcams.com/video/qkNC2PW7qAQ/video.html
я на видео снял как там показания меняются... если время будет взгляните.
Возьмите "чистый" MQTT брокер и попробуйте управлять реле через клиент для компьютера или телефона. Если этой вакханалии не будет, то причина в неправильной настройке Majordomo. Еще раз говорю, сообщение в логе говорит о том, что оно прилетело по http ссылке, не по MQTT!
@@alexmorozov73 ок.
Доброго дня, добрался до этого видео и после просмотра всей серии про реле сонофф хотел бы уточнить, не планируется ли увеличить функционал "умного реле" на базе esp8266. Много полезных функций добавлено. Очень бы хорошо зашли эти изменения на 4-х реле. Пробовал сам немного поковырять, но не смог разобраться.
Планируется модернизировать фреймворк, но свободного времени нет совершенно, поэтому когда это будет сделано - не отвечу.
Алексей, добрый день, смотрел Ваш код и не понял как Вы реализовали включение реле по расписанию, например в 19:30 ? У Вас есть класс Schedule в котором есть функция check проверки условия наступления времени события. Правильно ли я понял что само наступление события Вы проверяете в цикле loop? Или же Вы используете таймер ?
Посмотрите ролик ESP Relay 5.0, в этой версии я добавил расписание и в самом ролике вроде бы объяснил, как это работает.
Прошивки для Sonoff выросли из тех же яслей.
Алексей, посоветуйте пожалуйста - какую плату выбрать в paltformio для sonoff. У разных плат platformio есть различия в параметрах upload и т.д. (легко менются), но что самое важное для разных плат подгружается разный h файл с настройками пинов, LED_BUILTIN и тд. Сами варианты лежат здесь:
C:\Users\\.platformio\packages\framework-arduinoespressif8266\variants
Но вот какой из них выбрать - я затрудняюсь.
Аналогичный вопрос про sonoff c 4 реле :)
Подскажите пожалуйста.
LED_BUILTIN и т.д. не используются прошивкой. Значит совпадать должен только размер и режим флеша.
Sonoff Basic обычно делают на ESP8285, его и нужно выбирать в этом случае (DOUT по умолчанию). Для старых плат подходит Generic ESP-01 1M. Что там в варианте с 4 реле - я не знаю. Подбирайте, при загрузке реальный размер флеша пишется, при неверном режиме флеша тоже ошибка самоочевидная в UART.
Подскажите где в скетче поправить частоту опроса датчиков климат контроля? Забирание спасибо за ответ.
Уменьшить интервал между опросами можно только для DHT21 или DHT22. Для DS и DHT11 он уже минимальный.
А так смотрите на строку 329.
И ещё вопрос по поводу радиоприёмника. У меня RXB12. Внешне похож на WL102-341. Через ардуинку работает, а вот на SONOFFe не алё. Совместимы ли они между собой?
Если от 3.3 В работает, значит должно работать и на реле.
После любой настройки обязательна перезагрузка.
Alex, с новым годом!
Сонофф проработал около месяца. Показывал температуру с датчиком 18В20 и включал реле с телефона. Но несколько раз возникала самопроизвольная перезагрузка. В последний раз перестал показывать температуру. Я, в вэб интерфейсе, на вкладке Climate Setup, выбрал Climate sensor - NONE, сохранился, перезагрузил модуль. После этого в вэб интерфейсе, на вкладке Climate Setup, выбрал Climate sensor - DS18х20 (восстановил так как было с самого начала), сохранился, перезагрузил модуль. И все опять заработало! Температуру стал показывать. Может быть Вы сталкивались с подобным? Чем можно увеличить надежность от таких сбоев?
Я уже говорил, что ESP8266 - это поделка. Так что никакой приемлемой надежности от этого куска сои ждать не приходится.
Если после перезагрузки сбились параметры - это странно, а если не сбились, то модуль достаточно было просто перезагрузить по-человечески.
ESP капризен к питанию, но в Sonoff вроде вполне приличный БП на 5 вольт и стаб на 3.3 AMS1117 тоже мощный.
Так что понятия не имею, как кроме помойки помочь конструкциям на ESP. :)
1. "Перезагрузить по-человечески" это как?
2. Если не ESP, то кто?
У меня работают больше двух месяцев два модуля Сонофф и две самоделки на ESP. Пока глюкнул только один Сонофф.
1. Выключить питание на 10 сек. и включить снова. Возможно было кратковременное пропадание напряжения, в этом случае модуль если и не повиснет при старте, то в любом случае глючить может.
2. Понятия не имею, в бюджетной сфере скорее всего никогда ничего путного не будет, а дорогая мне не интересна.
Спасибо!
Alex, а ардуино Мега надежнее чем ESP?
Отличная прошивка. Работает как часы. О таких возможностях даже и не подозревал. А есть возможность прикрутить её к MajorDomo? Если да, то подскажите где инструкцию найти?
По MQTT можно подключить и к Majordomo. В древнем ролике czcams.com/video/Ba0V2ROoGnY/video.html показывал, по аналогии можно добавить поддержку и этого скетча.
Спаибо!
А в ваших прошивках нет функции "перезагрузки по расписанию"? Понимаю, что можно, наверное, аппаратно прикрутить ресет на какой-нибудь пин. Но было бы удобней...
Алексей,заметил что скетч “Sonoff” экономичнее( раза в 4) в плане энергопотребления “умного реле 5” С чем это связано оптимизация кода или включены какие-то режимы сна?
Фреймворк в основе тот же, лишь чуть модернизированный, так что никакой принципиальной разницы быть не должно. Хотя опрос кнопки идет иначе, но едва ли это так может влиять...
Вы сравниваете разные скетчи на одинаковом железе? Версия поддержки ESP8266 в Arduino IDE одна и та же?
Да все на одном модуле, причем на "бутерброде" разницы нет а на остальных есть ток начинает прыгать секунд через 15 после загрузки от 0,06 до 0,01 ампер
Железо одинаковое,среда ардуина и бут тоже,заметил случайно по меньшему нагреву модуля.
Значит мистика. :)
НЕ мистика, факт:) прошил другой модуль,количество реле в "умного реле 5” сократил до одного тот-же эффект.Забыл добавить условие пониженного потребления работает если есп в режиме клиента и закрыт вэб интерфейс.
Скажите Relay Setup:boot ставлю в ON....но после переподключения электричества реле не включается, то есть в выключенном положении....то есть у меня разницы нет что ON Что OFF. Просто встроил реле в сетевой фильтр к которому подключен в том числе и холодильник, который после переподключения электричества соответственно сам не включиться,а это плохо для хранящихся в нем продуктов. Или я не понял как работает настройка Relay Setup?????
За столько времени никто эту ошибочку не заметил! :)
Перекачайте архив со скетчем.
Алексей спасибо вам! Подскажите, что поменять, чтоб вместо 1 и 0 по MQTT отправлялись и принимались команды TRUE и FALSE? Для домашнего брокера подходит и 1 и 0, а вот если юзать сторонний с кнопками (я решил остановиться на dioty.co) то там на переключателе во вкл состоянии идет TRUE, ну и FALSE в выключенном соответственно.
В .ino-файле поправить метод ESPWebMQTTRelay::publishRelay(), заменить
mqttPublish(topic, String(digitalRead(relayPin) == relayLevel));
на
mqttPublish(topic, digitalRead(relayPin) == relayLevel ? F("TRUE") : F("FALSE"));
и в методе ESPWebMQTTRelay::mqttCallback(char* topic, byte* payload, unsigned int length) изменить
if ((char)payload[0] == '0') {
if (relay)
switchRelay(false, false);
} else if ((char)payload[0] == '1') {
if (! relay)
switchRelay(true, false);
} else {
mqttPublish(String(topic), String(relay));
на
if (! strcmp_P((char*)payload, PSTR("FALSE"))) {
if (relay)
switchRelay(false, false);
} else if (! strcmp_P((char*)payload, PSTR("TRUE"))) {
if (! relay)
switchRelay(true, false);
} else {
mqttPublish(String(topic), relay ? F("TRUE") : F("FALSE"));
Спасибо за ответ, но видимо что-то не так(
После переключения кнопки он шлет сообщения брокеру постоянно.
Во-первых, брокер тут не причем. Брокер просто пересылает команды от публикатора к подписчикам.
А во-вторых, ну значит не FALSE и TRUE именно большими буквами ваша система управления требует или шлет в ответ не их, раз срабатывает ветка в mqttCallback получения неопознанного значения, по которой и возвращается текущий статус.
Установите на компьютер какой-нибудь клиент MQTT, подпишитесь на все топики реле и смотрите, что на самом деле передается и получается обратно.
буквы там как раз маленькие) я второй раз прошивал уже с нижним регистром - эффекта нет. сам сервис после регистрации создает пользователю корневой топик (/е-мейл пользователя/) и разрешает туда публиковать. Подключился MQTT-Lens к их брокеру подписался на все топики - видно что сонофф публикует в топик /е-мейл пользователя/Relay сообщения true и false. То же самое публикует переключатель в их родном приложении на телефоне которое подключено к их брокеру, но при нажатии кнопки сонофф не реагирует. при нажатии кнопки на сонофе в брокере непрерывно сыпятся сообщения с true или false соответственно. Отрубил сонофф - попробовал опубликовать сообщение с MQTT-Lens в топик /е-мейл пользователя/Relay с текстом true - в приложении тишина. Изменил топик в приложении на /е-мейл пользователя/1 и опубликовал true сообщение с MQTT-Lens - в приложении сработал переключатель. Как-то все очень странно
Сколько раз не пробовал уже даже с локальным брокером - не заработало с true и false. Уходит в цикл и ппц =( Хотя в MQTT-Lens и MQTT.fx одинаковые значения публикаций в топиках.
Еще проблема с подключением к вай-фай если сеть без пароля =(
Для сканирования нескольких датчиков DS1820 необходимо записать в setup() их адреса с тем чтобы в основном цикле использовать .select(addrArray) [0х55] с указанием конкретного адреса.
В вашей библиотеке адресный буфер объявлен protected и все последующие функции, как я понимаю, используют первый найденный датчик поскольку find() только при инициализации.
Кратко -варианты решения? Откорректировать функции под передачу массива адресов по ссылке?
И параллельно примитивный вопрос . В свой тестовый скетч скопировал два файла DS1820.cpp DS1820.h Дописал две функции в библиотеку, анализ типа питания датчика и текущую установку разрешения датчика для получения времени конверсии. Почему ваши функции подсвечены красным цветом а мои нет :)
Например,
bool DS1820::parasitePower() {
_ow->reset();
_ow->select(_addr);
_ow->write(0xB4);
if (_ow->read())
return(true); // внешнее
return(false); // паразитное
}
Спасибо.
В коде считывается одно значение с DS1820, так что менять все равно много что придется, включая веб-интерфейс. У меня на это ни времени ни желания нет.
@@alexmorozov73 Я не просил что то менять, а дать направление и пока совершенно конкретно - по библиотеке DS1820. По web интерфейсу вопрос даже не стал задавать, поскольку понятно что надо будет дописывать, пока вопрос был только по последующей идентификации датчика для климатконтроля, чтоы учесть это сейчас.
Код Ваш профессиональный, и у любого даже неплохо знакомого с программированием должны возникать вопросы чтобы внести изменения под свои нужды и просто по некоторым конструкциям. Иначе зачем вы тратите время на эти ролики? Это не готовая пром продукция, а своего рода конструктор DIY. Ну и в конце концов, уверен что и в Ваших проектах обязательно возникнет необходимость читать несколько датчиков. Ок, без всяких претензий. С наилучшими. Код действительно заслуживает похвалы
Можно ли изменить подключение радио модуля с GPIO3 на GPIO0? В начале программы"" const uint8_t remotePin = 3"" На "const uint8_t remotePin = 0" или ещё что то?
Кнопка на GPIO0 висит, ее код нужно удалить.
Не надо меня спрашивать как, хотите фигню - фигачьте сами.
@@alexmorozov73 не обижайтесь.) Вы же знаете, что легче написать свою прогу чем разлобраться в готовой. А Ваша ну почти всем устраивает. Только чуток подкорректировать. С кнопкой я разобрался только к вечеру. Пришлось буквально вызвонить все дорожки. С толку меня сбила Sonoff RF. Там с приёмника дорожка идёт на кнопку. Тем самым сигнал с приёмника иммитирует нажатие кнопки. А у вас естественно другой алгоритм. Буду разбираться дальше. Спасибо
Alex, подскажите пожалуйста, что нужно изменить в вашем коде что бы светодиод включался при включении реле и выключался при выключении.
Смотрите метод pulseLed
@@alexmorozov73 Да я смотрел.Вы там сделали цикл по плавному включению светодиода. Я пишу програмки во FlowCode. Понимать понимаю а как исправить в IDE не знаю
Я купил для Вашей прошивки DHT-22 , он вроде точный. Какую толерантность лучше выставить для более четкого срабатывания и исключения шелчков туды-суды?))
Пробуйте сами, у меня нет датчиков точнее градуса, так что понятия не имею как будет вести себя DHT22.
Alex Morozov понял, поэкпериментирую. Спасибо!
Alex, доброй ночи!
Не подскажите, при компиляции выскакивают желтые строки:
In file included from C:\Users\9FA5~1\AppData\Local\Temp\arduino_build_782951\sketch\Events.cpp:2:0:
C:\Users\9FA5~1\AppData\Local\Temp\arduino_build_782951\sketch\Events.h:12:24: warning: 'Events::event_t::type' is too small to hold all values of 'enum Events::eventtype_t' [enabled by default]
eventtype_t type : 3;
^
In file included from D:\Саша\Домашняя автоматика\Переделка Sonoff\Sonoff_Relay\Sonoff_Relay4 80\Sonoff_Relay4_80.ino\Sonoff_Relay4_80.ino.ino:3:0:
C:\Users\9FA5~1\AppData\Local\Temp\arduino_build_782951\sketch\Events.h:12:24: warning: 'Events::event_t::type' is too small to hold all values of 'enum Events::eventtype_t' [enabled by default]
eventtype_t type : 3;
^
D:\Саша\Домашняя автоматика\Переделка Sonoff\Sonoff_Relay\Sonoff_Relay4 80\Sonoff_Relay4_80.ino\Sonoff_Relay4_80.ino.ino:189:26: warning: 'ESPWebMQTTRelay::::::::pirTurn' is too small to hold all values of 'enum ESPWebMQTTRelay::turn_t' [enabled by default]
D:\Саша\Домашняя автоматика\Переделка Sonoff\Sonoff_Relay\Sonoff_Relay4 80\Sonoff_Relay4_80.ino\Sonoff_Relay4_80.ino.ino:186:29: warning: 'ESPWebMQTTRelay::::remoteSensor' is too small to hold all values of 'enum ESPWebMQTTRelay::remote_t' [enabled by default]
D:\Саша\Домашняя автоматика\Переделка Sonoff\Sonoff_Relay\Sonoff_Relay4 80\Sonoff_Relay4_80.ino\Sonoff_Relay4_80.ino.ino:216:33: warning: 'ESPWebMQTTRelay::::climateMinTempTurn' is too small to hold all values of 'enum ESPWebMQTTRelay::turn_t' [enabled by default]
D:\Саша\Домашняя автоматика\Переделка Sonoff\Sonoff_Relay\Sonoff_Relay4 80\Sonoff_Relay4_80.ino\Sonoff_Relay4_80.ino.ino:217:33: warning: 'ESPWebMQTTRelay::::climateMaxTempTurn' is too small to hold all values of 'enum ESPWebMQTTRelay::turn_t' [enabled by default]
D:\Саша\Домашняя автоматика\Переделка Sonoff\Sonoff_Relay\Sonoff_Relay4 80\Sonoff_Relay4_80.ino\Sonoff_Relay4_80.ino.ino:218:32: warning: 'ESPWebMQTTRelay::::climateMinHumTurn' is too small to hold all values of 'enum ESPWebMQTTRelay::turn_t' [enabled by default]
D:\Саша\Домашняя автоматика\Переделка Sonoff\Sonoff_Relay\Sonoff_Relay4 80\Sonoff_Relay4_80.ino\Sonoff_Relay4_80.ino.ino:219:32: warning: 'ESPWebMQTTRelay::::climateMaxHumTurn' is too small to hold all values of 'enum ESPWebMQTTRelay::turn_t' [enabled by default]
D:\Саша\Домашняя автоматика\Переделка Sonoff\Sonoff_Relay\Sonoff_Relay4 80\Sonoff_Relay4_80.ino\Sonoff_Relay4_80.ino.ino:224:30: warning: 'ESPWebMQTTRelay::::climateSensor' is too small to hold all values of 'enum ESPWebMQTTRelay::sensor_t' [enabled by default]
что это такое?
В предупреждении написано, что по мнению компиллятора перечислимые типы с приведением к одному байту не влезают в отводимые им в упакованных структурах биты. Но это не так.
@@alexmorozov73 Спасибо!
Выложите пожалуйста готовую прошивку формата *.img для заливки в sonoff, спасибо.
Эта прошивка заработает на SONOFF RF ? Огромное спасибо за видео!
Не так как вам нужно.
Подскажите совсем для чайника, какой файл из архива скейч или надо как то все файлы загружать?
Все файлы в архиве - скетч.
И совсем чайник сможет только убить реле, так что даже не пробуйте
К примеру у меня в домашней сети таких релюшек будет много на каждую айпи устройства не запомниш... Планируете ли Вы сделать сканер подсети с добавлением всех устройств в сети на главную страницу любого из устройств? То есть на главной странице устройства в подсети подтягиваются другие устройства в виде кнопки с ссылкой на главную станицу етих устройств.
Я ничего не планирую. Исходные коды есть, расширяйте функционал в любую нужную вам сторону.
Добрый день. Успешно пользуюсь данной прошивкой, спасибо автору. Но вот возник вопрос. Уже второй модуль умер после сброса, 10 сек держим кнопку, затем светодиод начинает быстро моргать, отпускаем кнопку и модуль не подает признаков жизни (светодиод не горит, wifi нет). При этом модуль успешно прошивается разными методами, но без результата. Возможна ли реанимация?
Вопрос снимается. Неправильно шил.
И еще вопрос). Можно как то совместить срабатывание реле по времени и по освещенности с датчиком движения интегрируя датчик освещенности. Например чтоб срабатывало реле от датчика движения в определенный промежуток времени или когда темно в помещении
Куда вы собираетесь подключать датчик освещенности?
А там можно сделать почти все что угодно. Но мне это неинтересно.
Можно откопать аналоговый пин А0 и повесить на него фоторезистор
В датчике движения HC-SR501 (как раз что у вас) под колпочком как правило имеется не распаянное место для фоторезистора...
Я понимаю что к донной прошивке это не каким боком не относиться. Сообщил просто для информации. ;)
Нашел глюк! а может так задумано :)
MQTT publish topic "/bathroom/Motion" with value "1"
23.03.2019 08:46:07 motion detected!
MQTT publish topic "/bathroom/Motion" with value "0"
23.03.2019 08:46:10 motion stopped
MQTT publish topic "/bathroom/Relay" with value "0"
MQTT message arrived [/bathroom/Relay] 0
По MQTT публикуется только выключение реле, но не публикуется включение реле.
PIR детектируется прерыванием, в котором реле срабатывает сразу, но вот сетевой код использовать чревато... Поэтому так и задумано, что сработка реле по движению не будет опубликована. Если вам это нужно, то в цикле обработки событий в loopExtra добавьте строку
publishRelay();
до или после строки
publishMotion(...)
Подскажите, а sonoff с данной прошивкой можно подключить к облаку CloudMQTT? Хочется управлять устройством не локально.
Народ к нему и подключает.
Спасибо, буду пробовать дальше(sonoff не может подключиться к серверу)
Имя пользователя и пароль указали? Имя сервера и порт правильные? После сохранения параметров перезагружались?
Перезагрузка помогла. Спасибо
И по IR не отвечает. Подключать на RX управление правильно я понимаю? Может что то не так с библиотеками?
После настройки перезагружали реле? В лог что пишет по поводу IR?
Здравствуйте Alex!
Только сейчас заметил, что в Хроме основная страничка отображается правильно. А в Internet Explorer-8 неправильно:
Sonoff Relay
MQTT broker: ?
Heap free size: 0 bytes
Uptime: ?
Signal strength: ? dBm
Torsher sec. to auto-off
Управление релюшкой из IE=8 не происходит. Причем все вкладки открываются нормально и внутри вкладок все отображается правильно. Это лечится?
Конечно лечится. Заменой старого Г ie8 на хотя бы чуть новее Г ie10+. По всем таблицам совместимости, ie только с 10 версии стал более-менее отвечать стандартам. На 11 версии точно все работает.
Ну или если религиозные убеждения не позволяют, то ищите в Инете, как заставить ie8 надежно работать с AJAX, а потом правьте код (уникальные url уже используются, этот метод можно не проверять).
Спасибо Alex! Понятно.
Поставил "Оперу" - все работает без проблем. В "Хроме" тоже проблем нет. Теперь IE мне вообще не нужен!
Здравствуйте Алекс Я купил такой sanoff уже с rf Запустил ewelink все работает и по wi fi и через иннет. Встречал в иннете много публикаций по алтернативным прошивкам Я еще пока слабо разбираюсь в этом и у меня вопрос для чего это все нужно ведь и с ewelink ом все работает. В чем приемущества ? И ще вопрос можно ли к моему sanoff rf на штатной прошивке на свободный gpio прикрутить датчик темпиратуры и влажности ? Заранее огромное спасибо
Попробуйте прикрутить к штатной прошивке какой-нибудь датчик, ИК пульт или поддержку MQTT и уйти от китайских облаков - поймете зачем нужны альтернативные прошивки.
День добрый! Можно сделать что бы реле отправляло Сигнал. Приходит по Mqtt включение и реле отправляет сигнал по 433 сигнал?? Спасибо
в конкретно моем реле sonoff basic нет модуля на 433 mHz, он работает только через wifi. Его можно подружить с модулем syn115 и даже есть уже заводские с ним на плате, но это приемник на 433 mHz, он только принимает сигнал, отправлять не может, допустим чтобы с пульта включить реле, в прошивке от Морозова уже есть встроенная поддержка этого модуля, если мне память не изменяет. Для передачи сигнала на устройство по 433 от mqtt нужен Sonoff RF bridge и еще его необходимо перепрошить Tasmoto, в стандартной прошивке нет поддержки mqtt. Вроде там эта функция реализованна нужно мануал к Tasmoto читать, я лично не пробовал. Шлюз уже использую но только на прием от rf устройств по 433 и передачи сигнала на брокер mqtt. Так работает очень хорошо. Просто не на чем попробовать штобы от mqtt через шлюз что нибудь по 433 включить, нет у меня пока такого в хозяйстве, но в само шлюзе возможность по моему есть, ретранслятор там на 433 стоит, точно не помню, надо мануал читать.
Здравия желаю! Подключил датчик DHT22, данный выводит в интерфейс, автоматика работает, но в логе
DHTx humidity read error!
DHTx temperature read error!
и т.д.
В чём может быть причина?
С ESP8266 и ESP32 библиотеки датчиков семейства DHT работают не очень стабильно из-за вынужденного запрета прерываний для чтения, но ошибки редки, так что ничего страшного.
Есть под новую версию R3 (ESP8285)
У меня нет новой версии реле, поэтому не знаю что в ней и на каких GPIO.
вместо GPIO14, в R3 можно подпаиваться к GPIO9, GPIO10 или GPIO16. Т.о. достаточно отредактировать 1 строчку в исходниках: const uint8_t climatePin = 14; (если Вы используете датчики температуры/влажности)
Не знаю какой релиз SONOFF RF, о точно что на ESP8285 : отредактировать 1 строчку в исходниках: const uint8_t climatePin = 2;
Т.е. датчики успешно вешаются на GPIO2
Ну и таки да, прошивку собирать под ESP8285 :)
Появился не значительный вопрос где в коде скетча поменять значения что бы диод моргал наоборот, в выключенном состоянии чуть чуть, а во включённом почти до полного затухания?
Правьте в ino-файле реализацию метода pulseLed().
Огромное спасибо,все получилось. Еще один вопрос если можно обновлял по вашему ролику, ESP8266 обновление bootloader'а, платы nodmcu esp8266 все получалось, а вот когда попробовал обновить sonoff обновить возможно получилось не знаю , а вот вывести информацию по скетчу выложенному там же под роликом не удалось, помогите если есть возможность, заранее благодарен. (программер из меня ни какой )
Отличие Sonoff от полных ESP в том числе том, что у нее нет кнопки reset, чтобы перезапустить скетч. Поэтому надо просто в скетче после Serial.begin() вставить строку
delay(5000);
Это вызовет паузу на 5 секунд, которой хватит для подключения сериал-монитора.
Но тут есть другой момент: мой ролик про обновление бутлоадера старый, тогда ESP8266 для Arduino IDE соответствовал SDK 1.5.3, а сейчас это 2.1, который надо скачать с Espressif и зашить именно его. Но в ролике показано как да что, все по аналогии, кроме только самой версии архива.
Alex Morozov Спасибо попробую. Уже появилась 2.2.0
Но даже 2.5.0-dev еще на SDK 2.1, так что пока рано.
Alex, доброй ночи!
Подключил DHT11. Температуру и влажность показывает. Но в логах регулярно выскакивают сообщения: "DHTx temperature read error!" и "DHTx humidity read error!" Вы с таким не сталкивались?
DHT не любят питание от 3.3 В, поэтому через раз передают показания. У меня так же. Можно в коде закомментировать сообщение об ошибке, чтобы лог не забивать.
@@alexmorozov73 18B20 работает четко. DHT21 глючит 50/50. DHT11 больше глючит чем работает. Но в описаниях на DHT21 и DHT11 написано, что питание от 3 вольт? Херня какая-то получается?!
Если на DHT21 подать питание 5 В, а по информационному выводу ESP включить резисторы согласования уровней?
@@alexmorozov73 DHT11 с ардуино нано работает без сбоев. С ESP12F больше глючит чем работает. DHT21 ведет себя примерно также. Но существует Sonoff th16 в комплекте с которым идет датчик DHT21. Не знаете как надежно работает Sonoff th16 совместно с DHT21?
У меня нет продвинутых реле Sonoff за ненадобностью. И потом, их прошивка скорее всего создана на чистом SDK, так что аналогия тут неуместна.
Проблема с DHT на ESP8266 в библиотеке, получается. Так что ищите отличную от Adafruit библиотеку, которая при чтении с датчика каждые 2 секунды не будет спотыкаться.
@@alexmorozov73 Alex, доброй ночи!
Если я попробую просто поменять библиотеку, то в скетче нужно будет, что-то менять?
Поменять библиотеку наверное смогу, а вот переделывать заклинания в скетче не сумею.
Здравствуйте! Скажите пожалуйста ,нужно ли менять код в скетче, если в модуле sonoff - ESP8285?
ESP8285 = ESP8266 + 1 MB Flash in DOUT mode
Выбирайте правильный объем и режим флеша, сам код менять не нужно
Спасибо! Модуль прошил первой версией. Использую Arduino IDE 1.8.11.
Но почему - то четвертая версия не идет.
Попробуйте откатить в AIDE ESP8266 до версии 2.4.2, писалось все это на момент той версии.
Откат версии esp8266 до 2.4.2 - помог. Прошил модуль четвертой версией.Большое спасибо Вам!
Терпеть не могу ИК пульты с кодами NEC - в доме куча разных пультов NEC и у многих коды клавиш совпадают. Прям как специально делали что бы в одной комнате была только одна единица техники и пульт NEC. :(
Никто не заставляет использовать именно NEC, библиотека распознает кучу стандартов пультов. :)
Единственное что, я упростил код для единообразия с RF и не сравниваю протокол распознанной кнопки, только код. Но это можно доработать, если будут пересечения кодов в разных протоколах.
Alex Morozov с ардуино "не заставляет", а что делать с др. техникой в одной и той же комнате? Начинаешь управлять одной и др. тоже управляется. :(
Мировой Заговор... :) Причем судя по всему японский "мировой". :)
Спасибо за ответ, я все таки попробую. Очень нужно, помогите!
У меня проблема с обновлением по воздуху! Захожу на страничку update выбираю скомпилированный файл и нажимаю Upload через какое-то время пишит страничка недоступна. Захожу по ново и вижу старую прошивку.
Устройство собрано на ESP-01
Раскурочивать устройство для прошивки совсем некамельфо! Может есть какое-то решение?
Скетч еле-еле влезает в 512К ESP-01, какое еще OTA! Для OTA флеша должно быть в два раза больше скетча + резерв для SPIFFS.
Флешка метровая. При прошивке выбирал Generic ESP8266, QIO, 1M (256K SPIFFS)
Еще раз говорю, на стандартной ESP-01 4 Мбит (512 Кбайт) флеша (погуглите надписи на микросхеме флеш-памяти со своего модуля)! И связь с флешом может быть не QIO, а DIO на многих модулях. Так что еще не все потеряно...
Ребята доброго времени суток. Подскажите пожалуйста новичку, при компиляции скетча вот такая ошибка получается .. In file included from C:\Users\Aleksandr\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.cpp:22:0:
C:\Users\Aleksandr\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory
#include
Я понимаю что, что то не то наверное с библиотекой для датчиков DHT. но решить проблему не могу уже и библиотеку скачал но все так же ((( второй вечер вокруг да около хожу....
Или доустановите библиотеку "Adafruit Unified Sensor" или удалите файлы DHT_U.* по пути в тексте ошибки.
Огромное спасибо Алексей. Доустановил библиотеку все скомпилировалось удачно. Буду пробовать заливать в сонофф ))) первый самый скетч с датчиком ds18b20 отлично работает уже почти месяц без перезагрузок и лагов. Спасибо вам огромное за вашу работу и помощь.
На здоровье!
А можно все это заливать в Nodemcu esp8266 v3 ?
Можно в любую ESP8266/8285, только реле, кнопку и светодиод нужно на те же пины сажать, что и у Sonoff или код чуть подправить.
Не работает управление реле через MQTT, посылаю в топик /SONOFF_TH12_1/Relay/set 0 или 1, релюшка не работает, с кнопки, WEB интерфейса и Андрод приложения срабатывет. Беда прям.
А с чего вы взяли такое имя топика? Посмотрите в логах или в брокере, какое имя публикуется при изменении состояния реле. Его и надо использовать.
Разобрался, топик для записи и чтения один, в брокере было включено разные. Спасибо, заработало.
А у кого нибудь есть опыт привязки реле Sonoff с этим скетчем к domoticz?
Я привязал к домотиксу, немного изменил скетч ESP_Relay, и теперь есть возможность выбирать формат MQTT, который отправляется в сторону домотикса с датчиков. Обычный MQTT или домотикс MQTT. Ну и по мелочи можно менять время повторной публикаци, индекс устройства. Отображается уровень WIFI
После прошивки не могу подсоединиться с wifi.
Поменял в скетче пароль, свой поставил- не подключается.
Оставил первоначальный(P@$$w0rd)- тоже ни в какую не хочет.
На предыдущих прошивках проблем не было.
Помогите! В чем может быть проблема?
Т.е. новая точка доступа видна, но не подключается? Версия ESP8266 для Arduino IDE какая?
Реле это же уже шилось другими прошивками или оно новое?
Если новое, то нужно шить старый бутлоадер от SDK 1.5.3, он скорее всего в реле новее. Или наоборот обновить ESP8266 до 2.4.1 и шить бутлоадер от SDK 2.1.
Если же это реле работало на предыдущих прошивках - то это мистика, потому что касательно WiFi никаких изменений в коде нет.
В сериал-интерфейс при старте должна быть выведена инфа об имени ТД и пароле к ней.
Вы в .ino файл в самое начало смотреть не пробовали? Там два закоментированных дефайна, раскомментируйте их и впишите свои значения.
Но если в реле уже были старые параметры, то часть из них прочитается, особенно часть касающаяся как раз сети. В таком случае надо чистить EEPROM долгим нажатием на кнопку.
Все-таки попробуйте перешить бутлоадер, народ от многих разных проблем избавлялся.
Версия должна соответствовать используемому SDK. Раз вы используете 2.3.0, то для нее надо использовать бут и параметры вайфай из SDK 1.5.3. Для новых версий пакетов SDK должны быть новее.
Выскакивает ошибка : 'DHT11' was not declared in this scope
Установите библиотеки Adafruit DHT Sensor Library и Adafruit Unified Sensor Library.
О необходимых для компилляции библиотеках было написано под первым роликом серии прошивок для Sonoff.
@@alexmorozov73 Установлены обе библиотеки. Не могли бы выложить bin файл?
@@shival47 drive.google.com/open?id=1FBDYV-nZF__L4jzAljuzanA-aczk2QZc
Только сначала стоит обновить бутлоадер от SDK 2.2, иначе вай-фай может дурить.
@@alexmorozov73 Спасибо
Привет. А нет случайно этой прошивки в формате bin (флэшка уменя 4 мегабайта)? Через Arduino IDE не могу скомпилировать почему-то
Собрано на PIO под версию Arduino ESP8266 2.4.2 для ESP-01_1M в режиме флеша DOUT
drive.google.com/open?id=1I2bwwwASF4NL4z-5fbqt2KuUqrDRXUQi
@@alexmorozov73 Завелось на NodeMCU, спасибо огромное, буду разбираться. Лайк и подписка. Прошу разрешения выложить на 4pda, может кому пригодиться.
Вообще-то этот скетч для именно Sonoff Basic, у него фиксированы и светодиод и кнопка и пин с реле.
Для любых ESP8266 есть более старый скетч, зато многоканальный. В ролике о добавлении LDR в умное реле его последняя ревизия, на базе которой и сделаны скетчи для Sonoff.
@@alexmorozov73 Я все же прикручу к ноде кнопку, реле и светодиод.
@@alexmorozov73 Все полноценно заколосилось на NodeMCU: реле, кнопка, RF и 18b20. Сюда бы еще пару-тройку каналов реле ... Работу MQTT не проверял, но уверен, что будет работать. Еще раз спасибо за проделанную работу
Alex доброго времени суток. В комментариях вижу ребята шьются без проблем. У меня (Arduino IDE 1.8.6 ttl converter CH340G) при сомпиляции выдает кучу ошибок:
C:\Users\User\Desktop\SOn-Of\5\Sonoff_Relay\Sonoff_Relay\Sonoff_Relay.ino: In function 'void setup()':
Sonoff_Relay:1627:6: error: 'virtual void ESPWebMQTTRelay::setup()' is protected
void setup() {
^
Sonoff_Relay:1633:14: error: within this context
app->setup();
^
C:\Users\User\Desktop\SOn-Of\5\Sonoff_Relay\Sonoff_Relay\Sonoff_Relay.ino: In function 'void loop()':
Sonoff_Relay:1636:6: error: 'virtual void ESPWebMQTTRelay::loop()' is protected
void loop() {
^
Sonoff_Relay:1637:13: error: within this context
app->loop();
^
Несколько библиотек найдено для "OneWire.h"
Используется: C:\Users\User\Documents\Arduino\libraries\OneWire
Не используется: C:\Users\User\Documents\Arduino\libraries\OneWire-master
exit status 1
'virtual void ESPWebMQTTRelay::setup()' is protected
Думаю ты уже догадался о уровне моих знаний, я один из тех кого ты назвал особо одаренными, хотя библиотеку найти и установить я смогу. Может быть мне можно еще помочь? Но если и нет, я пойму. Буду благодарен за любой ответ.
Есть три пути.
Самый простой: откат AIDE на версию 1.8.5, под которой последней компиллируются классы, содержащие методы, совпадающие по имени с setup и loop.
Второй: установить PlatformIO и взять проект для него, там правильный код компиллируется всегда, но своих заморочек хватает, конечно.
И третий, вытекающий из первого, но он для тех, кто понимает: заменить имена методов setup и loop во всех классах на что-то другое, например на _setup и _loop. Тогда соберется и под последними версиями AIDE.
@@alexmorozov73 Спасибо! Буду пробовать.
А как сделать, чтобы модулю присваивался определенный IP адрес в режиме клиента?
В файле ESPWeb в метод setupWiFiAsStation перед вызовом WiFi.connect вставить WiFi.config() с адресом, шлюзом и маской.
Спасибо за оперативный ответ!
Файлов "ESPWeb" в скетче 5 штук. Строка с текстом "setupWiFiAsStation" существует в двух файлах, в "ESPWeb.cpp" и в "ESPWeb.h". Строки с текстом "WiFi.connect" найти не могу. Поиски веду в скетче "Sonoff_Relay4". Камнями не кидайтесь, разобраться хочу, но мозгов не хватает.
Файлов с именем ESPWeb все-таки всего 2 штуки. Если вы не понимаете разницы между хедер-файлом и файлом cpp, то что вы собрались менять?
Я ошибся в предыдущем ответе, не connect, а WiFi.begin конечно.
Да, Вы правы! Ну не понимаю я разницы между хедер-файлом и файлом cpp. Более того, я в программировании вообще ничего не понимаю! На скетчи смотрю как на баран на новые ворота. Но с Вашей помощью начинаю различать некоторые команды. Могу отличить команду от данных и для меня это уже прогресс! За Ваш ответ большое спасибо! Теперь, надеюсь, смогу разобраться, хотя, конечно до Вашего уровня мне не дотянуться.
Я не барышня, меня лесть не греет. :)
Короче, учитывая, что учиться можно долго, если вам нужен фиксированный IP адрес, то в файл ESPWeb.cpp вставьте перед строкой 364 (WiFi.begin(...)) строку
WiFi.config(IPAddress(192, 168, 1, 100), IPAddress(192, 168, 1, 1), IPAddress(255, 255, 255, 0), IPAddress(192, 168, 1, 1));
Выше пример для адреса 192.168.1.100/24, шлюзом и DNS 192.168.1.1. Вставьте свои значения соответственно. Параметры по порядку: адрес, шлюз, маска подсети, DNS1.
можно модель приемника RF не могу найти такой маленкий
czcams.com/video/BmfmnfHpapo/video.html
Пользуюсь прошитым реле более месяца. Поставил его на вытяжной вентилятор ванной комнаты. К реле подключил датчик температуры и влажности DHT21, по MQTT подключил через Majordomo кнопку Xiaomi (приклеил на стене в ванной комнате). Схема работы следующая... При изменении влажности вкл./выкл. вентилятор, но при необходимости я могу кнопкой или включить на 600 сек. (настройки реле на включение) или выключить вентилятор. И тут я заметил одну неудобную для меня вещь. Когда я включаю принудительно кнопкой, реле включается, запускается таймер на 600сек., но если в это время влажность поднялась и опустилась, то и реле отключается. И если реле включается от датчика влажности, то также запускается и таймер и после 600сек. реле выключается даже если влажность высокая и уже не запускается от данных с датчика.
Я понимаю, что под каждого не угодишь. Может где в скетче можно поправить данные нюансы? Подскажите.
Прошивка реально очень крутая и гибкая в настройках. Спасибо.
Если вы используете Majordomo, то выносите логику управления с самого реле на сервер умного дома через его события. А там с помощью скриптов вы можете учесть все нюансы.
Помогите не могу понять все работало, и почему то стал отваливаться MQTT не подключается к серверу и ВЕБ морда ужасно тормозит
лог
Connecting to "KL8-8".192.168.88.152
HTTP server started
Attempting MQTT connection... failed, rc=-2
Connecting to "KL8-8".192.168.88.152
HTTP server started
Connecting to "KL8-8".192.168.88.152
HTTP server started
Connecting to "KL8-8".192.168.88.152
HTTP server started
Attempting MQTT connection... failed, rc=-2
Connecting to "KL8-8".192.168.88.152
HTTP server started
Connecting to "KL8-8".192.168.88.152
HTTP server started
Попробуйте перешить бутлоадер и параметры WiFi, совместимые с версией SDK, а потом перезалить скетч.
Правда не понял, как перепрошить бутлодер? но когда скетч перезаливаю все так же
Спасибо нашел ответ в Ваших видео.
После перепрошивки бутлоадер и параметры WiFi, совместимые с версией SDK все заработало.
Alex, добрый день!
Долго рылся в интернете с вопросом как подружить в "Ардуине" ESP8266 и датчики DHT(11, 21, 22). Но ответа не нашел. В логах сыпятся ошибки. Есть интересная ссылка: learn.adafruit.com/esp8266-temperature-slash-humidity-webserver/code. Судя по тому, что там написано, даже эти ребята проблему не решили. Где-то читал, что ошибки чтения датчиков возникают если в ESP используется ШИМ, но решения проблемы опять-таки не предложено! В общем вся надежда на Вас!
Конечно, понятно, что рано или поздно должно произойти как в стишке: "Кошка бросила котят, пусть е...... как хотят", и Вы утратили интерес к этой теме. Но будет дико ЖАЛЬ! И не мне одному!
Alex, доброе утро!
При использовании указанной по ссылке выше библиотеки ошибок чтения становится меньше. Совсем не пропадают, но заметно меньше. Скажите можно в Ваш фреймворк включить указанную библиотеку и куда при этом вставить строку: DHT _dht1(14, DHT21, 11); ? Я так понимаю, что в этой строке сразу указывается тип датчика. Но тогда, наверное, пользователю нельзя будет выбирать другой тип датчика?
Если, конечно, вообще можно это вставлять в Ваш фреймворк?
Поиском "dht" по коду ino-файла пройдитесь и где надо замените вызовы методов, если их имена другие. В начале кода, само собой, поменять имя библиотеки, в декларации класса поменять имя типа переменной dht.
Я в ролике про добавление LDR все разжевал, фреймворк почти тот же самый.
Я чуть переписал библиотеку (упростил) DHTesp (да простит меня автор!), попробуйте у себя скетч drive.google.com/open?id=1StBeqaJ1DambqYKdjUriM5aZLZ2imRTB
@@alexmorozov73 Спасибо Alex!
Погонял скетч минут 40. Ошибок пока нет. Но хочу спросить. В измененной Вами библиотеке устранена причина конфликта ESP и DHT или просто сообщения об ошибках теперь не выводятся в LOG? Это важно, потому, что указанный конфликт ESP и DHT иногда приводит к рестарту ESP-шки.
Логирование ошибок я не отключал. Код использует блокировку прерываний на время чтения из датчика. Учитывая, что максимальное время передачи данных от DHT может достигать 13 мс., это, конечно, не очень хорошо. Но как будет работать - надо проверять в реальной жизни.
Планируете ли Вы интегрировать проект к примеру c IoTmanager (удобно когда менеджер подтягивает все устройства их датчики и дает управлять ими одновременно) ?
Нет.