Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Делюсь опытом Nodemcu как модуль связи. Телеметрия, email.

Тема в разделе "SDK и создание собственных прошивок", создана пользователем view24, 16 апр 2019.

  1. view24

    view24 Читатель

    Сообщения:
    154
    Симпатии:
    6
    Идея проекта "Телеметрия" в том, чтобы сделать из nodemcu модуль связи. Этот модуль связи после прошивки и включения самостоятельно получает от сервера BortX id в виде bxNNNN, где NNNN 4-х значное число. После этого данный модуль будет виден в интернете в качестве панели управления.(см. http://bortx.ru/bx1961)

    [​IMG]

    Когда начнет поступать телеметрическая информация от объекта, тогда уже сам объект будет виден на панели. Информация от объекта к модулю передается всего двумя командами.

    1.[data=1,2,3,4;][format=a,b,c,d;]
    2.mail=an-16@ramber.ru/lorem/ipsum/;

    Скетч, который работает в arduino nano ниже:

    Код (Text):
    1. int value_LED=0;
    2. char sbuf;
    3. String serial_line="";
    4.  
    5. #include <SoftwareSerial.h>
    6. SoftwareSerial telemetry(11, 12); // RX,TX
    7.  
    8. void setup() {
    9.   Serial.begin(115200);
    10.   telemetry.begin(115200);
    11.   delay (1000);
    12.   //mail no more then one pro minute
    13.   telemetry.println("mail=porkige@gmail.com/LOREM_"+String(analogRead(A0))+"/IPSUM/;");          
    14.   delay (1000);          
    15.            
    16.              };
    17.  
    18. void loop() {
    19.   // read the analog in value:
    20.  
    21.  
    22. // read telemety by a Software serial
    23. while (telemetry.available()) {sbuf=telemetry.read();serial_line=serial_line+String(sbuf);};
    24. Serial.println("serial_line:"+serial_line);
    25. if ( serial_line.indexOf("LED=on") != -1) {value_LED=1;};
    26. if ( serial_line.indexOf("LED=off") != -1) {value_LED=0;};
    27. digitalWrite(LED_BUILTIN, value_LED);
    28.  
    29. serial_line="";
    30.  
    31. telemetry.println("data="+String(analogRead(A0))+","+String(value_LED)+";format=A0,LED;");
    32.   delay(1000);
    33.              } //end loop
    34.  
    Передача данных от объекта (arduino nano) к телеметрическому модулю (nodemcu mini) по SoftWareSerial. В прошивке telemetry используемые пины GPIO5 и GPIO4, что для nodemcu mini - D1 и D2.

    Итак какие команды от объекта к модулю связи их всего две:

    1.[data=1,2,3,4;][format=a,b,c,d;]
    2.mail=an-16@ramber.ru/lorem/ipsum/;

    Format задает имена переменных, а data - текущие значения.

    Лучше посылать одной строкой data=1,2,3,4;format=a,b,c,d;

    Если есть необходимость срочно послать тревожное сообщение, используйте оператор mail. До 25 символов в TEME и 25 в ТЕЛЕ. Не чаще 1 раза в минуту.

    Нажатие клавиш на Панеле проиводит к появлению в сериальном буфере строки Переменная=Значение;

    Правило на все времена! После прошивки обязательно нажмите на кнопку RESET на плате. В противном случае не всегда осуществим программный ресет. Программный ресет используется прошивкой, например для перезапуска в случае неудачного соединения или потери связи. Либо в случае перезапуска после прошивки по "воздуху" OTA. А такая функция в спутнике уже предусмотрена, но об этом позже.



    После загрузки Телеметрия сразу становиться web сервером, впрочем web сервером она останется навсегда. Телеметрия войдет в список wifi станций на Вашем смартфоне с таким примерно названиемBortX:bx1961 число 4-значное будет другим. Это означает, что ваше место в итернете будет http://bortx.ru/bx1961

    Итак, плата стала Web сервером. Подключаемся к станции BortX:bx5403... И браузером заходим на страницу http://192.168.4.1 и видим локальную форму

    [​IMG]

    Видим форму, в которой уже прописано место в интернете, конкретнее id на сайте BortX.ru . И теперь надо плате выйти в интернет через имеющийся у вас wifi роутер. То есть надо прописать ssid и пароль вашего роутера. Заполним эти две верхние строчки, нажмем SAVE для сохранения. Убеждаемся, что после нажатия SAVE время работы платы на форме меняется (working). Нажимаем RESTART, перезагружаем форму. Появляется надпись 'connected' и IP, по которому уже можно (и это будет удобнее) подлючиться к этой же форме, но через ПК.

    Переходите на адрес вашей платы, он будет примерно такой как http://bortx.ru/bx5403 , но с вашим BortX_id bxNNNN, который у вас уже появился автоматически после прошивки.

    Если светодиод на плате часто моргает, значит нет связи с роутером - проверьте настройки.

    Локальная форма Телеметрии отличается от локальной формы Спутника своей лаконичностью. Это и понятно. Телеметрия сама не будет называть переменные и т.д. Дело Телеметрии поддерживать надежную связь. Переменными будет заниматься скетч объекта.

    ПО ШАГАМ

    1. Скачать прошивку телеметрия. http://bortx.ru/firmware/telemetry.bin(SoftSerial 115200)

    Если на объекте нет уверенной поддержки 115200, скачайте версию с поддержкой SoftSerial 9600 http://bortx.ru/firmware/telemetry9600.bin

    2. Загрузить прошивку в nodemcu - описано на примере прошивки Спутник.

    3. Отыскать станцию wifi BortX:bxNNNN и подключиться к ней без пароля.

    4. Браузером зайти по адресу 192.168.4.1

    5. Вписать ssid и пароль Вашего WIFI нажать save, потом restart

    6. В интернете найти свою телеметрию по адресу http://bortx.ru/bxNNNN/

    7. Картинка с графиком будет неподвижной, что немудрено, ибо объект не поключен и телеметрические данные не поступают, но проверить связь можно - нажатие ON / OFF на панели приводят к изменению состояния встроенного в nodemcu светодиода.

    8. Откорректируйте скетч примера - впишите ваш email. Загрузите скетч в ардуино - неважно какую. Соедините tx,rx объекта с GPIO4,GPIO5 nodemcu. На картинке панели должна посыпаться информация, а в ваш почтовый ящик поступит победное письмо.
     
  2. nikolz

    nikolz Гуру

    Сообщения:
    3.668
    Симпатии:
    399
    это пример как делать не надо.
    Выкиньте arduino nano, тогда можете хвастаться.
    ------------------
    Напоминает басню Крылова "мартышка и очки"
     
  3. view24

    view24 Читатель

    Сообщения:
    154
    Симпатии:
    6
    Грубый и безответственный ответ. Комментировать не буду.
     
  4. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.371
    Симпатии:
    161
    Ну как тут без нано, прошивка для есп закрытая.
    Что за сайт, кто им управляет и что делать, когда сайт закроется?
     
  5. view24

    view24 Читатель

    Сообщения:
    154
    Симпатии:
    6
    Сайт группы БиоСофт24 ГосНииГенетика. И что делать, если закроется? Есть смысл задавать этот вопрос, если предприняты большие капитальные затраты на изучение, внедрение. В нашем случае все решается за один час. Можно рискнуть.
     
  6. nikolz

    nikolz Гуру

    Сообщения:
    3.668
    Симпатии:
    399
    ну,ну...
    За один час решается у дилетантов. Потому что все просто у них по определению.
    Решение с апендиксом из ардуины говорит само за себя об уровне такого решения.
     
  7. nikolz

    nikolz Гуру

    Сообщения:
    3.668
    Симпатии:
    399
    Вы знаете зачем нано прилепили?
    или это так -реклама
     
  8. nikolz

    nikolz Гуру

    Сообщения:
    3.668
    Симпатии:
    399
    может кто-то объяснить каким опытом в этой теме делятся?
    написали бы что реклама картинки тогда понятно.
     
  9. enjoynering

    enjoynering Авторитетный участник сообщества

    Сообщения:
    444
    Симпатии:
    48
    пошел по ссылке - http://bortx.ru/bx1961
    кровь глаза. какие то кнопки, стрелки, что они делают? жесть. автор, такой ужас себе даже конструкторы жигулей не позволяют.
     
  10. view24

    view24 Читатель

    Сообщения:
    154
    Симпатии:
    6
    Привыкли к одной кнопке? ON/OFF? Телефон у вас тоже с одной кнопкой "Позвонить домой"? Однако, бывают панели посложнее. Могу рассказать, если вежливо попросите.
     
  11. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    483
    Симпатии:
    58
    «Не верю!» © Станиславский К.С.
    Странно слышать о капитальных затратах в предприятиях начинающихся на "Гос" в то время как домен biosoft24.ru (так же как и bortx.ru) зарегистрирован на Private Person.
    Может так принято, регистрировать домены на этих предприятиях на частные лица, непривычно как то.
    Непривычно и то, что используется незащищенное соединение.
    Если esp соединяется с тем же bortx.ru, то как он определяет что ресурс подлинный, а не получен подмененный ответ?
    И на картинке с настройками что то плохо видно куда вводить для прокси пользователя и пароль.
     
  12. view24

    view24 Читатель

    Сообщения:
    154
    Симпатии:
    6
    О каких капитальных затратах и о какой картинке речь?
     
  13. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.253
    Симпатии:
    1.263
    Привет @view24
    Нет, у нас давно такие вопросы: https://esp8266.ru/forum/threads/ka...vannogo-csv-razmerom-bolee-2-x-megabajt.4301/
    А у вас на кухне газ...? Т.е. всё так-же - по 1 точке в сек и всего 10-ть 8-ми битных точек на графике?
     
  14. view24

    view24 Читатель

    Сообщения:
    154
    Симпатии:
    6
    А вы же вроде нас покинули? Или вернулись уже?
     
  15. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.253
    Симпатии:
    1.263
    Я ползаю вокруг - где и что нового ищу... Но с ESP8266 распрощался. Как-то ещё можно подергать ESP32, но и то никуда не годится из-за тормозов SPI-Flash -> Cache -> CPU. А программы к нему пишут большие и "кеш" не успевает = итого вся прыть ESP32 на них равна 10..30 МГц MIPS или ARM :)
     
  16. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    483
    Симпатии:
    58
    Я понял что капитальные затраты в этом гос предпиятии, если это не так, от прошу прощения.
    А картинка из первого поста, под которой написано "Видим форму..."
    Про защищенное соединение уже и не спрашиваю.
     
  17. view24

    view24 Читатель

    Сообщения:
    154
    Симпатии:
    6
    Ну, это я понял, что Вы первооткрыватель по жизни. Но кому то надо и на практику работать. Например, сломался ферментер - при включении нагревателя одновременно стал включатся холодильник. А плата dfc4 cisco. Отремонтировать нереально. Сделал "костыль" на esp8266. Работает 2 года непрерывно. Так что, меня эта штука устраивает. Пока.
     
  18. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.253
    Симпатии:
    1.263
    Там хотя-бы CORS (OPTION Access-Control-Request/Allow-...) у HTTP сервера есть?

    @view24 - Формат чисел и времени в javascript в double precision = 52 бита мантисса и время хранится в миллисекундах, что описывает точность до десятков микросек… Даже стандартная new Date(ms).toISOString() выдает ISO string c ms: YYYY-MM-DDThh:mm:ss.sssZ. Но у вас, в javascript на странице графиков, всё ограничено секундами. Самый простой Dygraph давно уже в 1 ms…

    Какая современная телеметрия c дискретностью замеров от 1 секунды и более? Это называется случайная выборка...:(
     
  19. view24

    view24 Читатель

    Сообщения:
    154
    Симпатии:
    6
    На картинке из первого поста есть место для proxy. Работать приходится по предприятиям, а там везде SQUID. Поначалу websocket хотел применить - облом. SQUID заголовок upgrade не пропускает. Пришлось через get решать с двумя портами и long polling, чтобы реакция на запрос была мгновенной. Так что, до ssl руки не дошли, но защита по паролю есть. Из той же формы видно.
     
  20. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.253
    Симпатии:
    1.263
    Костыль на ESP8266 - этож надо десяток костылей только к нему, чтобы он устойчиво работал. Да и какой WiFi у каждого устройства дома? Надо что-то потише в эфире и менее потребляющее... Хорошо то, что такого ныне валом - до NB-IoT... Да и китайских SoC развелось... Что имеет менее 32-х МБ встроенной SRAM/DDRAM с внутренней шиной не менее 32-х бит уже не рассматриваю, т.к. жрет имеющееся одинаково с ESP8266 (о ESP32 и разговор не идет - там за 500 mA по 3.3В !)
     

Поделиться этой страницей