BLYNK integration

hostmit
Тихоня
Повідомлень: 8
З нами з: 18 лютого 2020, 10:29

BLYNK integration

Повідомлення 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) Есть ли желающие с С++ бекграундом принять участе в данном деле, код так или иначе будет паблик, гитхаб.
Аватар користувача
boby
Гуру
Повідомлень: 2674
З нами з: 25 грудня 2013, 20:16

Re: BLYNK integration

Повідомлення 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
тяжело начинать с нуля, но тяжелее с глубокого минуса
hostmit
Тихоня
Повідомлень: 8
З нами з: 18 лютого 2020, 10:29

Re: BLYNK integration

Повідомлення hostmit »

Спасибо. Как я понимаю, есть же еще обработчик ошибок от ESP? Дроп соединений и т.п.?
Аватар користувача
boby
Гуру
Повідомлень: 2674
З нами з: 25 грудня 2013, 20:16

Re: BLYNK integration

Повідомлення boby »

согласно официальному документу, ссылку на который я дал выше, вот такой перечень сообщений может выдавать ESP8266
messages.jpg
messages.jpg (94.56 Кіб) Переглянуто 5736 разів
Конечно же, при "ненормальном" обрыве тср-соединения ничего еср-шка не выдаст. и узнать об таком обрыве можно лишь при попытке передать что-либо в сокет. В приборе сделана следущая логика: если через вифи не удается установить соединение с сервером и передать ему пакет, то переходим на мобильный интернет (гсм-модуль), но периодически пробуем установить коннект через вифи.
тяжело начинать с нуля, но тяжелее с глубокого минуса
hostmit
Тихоня
Повідомлень: 8
З нами з: 18 лютого 2020, 10:29

Re: BLYNK integration

Повідомлення hostmit »

Еще раз спасибо за разъяснения. Еще вопросик:

Настроил ВХОД4 как управление постановкой/снятием с охраны (подачей земли на него). Управляю этим с другой ESP через оптопару - та часть где приемный диод стоит между землей и ВХОД4.

Есть ли варианты подать выход с GPIO напрямую? LOW работать будет, а вот HIGH? Что с той стороны? Через резистор? Или оставить оптопару с развязкой.
Аватар користувача
boby
Гуру
Повідомлень: 2674
З нами з: 25 грудня 2013, 20:16

Re: BLYNK integration

Повідомлення boby »

пины проца для входов там в режиме АДС
inputs.jpg
inputs.jpg (188.17 Кіб) Переглянуто 5726 разів
тяжело начинать с нуля, но тяжелее с глубокого минуса
hostmit
Тихоня
Повідомлень: 8
З нами з: 18 лютого 2020, 10:29

Re: BLYNK integration

Повідомлення 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, не подскажешь, куда рыть?


Пока все. Буду апдейтить по возможности.
hostmit
Тихоня
Повідомлень: 8
З нами з: 18 лютого 2020, 10:29

Re: BLYNK integration

Повідомлення hostmit »

Приложение заработало... кстати как-то не устойчиво оно работает, и раньше не устойчиво. Те же команды через BLYNK улетают куда быстрее. Запущу в докере этот мега-jar... Нет бы на ноде написали :) Ну до того же тяжелая эта JAVA...
hostmit
Тихоня
Повідомлень: 8
З нами з: 18 лютого 2020, 10:29

Re: BLYNK integration

Повідомлення 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? :D

Вобщем все получается. Нужно время или контрибьюторы :)
hostmit
Тихоня
Повідомлень: 8
З нами з: 18 лютого 2020, 10:29

Re: BLYNK integration

Повідомлення hostmit »

Забыл добавить, я использую ESP8266 12e. На ESP-01 собраться отказалось, там 512КБ места, а я активно использую ОТА, это отъедает еще кусочек. Можно конечно ужиматься, но в 2020 уже как-то не хочется.

@boby подскажи пожалуйста, 3.3В я прозвонил, идет одна линия питания на 433MHZ модуль и на ESP-01 на S7. Первого у меня нет, но я хочу вместо ESP-01 поставить ESP32, который будет попрожорливее. Как там по питанию? Линейная понижайка или ШИМ? Можно даташит или инфу, хватит ли мне для ESP32.
Відповісти

Повернутись до “TCP сервер ОКО (Monitor OKO)”