Страница 22 из 23

Re: Подключение железа к AMS

Добавлено: Пн окт 14, 2019 8:14 am
serghei
Видел )).. После интеграции мне больше интереснее тема гейта - информера. Вполне самостоятельный девайс , который может обойтись без мажерика
К тому же можно щелкать и выключателями прямо с гейта
СпойлерПоказать
Выключатель.jpg
Выключатель.jpg (38.49 КБ) 1164 просмотра

Re: Подключение железа к AMS

Добавлено: Пн окт 14, 2019 8:24 am
nick7zmail
В зигби тоже есть такая тема как прямой биндинг. Управление с устройства на устройство без участия основного гейта...

Re: Подключение железа к AMS

Добавлено: Пн окт 14, 2019 7:24 pm
eGorka
serghei писал(а):
Пн окт 14, 2019 8:00 am
PS/ АМС живет в куче ипостасиях и на разных платформах
И всё это у одного человека?!
Скетч на форуме Тут
spiffs.ino косметика
СпойлерПоказать

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

void files(){
  File dir  = SPIFFS.open("/");
  if(!dir.isDirectory()){
    dir.close();
    return;
  }
  dir.rewindDirectory();
  spisok = "";
  for (int cnt = 0; true; ++cnt) {
    File entry = dir.openNextFile();
    if (!entry) break;
    if (cnt > 0) spisok += ","; // +++
    spisok += " ";
    spisok += String(entry.name()).substring(1);
    spisok += ":";
    spisok += String(entry.size());
    //spisok += ",";
    entry.close();
  }
  //Serial.println();
  //Serial.println(spisok);
  //Serial.println();
}

Re: Подключение железа к AMS

Добавлено: Вс авг 09, 2020 8:13 pm
IvanovYL295
Добрый день!

Собрал сервер на ардуино мега 2560, сетевая плата Ethernet Shield W5100 с sd картой.
Версия системы - Arduino Mega Server 0.17, компилировал на Arduino 1.8.5.
Сервер заработал.

В качестве разминки подключил часы на чипе DS3231 (по статье на хабре https://habr.com/ru/post/385349/),
термометр на DS18B20 - тут по руководству https://hi-lab.ru/arduino-mega-server/m ... re-to-dash и https://hi-lab.ru/arduino-mega-server/d ... re-sensors.
Заработало без особых проблем.

Нашел понижающий трансформатор на 50 герц, спаял схему https://hi-lab.ru/arduino-mega-server/d ... ge-sensors.
В качестве датчика тока подоткнул платку ACS712 на датчике Холла.
Физически, так сказать, все заработало. В пункте "Примеры", "Осциллограф" синус рисуется.
В пункте "Примеры", "Электросеть", "Форма сетевого напряжения и тока" также рисуются графики напряжения и тока.
В пункте "Примеры", "Электросеть", "Форма сетевого напряжения и тока" есть график частоты.

А вот график "Напряжение" и график "Общая мощность" показывают нули.

Вопрос: где ковыряться? Аппаратно что-то не так настроено? Датчики в скетчах калибрануть надо? Или передача данных в веб-интерфейс изначально (в дистрибутиве) не работала?

Re: Подключение железа к AMS

Добавлено: Вс авг 09, 2020 11:50 pm
IvanovYL295
Примерно так:
Подключен компьютер.
Электросеть.JPG
Электросеть.JPG (68.05 КБ) 363 просмотра

Re: Подключение железа к AMS

Добавлено: Пн авг 10, 2020 12:21 am
IvanovYL295
Электросеть1.JPG
С подключенным утюгом.
Электросеть1.JPG (71.75 КБ) 361 просмотр

Re: Подключение железа к AMS

Добавлено: Пн авг 10, 2020 8:12 am
serghei
Приветствую. В дистрибьютиве Меги со страницей есть косяк - не то имя берётся для отображения. Я щас с телефона не подскажу , но внимательно посмотри в XML таблице в отладчике браузера - есть эта мощность или нет. Если что - вечером могу посмотреть.

Re: Подключение железа к AMS

Добавлено: Пн авг 10, 2020 4:46 pm
IvanovYL295
serghei писал(а):
Пн авг 10, 2020 8:12 am
Приветствую. В дистрибьютиве Меги со страницей есть косяк - не то имя берётся для отображения. Я щас с телефона не подскажу , но внимательно посмотри в XML таблице в отладчике браузера - есть эта мощность или нет. Если что - вечером могу посмотреть.
Подоткнул к датчику напряжения осциллограф. При выдернутом из розетки трансформаторе датчика напряжения данные появились, причем ненулевые. Подоткнул датчик через латр, прогнал по напряжению.
Uлатр(вольт) А0размах(вольт) U P
20 0,28 12000 50
40 0,56 50000 137
60 0,84 125000 204
80 1,07 223000 284
100 1,32 368000 366
120 1,58 546000 437

Т.е. выводимые данные меняются в зависимости от напряжения на датчике.
Похоже, ковыряться надо в скетче electro_pm. Koэффициент какой-нибудь подправить.
Еще такое ощущение, что данные напряжения меняются в зависимости от постоянной подпоры на входе АЦП.
Надо попробовать застабилизировать подпорку - воткнуть вместо нижнего резистора стабилитрон на 2,5 вольта - TL431
с замкнутыми катодом и управляющим электродом.

Re: Подключение железа к AMS

Добавлено: Пн авг 10, 2020 8:20 pm
serghei
Большая дискуссия , мои коменты и расчет в теме Power Monitor. В скетче надо только подправить коэффициенты для тока и напряжения. Во вкладке ServerAjax то же всё правильно. Ковырять надо файл Script.js / Кажется там не все переменные прописаны. Я всё это делаю на Дуе. Файлы для Меги сейчас посмотрю.

Re: Подключение железа к AMS

Добавлено: Вт авг 11, 2020 6:31 pm
IvanovYL295
В Scripts.js ничего похожего нет.

В Supply.html находим:

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

<p>Напряжение сети: <span class="value" id="volt">...</span> В</p>
<p>Мощность: <span class="value" id="p1">...</span> Вт</p>
<p>Частота: <span class="value" id="freq">...</span> Гц</p>
В Dash.js:

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

document.getElementById('volt').innerHTML = dvoltage;
document.getElementById('p1').innerHTML = power;
и

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

var period = this.responseXML.getElementsByTagName('period')[0].childNodes[0].nodeValue;
              period -= 100;
            } catch (err) {
                period = '-';
              }
            try {
              var frec = 1 / (period / 1000000);
              document.getElementById('freq').innerHTML = frec.toFixed(2);
Дальше ищем dvoltage, power, period.
(и, соответственно, пока ничего не находим...)

Кроме двух заблокированных строк:

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

 // Voltage
          
          try {
            var dvolt = this.responseXML.getElementsByTagName('voltage')[0].childNodes[0].nodeValue;
          } catch (err) {
              dvolt = '0';
            }
          try {
            var dvoltage = Math.round(parseInt(dvolt), 0);
            //document.getElementById('dash-voltage').innerHTML = dvoltage;
            //document.getElementById('dash-voltage-hide').innerHTML = dvoltage;
          } catch (err) { }
И, соответственно, если их разблокировать, то ничего не меняется.

Как вообще устроена передача данных? Есть ли описание на примере, скажем, одной существующей вкладки, или добавления новой?
По описаниям покопался - ясности не прибавилось.