ESP8266 MegaD api
Re: ESP8266 MegaD api
AvaloncheG, может пока что довести до ума задуманный функционал, для ADC пул пригодится, а для INа - всего же два состояния, другой вопрос если сделать виртуальные порты и в зависимости от их состояния выполнять некий ACT и NET.
Примерно так:
VP0-0, VP1-0, VP2-0,
ACT...... NET........
VP0-1, VP1-0, VP2-0,
ACT...... NET........
VP0-1, VP1-1, VP2-0
ACT...... NET........
Ну и так далее, сделать обращение к виртуальным портам как к обычному выходу, тогда эта штуковина сможет работать сценарии, пришла ночь - нажал кнопку(образно) - порт стал в 1- выполняется ночной сценарий, допустим по датчику движения включается только подсветка, а не весь свет. А если еще потом и часы приделать и типа cronа поля заделать, то вообще супер контроллер получится.
Примерно так:
VP0-0, VP1-0, VP2-0,
ACT...... NET........
VP0-1, VP1-0, VP2-0,
ACT...... NET........
VP0-1, VP1-1, VP2-0
ACT...... NET........
Ну и так далее, сделать обращение к виртуальным портам как к обычному выходу, тогда эта штуковина сможет работать сценарии, пришла ночь - нажал кнопку(образно) - порт стал в 1- выполняется ночной сценарий, допустим по датчику движения включается только подсветка, а не весь свет. А если еще потом и часы приделать и типа cronа поля заделать, то вообще супер контроллер получится.
Re: ESP8266 MegaD api
Друзья, такой вопрос, если эта штуковина теряет сеть, то ACT перестает выполняться? то есть автономно без сети оно не работает, роутер повесился и все??? или сосед с магнетроном от микроволновки играться начал, дом жить перестает??? а можно с этим что-то сделать?
llams, заметил тенденцию, при замене имени сети (на не существующую) или сбросе через GPIO1 и подключении заново, пропадает TS9 (два раза уже было)
llams, заметил тенденцию, при замене имени сети (на не существующую) или сбросе через GPIO1 и подключении заново, пропадает TS9 (два раза уже было)
Re: ESP8266 MegaD api
Была такая мысль. Когда задал вопрос об этом, поддержки не нашел. Да и смысла то нет, думаю локальные порты так и будут иметь стандартный набор.AvaloncheG писал(а):...почему для всех портов типа IN и АЦП не организовать пул команд Act и NetAct?
Это уже попахивает ПЛИС, в таком случае нужно отходить от концепта еще дальше и оперировать событиями. А их может быть сколько угодно и превратится копеечный ESP в сервер умного дома работающий на "Мега операционной системе". Думаю не нужно перегружать простое устройство функционалом сервера.foolhome писал(а):...если сделать виртуальные порты...
Если роутер ушел первым то Atc должно выполняться, если одновременно то пока устройство не войдёт в сеть никакие сценарии выполняться не будут (над этим еще предстоит поработать).foolhome писал(а):...если эта штуковина теряет сеть, то ACT перестает выполняться?...
Спасибо, посмотрю.foolhome писал(а):...пропадает TS9...
Re: ESP8266 MegaD api
Так это и нужно, почему все упираются в концепцию Андрея? эта программа уже работает почти как PLC, на разные события по температуре выдает необходимые действияЭто уже попахивает ПЛИС, в таком случае нужно отходить от концепта еще дальше и оперировать событиями. А их может быть сколько угодно ...
Осталось чуть-чуть, на I2C часы RTC с CRON-ом повесить, WEB разукрасить чтоб глаз радовался, OLED доработать, просто многие смотрят на свои изделия как железячники или программисты, лично я смотрю на это как пользователь бытового уровня. Если интересно, то можно обсудить.и превратится копеечный ESP в сервер умного дома работающий на "Мега операционной системе".
А что ему станет??? это же железяка, что прикажешь, то и будет делать, не устанет и в отпуск не попросится.Думаю не нужно перегружать простое устройство функционалом сервера.
-
- Сообщения: 54
- Зарегистрирован: 27 фев 2015, 01:06
Re: ESP8266 MegaD api
Я думал с точки зрения унификации и оптимизации кода так будет лучше, что бы стандартный набор был один для всех.llams писал(а):Была такая мысль. Когда задал вопрос об этом, поддержки не нашел. Да и смысла то нет, думаю локальные порты так и будут иметь стандартный набор.
Тут полностью согласен, у 80% пользователей есть/будет сервер, еще 19% он в принципи не надо и остается 1% который нужно убедить что без сервера нормальный "умный дом" не сделать.llams писал(а):А их может быть сколько угодно и превратится копеечный ESP в сервер умного дома работающий на "Мега операционной системе". Думаю не нужно перегружать простое устройство функционалом сервера.
Re: ESP8266 MegaD api
Откуда эта статистика? В корне не соглашусь, как раз у тех кто пользует сервер в жизни не более 1%, потребителю важно законченное устройство, простое в понимании и с возможностью изменить под себя, Обратите внимание на Broadlink, Xiaomi и подобное. А поднимать сервер, разбираться с линуксом, писать скрипты, Вы сами знаете какой это багаж знаний необходим, ради работы устройства в управлении освещением или сигнализации, это сверх маразм, тем более имея такие РЕСУРСЫ!!! как ESP. Может на этом ресурсе (форуме) и 80% серверистов, но ни кто не убеждает вас от него отказаться и нельзя отказываться от полей NET я это и не поддерживаю, поэтому и меня не надо убеждать что мне необходим сервер для того чтоб открыть ворота.Тут полностью согласен, у 80% пользователей есть/будет сервер, еще 19% он в принципи не надо и остается 1% который нужно убедить что без сервера нормальный "умный дом" не сделать.
Re: ESP8266 MegaD api
Вопрос знатокам. Как определить наличие на шине датчика DS18B20 зная его адрес. Задача в следующем, при выходе из строя, обрыве провода нужно как то однозначно определить отсутствие элемента сети 1-wire. При использовании одного делается просто сбросом, датчик отвечает флагом присутствия. Как словить флаг присутствия от конкретного датчика обратившись к нему по адресу?
Что то мне подсказывает, что это Read Power Supply [B4h], у нас же нет паразитного питания. Есть мысли?
Что то мне подсказывает, что это Read Power Supply [B4h], у нас же нет паразитного питания. Есть мысли?
Re: ESP8266 MegaD api
http://arduinolab.pw/index.php/2015/12/ ... /#more-110
может это поможет, здесь в коде была проверка на наличие
может это поможет, здесь в коде была проверка на наличие
Re: ESP8266 MegaD api
команда
MATCH ROM [55h] Соответствие ROM [55h]
Команда соответствия ROM, сопровождаемая последовательностью кода ROM на 64 бита
позволяет устройству управления шиной обращаться к определенному подчиненному
устройству на шине. Только подчиненное устройство, которое точно соответствует 64
битам последовательности кода ROM, ответит на функциональную команду, выпущенную
главным устройством. Все другие подчиненные устройства на шине будет ждать импульса
сброса.
MATCH ROM [55h] Соответствие ROM [55h]
Команда соответствия ROM, сопровождаемая последовательностью кода ROM на 64 бита
позволяет устройству управления шиной обращаться к определенному подчиненному
устройству на шине. Только подчиненное устройство, которое точно соответствует 64
битам последовательности кода ROM, ответит на функциональную команду, выпущенную
главным устройством. Все другие подчиненные устройства на шине будет ждать импульса
сброса.
Re: ESP8266 MegaD api
Это стандартные примеры. Ничего нового, при отсутствии датчика на шине значение температуры будет либо нули, что уже само по себе не верно, либо -0.06 уже разок упоминали об этом.foolhome писал(а):http://arduinolab.pw/index.php/2015/12/ ... /#more-110
может это поможет, здесь в коде была проверка на наличие
Это очевидно, если используем несколько датчиков на одной шине их нужно идентифицировать, MATCH ROM заставляет, грубо говоря, заткнуться все устройства до импульса сброса. Я спрашивал про то, как понять, что датчик присутствует во множестве, точнее отвечает на запрос. Везде стандартные библиотеки:alexsis_76 писал(а): команда
MATCH ROM [55h] Соответствие ROM [55h]
запустили конвертацию - Convert T [44h],
подождали,
выбрали - Match Rom [55H],
приняли - Read Scratchpad [BEh],
посчитали и не важно, что там нули или данные.
Для DS18B20 оказалось все просто, мастер постоянно вычитывает весь SCRATCHPAD, т.е. все 9 байт, все примеры используют только 3 байта 0, 1 и 4-й, первые два значение температуры, 4-й конфиг, в данном случае разрешение.
Для данной реализации думаю нет смысла считать контрольные суммы, а достаточно проверить содержимое зарезервированного регистра 5-й байт, в нем всегда 255, если датчик пропал будут нули. Для DS18S20 это тоже справедливо.
Последний раз редактировалось llams 05 янв 2017, 15:58, всего редактировалось 1 раз.
Re: ESP8266 MegaD api
никакчто датчик присутствует во множестве
ну конечно так всегда делается,это нормально.Везде стандартные библиотеки:
запустили конвертацию - Convert T [44h],
подождали,
выбрали - Match Rom [55H],
приняли - Read Scratchpad [BEh],
посчитали и не важно, что там нули или данные.
лучше считать.Для данной реализации думаю нет смысла считать контрольные суммы
Re: ESP8266 MegaD api
перед тем как посчитать,считаем crc,если процедура вернет false то датчик отсутствует или неисправен,дальше можно не продолжать либо произвести еще циклы чтения,кроме того на длинных линиях возможны ошибки, crc позволяет выловить их,так что если претендуете на серьезность то crc нужно считать.посчитали и не важно, что там нули или данные
Re: ESP8266 MegaD api
Очередная версия:
- добавлена проверка целостности данных для DS18B20, при потере датчика устройство будет возвращать NAN,
- исправлена проблема с подсчетом количества термостатов.
- добавлена проверка целостности данных для DS18B20, при потере датчика устройство будет возвращать NAN,
- исправлена проблема с подсчетом количества термостатов.
Re: ESP8266 MegaD api
В связи с тем, что в MegaESP используется OLED дисплей с шиной I2C поделюсь с Вами опытом работы с одной из разновидностью, может кому пригодится, заказал я как - то себе парочку универсальных OLED-ов с возможностью подключения по SPI или I2C, вот такого вида:
Стал вопрос как его перевести на работу с I2C, вроде все понятно, но не тут то было, просто перепаять резисторы как указанно сзади ни чего не дает, курим даташит по чипу экрана понимаем что лишние ноги нужно куда нибудь прикрутить, цепляем DC и CS на GND, RES на VCC и о чудо, он засветился и определяется по I2C, первое включение было с каким - то мусором на экране, пару раз передернул питание заработал вроде как надо. Стал я играться с разными прошивками для ESP и в один момент при переносе своей конструкции на работу без изменений в прошивке экран начал показывать примерно такой мусор:
Это картинка Андрея немного с другим экраном, но мусор такой - же, что я ни делал, какую прошивку не заливал в ESP ни чего не помогало, я понял что экран зависит от погоды и святого духа, а так же Бога электроники, стал искать решение проблемы если вдруг Бог не видит экран. Поиск в сети ни чего толкового не дал, люди пытаются завести эти экранчики разными библиотеками, либо оставляют их в режиме SPI, но проблема мусора решается довольно просто на сигнал RESet необходимо повесить цепочку сброса, чтоб сброс проходил с задержкой после включения питания, стандартная схема сброса резистор 10К и конденсатор 0,1 мк и вуаля, все работает как надо:
P.S. резисторы на дисплее перепаиваем как написано на нем для IIC, вместо R8 просто перемычка.
Стал вопрос как его перевести на работу с I2C, вроде все понятно, но не тут то было, просто перепаять резисторы как указанно сзади ни чего не дает, курим даташит по чипу экрана понимаем что лишние ноги нужно куда нибудь прикрутить, цепляем DC и CS на GND, RES на VCC и о чудо, он засветился и определяется по I2C, первое включение было с каким - то мусором на экране, пару раз передернул питание заработал вроде как надо. Стал я играться с разными прошивками для ESP и в один момент при переносе своей конструкции на работу без изменений в прошивке экран начал показывать примерно такой мусор:
Это картинка Андрея немного с другим экраном, но мусор такой - же, что я ни делал, какую прошивку не заливал в ESP ни чего не помогало, я понял что экран зависит от погоды и святого духа, а так же Бога электроники, стал искать решение проблемы если вдруг Бог не видит экран. Поиск в сети ни чего толкового не дал, люди пытаются завести эти экранчики разными библиотеками, либо оставляют их в режиме SPI, но проблема мусора решается довольно просто на сигнал RESet необходимо повесить цепочку сброса, чтоб сброс проходил с задержкой после включения питания, стандартная схема сброса резистор 10К и конденсатор 0,1 мк и вуаля, все работает как надо:
P.S. резисторы на дисплее перепаиваем как написано на нем для IIC, вместо R8 просто перемычка.
Последний раз редактировалось foolhome 09 янв 2017, 11:16, всего редактировалось 1 раз.
Re: ESP8266 MegaD api
llams, а есть в планах дальнейшая работа над OLED дисплеем? Наверно же не просто так его прилепили. Было бы великолепно ввести несколько страниц для отображения портов, которые периодически сменяли бы друг друга как слайды, например:
1. Стартовая как сейчас - с системной информацией, с возможностью отключения при показе слайдов.
2. Общая страница с состоянием портов (общий список, мелкий шрифт)
3. Пользовательские - верхняя строчка (мелкий шрифт, название слайда пишет пользователь ) остальное поле крупный шрифт состояние (ON/OFF) или значение (HI/LO/1024/темп) только одного порта.
Пользовательских было бы не плохо несколько штук в запасе иметь.
Теперь обрисую для чего: даже банальный термостат подошли к устройству и температуру визуально увидели, состояние порта - пожалуйста.
1. Стартовая как сейчас - с системной информацией, с возможностью отключения при показе слайдов.
2. Общая страница с состоянием портов (общий список, мелкий шрифт)
3. Пользовательские - верхняя строчка (мелкий шрифт, название слайда пишет пользователь ) остальное поле крупный шрифт состояние (ON/OFF) или значение (HI/LO/1024/темп) только одного порта.
Пользовательских было бы не плохо несколько штук в запасе иметь.
Теперь обрисую для чего: даже банальный термостат подошли к устройству и температуру визуально увидели, состояние порта - пожалуйста.
Re: ESP8266 MegaD api
Да, конечно. Спасибо Вам за информацию, думаю будет полезна.foolhome писал(а):llams, а есть в планах дальнейшая работа над OLED дисплеем?
Ваш предыдущий пост подтолкнул меня разобраться со своим дисплеем. Мало того, что у него сдвиг на один пиксель, так еще и умер через месяц работы. Вчера выяснил, что с ним было. Пришлось выкинуть набортный стабилизатор питания. После этого завелся, буду продолжать.
-
- Сообщения: 254
- Зарегистрирован: 15 июл 2013, 23:43
- Откуда: Астрахань
Re: ESP8266 MegaD api
Подскажите пожалуйста, как при помощи входов ESP организовать диммирование например 2 кнопки - одна прибавляет, а другая убавляет яркость ?
Re: ESP8266 MegaD api
Это не предусмотрено. Чем вас не устраивает вариант с одной кнопкой?arbuzmaster писал(а):Подскажите пожалуйста, как при помощи входов ESP организовать диммирование например 2 кнопки - одна прибавляет, а другая убавляет яркость ?
-
- Сообщения: 254
- Зарегистрирован: 15 июл 2013, 23:43
- Откуда: Астрахань
Re: ESP8266 MegaD api
Как это одной кнопкой? Т.е. просто включать/выключать с определенной яркостью или я не правильно Вас понял? Теоретически я подумал, что можно сделать так:включить ежесекундную отправку данных на сервер и на сервере проверять скриптом - если первая кнопка ON то прибавляем с определенным шагом, если вторая ON то убавляем с тем же шагом, так можно же сделать? Но ели бы у входа был режим Pulse с интервалом опроса и отправкой на сервер, то это было бы вообще замечательно!llams писал(а):Это не предусмотрено. Чем вас не устраивает вариант с одной кнопкой?arbuzmaster писал(а):Подскажите пожалуйста, как при помощи входов ESP организовать диммирование например 2 кнопки - одна прибавляет, а другая убавляет яркость ?
Re: ESP8266 MegaD api
Переводите IN в режим работы, параметр "mod" M, а в Act 0:~5 Где 0 номер PWM порта, а 5 шаг.
Изменение состояния порта происходит от 0 -> 255 -> 0 с заданным шагом.
Изменение состояния порта происходит от 0 -> 255 -> 0 с заданным шагом.