Arduino Mega Server

Модератор: Alex

serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Пн авг 28, 2017 12:39 am

Прикрутил я радиоприёмник к АМС :lol: . Пока железяку не подключил физически , пробую создать Веб страницу для него. И столкнулся с первой проблемой - частота настройки в браузер передается пяти (четырех) значным числом. А в сериал по другому. Там все правильно - " 189 . 30" . Собственно вопрос - можно как то средствами HTML (или правильнее PHP ?) поделить число на сотню ?
Когда рисовал спидометры прокатывал ход лошадью - брал значение аналогового входа , делил на 10 и получал другой масштаб.

Код: Выделить всё

 data-onready="setInterval( function() { Gauge.Collection.get('an_gauge_2').setValue(data_val2/10);// тут разделил //}, 200);"></canvas>
Вариант с делением на сотню в Ажаксе не сработал - просто отрезались два последних числа и из 18930 получилось просто 189.

Код: Выделить всё

 s += makeTag("radFrec",  "", String (radio.getFrequency()/100));
Или как то по другому надо делить? Ведь температура передается с дробной частью. Или при отображении в Даш-панели можно как то принудительно поставить точку?
В сериал выводится так
СпойлерПоказать

Код: Выделить всё

void radiosWorks() {

    // put your main code here, to run repeatedly:
  if(!digitalRead(54) ){ // Если увидели что дергают ногу 54
    
    radio.seekUp(true); 

}

    char s[12];

  radio.formatFrequency(s, sizeof(s));
  
      if (cycle1m) {
         Serial.print("FREQ:"); Serial.println(s);
      }
  //Serial.print("FREQ:"); Serial.println(s);

  
} 
СпойлерПоказать
DUE_Radio.jpg
Картинка
DUE_Radio.jpg (168.15 КБ) 8107 просмотров
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
eGorka
Сообщения: 182
Зарегистрирован: Чт ноя 24, 2016 10:47 am
Благодарил (а): 5 раз
Поблагодарили: 25 раз

Re: Arduino Mega Server

Сообщение eGorka » Вт авг 29, 2017 8:32 am

serghei писал(а):Вариант с делением на сотню в Ажаксе не сработал - просто отрезались два последних числа и из 18930 получилось просто 189.

Код: Выделить всё

 s += makeTag("radFrec",  "", String (radio.getFrequency()/100));
Может так?
String (parseInt(radio.getFrequency())/100)
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Вт авг 29, 2017 11:27 am

Все гениальное - просто. И написано с рождения АМС ! Уже в скрипте объявляем вторую переменную , первую делим на сотню и выводим в панель. Точно так же , как округление температуры. Вот только засада с незначащим нулем. Пришлось добавить 0 руками. Теперь всё красиво.
Спасибо!
А вообще эта тема возникла , когда я купил TFT экран с тачь-панелью и стал искать к нему драйвера. И первое на что я наткнулся - пример работы радио + 8 кнопок + датчик BME280 + часы + СЛАЙДЕР !!!!!!! громкости + и все это тыкается с экрана ! Ну и в библиотеке радио бонусом идет вывод в Веб по JSON. Код залил в Мегу ( только нужна родная библиотека Ethernet.h ). Будем посмотреть что такое JSON.
А научить АМС боюсь мозгов не хватит , хотя код воткнул и он компилируется !!
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Вт авг 29, 2017 11:44 pm

Что бы логически закончить тему логирования данных для АМС необходимо записывать значения в файл .log , где названием файла будет его дата создания. За основу взял код ser009 для записи событий. И вот что получилось. Можете проверить насколько это правильно? Файл создаётся, но пока мало истории.
Tlog.rar
(1.1 КБ) 148 скачиваний
Огромное СПАСИБО участникам создания этого чуда !!!
ledmax как замутившему тему и автора кода для ESP8266
Alexsis_76 как автора скриптов
ser009 как автора кода событий
Красоту наводить уже дело вкуса . Вариант с одним файлом тоже оставлю - замечательна видна динамика за месяц работы.
.....продолжение следует.....
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Сб сен 09, 2017 11:05 pm

Маленькое дополнение к предыдущему сообщению.
Попробовал создать две версии файла логирования - для одного файла и разбитого по дням. Так как руки поломал в детстве ( реально) , получилось немного криво , но работает. Создается два файла для разных страниц , но используется одна библиотека "AmCharts".
Месяц записи на SD карту каждые 5 минут прошел успешно. Надо увеличить значения таймера до получаса.
Код модуля
TLOG_2.rar
(1.39 КБ) 125 скачиваний
Ну и картинки
СпойлерПоказать
Due_1_file.jpg
Глюк Далласа -127 С
Due_1_file.jpg (116.68 КБ) 6582 просмотра
И по дням
СпойлерПоказать
Due_graf.jpg
Due_graf.jpg (86.22 КБ) 6582 просмотра
Может код как то можно упростить или выровнять ??))). Из разряда теста можно смело переносить на рабочую машину.
PS. Зря многие бочку катят на DHT_11. Работает вполне адекватно и наравне с Далласом ( с учетом округления) и без всяких подтяжек.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Вс сен 10, 2017 7:47 am

Месяц записи на SD карту каждые 5 минут прошел успешно.
Тут дело даже не в записи на карту — это ещё одно (независимое) подтверждение того, что АМС это абсолютно стабильная и надёжная система — сама по себе (если не портить) работает месяцами безо всяких утечек памяти и прочих глюков.

То есть на ней можно строить реально работающие практические системы автоматизации. Что подтверждается и практикой моих внедрённых и работающих в режиме 24/7 проектов.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Ср сен 13, 2017 11:38 pm

За полтора года работы и изучения АМС так и не видел синхронизации времени ни на Меге , ни на Дуе. По совету Специалистов ( именно с Большой буквы ) полгода назад добавил и прописал DNS к модулю dethernet. Но ......... :evil: ...Не знал про Ethernet.begin .. Этот форум пора издавать отдельной книгой.
victorhom писал(а):Помаленьку исправляем косяки:
У меня локалка в диапазоне 192.168.1.* со шлюзом в Интернет 192.168.1.200. Поменял шилду W5100 IP адрес, никак не поднимался NTP клиент.
Решение:нужно в модуле ethernet указать gateway!

Код: Выделить всё

// Ethernet settings
byte SELF_MAC[] = {0x00, 0x2A, 0xF5, 0x12, 0x68, 0xFE};
byte SELF_IP[] =  {192, 168, 1, 57};
byte MY_DNS[] = {84,  22, 142,2};
byte MY_GATEWAY[] = {192, 168, 1, 200};

void ethernetInit() {
  Ethernet.begin(SELF_MAC, SELF_IP, MY_DNS, MY_GATEWAY);
  modulEthernet = 1;
  Serial.println("Modul Ethernet... started");
}
и все поднялось.
Только я взял Гугловский DNS 8.8.8.8
Посвящается Всем , у кого нет синхроницации - добавьте к скетчу

Код: Выделить всё

// Ethernet settings
byte SELF_MAC[] = {0x00, 0x2A, 0xF5, 0x12, 0x67, 0x50};
byte SELF_IP[] =  {192, 168, 2, 37};
byte DNS[] = {8 ,8 ,8 ,8};
byte GATEWAY[] = {192, 168, 2, 100};

void ethernetInit() {
  Serialprint("Modul Ethernet...\n");
  Ethernet.begin(SELF_MAC, SELF_IP, DNS, GATEWAY);
  Serialprint(" MAC: ");
  printMac(SELF_MAC); 
И всё заработает !!!
PS Не в эту тему , но RobotDyn исправил свою ошибку и сейчас гружу их плату с 4 мегабайтами у ESP 8266+ Мега . Да и цена упала в 2 раза. (10 баксов).
За это сообщение автора serghei поблагодарил:
wildsm (Чт сен 14, 2017 12:51 am)
Рейтинг: 1.16%
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: Arduino Mega Server

Сообщение ser009 » Чт сен 14, 2017 7:48 am

у меня DNS вообще не используется. И все прекрасно работает.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Чт сен 14, 2017 7:51 am

Я мало что в этом смыслю , но мы живём в разных странах. И почему тогда один и тот же код работает по разному у нас?
И к тому же у тебя поднят NTP на локалке.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Arduino Mega Server

Сообщение nick7zmail » Чт сен 14, 2017 8:17 am

ser009 писал(а):у меня DNS вообще не используется. И все прекрасно работает.
У меня тоже без DNS работало всё...и в меге и в esp (без локального ntp сервера).
serghei писал(а):Я мало что в этом смыслю , но мы живём в разных странах. И почему тогда один и тот же код работает по разному у нас?
Тут скорее всего просто сетевые настройки роль играют, либо доступность указанных ntp серверов с разных сетей...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить