Сторінка 1 з 2
BLYNK integration
Додано: 18 лютого 2020, 10:50
hostmit
Приветствую!
По линии работы senior devops/middle dev (js/c#) ну и думаю на junior C++ потяну. IOT было интересно всегда, сейчас очень много интересного и умного построено на ESP8266/EPS32. Завязал все это дело на Blynk SDK (blynk.cc).
Причина лишь одна - opensource backend, приличный Android/IOS APP, есть API. По сути дела ребята дорастили MQTT функционал. Важное для меня здесь - классное мобильное приложение, с уведомлениями и прочими фичами. Конкурентов на сегодня достойных не видел (если упустил, подскажите).
Сигнализация была у меня на ESP32, но руки довести до ума не дошли. Плюс слабые познания в электронике не дали сделать хорошую обвязку PIR датчикам.
https://github.com/hostmit/esp32-alarm
Приобрел 7S, и хочу интегрировать ее в Blynk. Тех сап сказал, что они юзают штатную прошивку и управление AT командами.
https://github.com/espressif/ESP8266_AT
Вот она, для меня неудобна тем, что я не знаком с ESPRESSIF SDK, использовал всегда ARDUINO SDK.
Планирую написать обработчик их AT команд, добавить WEB API (ESPAsyncWebServer) ну и транслитерировать все это дело в BLYNK. Изначально беру ESP32, более удобная платформа, таски, и прочие фичи, за пару баксов разницы...
Так вот собственно вопросы:
1) Есть где-либо информация о AT командах, которые шлёт микропроцессор в ESP? Даташит?
2) Кто либо уже работал в этом направлении? Интеграция в Blynk? Поделитесь наработками.
3) Есть ли желающие с С++ бекграундом принять участе в данном деле, код так или иначе будет паблик, гитхаб.
Re: BLYNK integration
Додано: 18 лютого 2020, 16:41
boby
1. всю служебную информация, в том числе и отправляемые АТ-команды на ESP8266, можно с помощью конфигуратора записать в лог-файл. там достаточно легко получить необходимую вам инфо. вот пример - урывки из лога
Receive from WiFi:
ready
Send to WiFi: AT
Receive from WiFi: AT
OK
Send to WiFi: ATE0
Receive from WiFi: ATE0
OK
Send to WiFi: AT+GMR
Receive from WiFi: AT version:1.1.0.0(May 11 2016 18:09:56)
SDK version:1.5.4(baaeaebb)
compile time:May 20 2016 15:08:19
OK
Send to WiFi: AT+CWMODE=1
Receive from WiFi:
OK
Send to WiFi: AT+CWJAP=...
Receive from WiFi: WIFI CONNECTED
Receive from WiFi: WIFI GOT IP
Receive from WiFi:
OK
Send to WiFi: AT+CIPMODE=0
Receive from WiFi:
OK
Send to WiFi: AT+CIPMUX=0
Receive from WiFi:
OK
Send to WiFi: AT+CIPSTART="TCP","
Send to WiFi: ok.webhop.net
Send to WiFi: ",
Send to WiFi: 31200
Send to WiFi:
Receive from WiFi: CONNECT
OK
Send to WiFi: AT+CIPSENDEX=2048
Receive from WiFi:
OK
>
Send to WiFi: {864287035399268,00FF,5600,623F0000,0000,00,8080808080808080,0000000000000000000000000000000000000000000000000000000000000000,024C024B0000000000000FFB0FEC012E032F0331033103310331032F0FDD0FDB,9.4.2,OKO-PRO-X,,,,,,,,,,,,,,,,,,,,,,,,821455000000,,}
Send to WiFi:
Send to WiFi: \0
Receive from WiFi:
Recv 247 bytes
Receive from WiFi:
SEND OK
Receive from WiFi:
+IPD,43:COMMAND:;
SERVER CLOCK:2020-02-18 16:26:16
перечень доступных АТ-команд для ESP8266 есть в инете
https://www.espressif.com/sites/default ... set_en.pdf
Re: BLYNK integration
Додано: 18 лютого 2020, 22:25
hostmit
Спасибо. Как я понимаю, есть же еще обработчик ошибок от ESP? Дроп соединений и т.п.?
Re: BLYNK integration
Додано: 19 лютого 2020, 00:18
boby
согласно официальному документу, ссылку на который я дал выше, вот такой перечень сообщений может выдавать ESP8266
- messages.jpg (94.56 Кіб) Переглянуто 5912 разів
Конечно же, при "ненормальном" обрыве тср-соединения ничего еср-шка не выдаст. и узнать об таком обрыве можно лишь при попытке передать что-либо в сокет. В приборе сделана следущая логика: если через вифи не удается установить соединение с сервером и передать ему пакет, то переходим на мобильный интернет (гсм-модуль), но периодически пробуем установить коннект через вифи.
Re: BLYNK integration
Додано: 19 лютого 2020, 14:39
hostmit
Еще раз спасибо за разъяснения. Еще вопросик:
Настроил ВХОД4 как управление постановкой/снятием с охраны (подачей земли на него). Управляю этим с другой ESP через оптопару - та часть где приемный диод стоит между землей и ВХОД4.
Есть ли варианты подать выход с GPIO напрямую? LOW работать будет, а вот HIGH? Что с той стороны? Через резистор? Или оставить оптопару с развязкой.
Re: BLYNK integration
Додано: 19 лютого 2020, 18:18
boby
пины проца для входов там в режиме АДС
- inputs.jpg (188.17 Кіб) Переглянуто 5902 разів
Re: BLYNK integration
Додано: 10 березня 2020, 07:17
hostmit
Итак early sketch тут
https://gitlab.com/hostmit-esp8266/s7
Набросал немного итемов в приложение
http://h.pi.hostmit.net/i/photo_2020-03-10_07-02-13.jpg
Идея сохранить штатный функционал S7 + наростить своим. Самая главная проблема для меня - использовать уже готовые RFID сканеры на входах, для контроля 2х зон (у меня 2 здания). RFID выполнены в виде rfid rc522 (та версия где ключ в закрытом виде хранится на карте) + esp8266. Они стоят снаружи, при поднесении карты они бросают ASYNC UDP PACKET в мультикаст. В пакете JSON с зоной и ключём. Главное устройство (на S7) подписано на тот же мультикаст, при получении пакета сравнивают с базой ключей и меняют состояние сигнализации для данной зоны. Так же, главное устройство каждые 500мс в мультикаст шлёт состояние сигнализации, снова json async udp пакет. На блоках RFID стоит светодиод, который в зависимости от статуса зоны горит или нет
https://gitlab.com/hostmit-esp8266/s7-rfid
Итак проблемы с которыми я столкнулся:
1) ESP8266 не лучший вариант для такого количества задач, очевидно перейду на ESP32. Во-первых один аппаратный UART усложняет отладку, пришлось использовать async udp logger -> graylog (gelf). Софтварный UART плох, потому что нет входящего буфера. У ESP32 два аппаратных UART. Кроме того, тяжелые блочащие операции, например BLYNK.run(), на пол секунды подвешивают поток. У ESP такие вещи можно забиндить на второе ядро.
2) Не работает штатное приложение. TCP соединение есть, пакет отправляется {data}, но в приложении не видно. Поставлю свой сервер ОККО. @boby, не подскажешь, куда рыть?
Пока все. Буду апдейтить по возможности.
Re: BLYNK integration
Додано: 10 березня 2020, 08:45
hostmit
Приложение заработало... кстати как-то не устойчиво оно работает, и раньше не устойчиво. Те же команды через BLYNK улетают куда быстрее. Запущу в докере этот мега-jar... Нет бы на ноде написали
Ну до того же тяжелая эта JAVA...
Re: BLYNK integration
Додано: 10 березня 2020, 10:50
hostmit
Забираю свои слова назад, не такой уж тяжелый JRE.
Код: Виділити все
2df1b2bbe323 registry.gitlab.com/hostmit-private/c1-hetzner:s7backend-master "java -jar /app/tcp_…" 2 minutes ago Up 2 minutes 0.0.0.0:31200->31200/tcp s7backend_s7backend_1 32.8kB (virtual 285MB)
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
2df1b2bbe323 s7backend_s7backend_1 0.16% 99.78MiB / 3.758GiB 2.59% 14.3kB / 11.5kB 13.8MB / 0B 523
Работает существенно быстрее, чем фри паблик инстанс на DC воле
Камон, кто хостится на воле, когда есть hetzner?
Вобщем все получается. Нужно время или контрибьюторы
Re: BLYNK integration
Додано: 10 березня 2020, 10:57
hostmit
Забыл добавить, я использую ESP8266 12e. На ESP-01 собраться отказалось, там 512КБ места, а я активно использую ОТА, это отъедает еще кусочек. Можно конечно ужиматься, но в 2020 уже как-то не хочется.
@boby подскажи пожалуйста, 3.3В я прозвонил, идет одна линия питания на 433MHZ модуль и на ESP-01 на S7. Первого у меня нет, но я хочу вместо ESP-01 поставить ESP32, который будет попрожорливее. Как там по питанию? Линейная понижайка или ШИМ? Можно даташит или инфу, хватит ли мне для ESP32.