Страница 8 из 23
Re: Подключение железа к AMS
Добавлено: Чт май 25, 2017 4:08 pm
batihor
Из Меги вырежьте вкладку robotdyn и вставьте к себе.
это о чем это было?
с уровнями все ясно. вот только досада. должен ЕСП на котором работает сервер, отвечать на АТ запросы?
с обычной прошивкой отвечает.
Re: Подключение железа к AMS
Добавлено: Чт май 25, 2017 4:37 pm
serghei
Насколько я понял у Вас есть Мега , на которой крутится код метеостанции без выхода в интернет.Вы хотите по сериалу передавать данные на ЕСП и так получить выход в интернет. Правильно? Для этого есть вариант АМС для ЕСП и Меги , где они соеденены по сериалу и пока передают друг другу только своё состояние. Так вот берите код для ЕСП и заливайте в свою 01 . А из АМС для Меги Вам нужен код для этого. Он во вкладке robotdyn. Добавьте его в свою Мегу. После этого Мега будет передавать свой статус и отображать в Вебе ЕСП. Интерфейс точно такой же , какой Вы запустили.Никаких АТ запросов. Только данные с Меги в Вебе .
Ссылки и код вставить не могу, пишу с планшета.Только ночью или завтра вечером.
Re: Подключение железа к AMS
Добавлено: Чт май 25, 2017 6:42 pm
batihor
Спасибо. Буду пробовать. Ссылки не нужны. Знаю где лежит.
Да, так и задумал как вы описали.
Re: Подключение железа к AMS
Добавлено: Чт май 25, 2017 6:52 pm
serghei
Если получится разобраться с передачей данных , пожалуйста сбросьте код сюда. Дуя у меня видит уже два сервера. Хочу добавить ещё один. Удачи !
Re: Подключение железа к AMS
Добавлено: Ср июл 05, 2017 12:11 am
serghei
Сегодня наконец то получилось прикрутить DHT11 к ESP 32.
Код: Выделить всё
AMS for ESP32 SD started...
Module Random... started
Module EEPROM (NVS)...
Name: ESP32 SD
ID: CZN9A-M6HCZ-T35RP
Address: 186
===========
Module Hardware...
Arduino IDE: 1.6.5
SDK version: v2.0-rc1-803-g1e0710f1
Chip revision: 0
Chip ID: 0CE903A4AE30
CPU freq: 240 MHz
Free memory: 205980 (72%)
Flash mode: 2
Flash speed: 80 MHz
Flash size: 4194304
Self temp: 37.8 C
===========
Module Wi-Fi...
Connecting to mega ..
WiFi: connected
IP address: 192.168.2.70
===========
Module SD...
Init: OK
Type: SDHC
Size: 30255 MB
Check: ..................
Files: 180
Total: 19329723 B
Empty: 3
Index: found
===========
Module NTP...
Server: 129.6.15.30
Port: 123
===========
Module Time...
Provider: network
NTP request: OK
===========
2017-07-04 23:25:36 Module Server... started
2017-07-04 23:25:36 Module Upload... started
2017-07-04 23:25:36 Module Send... started
2017-07-04 23:25:36 Module Contacts... started
2017-07-04 23:25:36 Module PIR... started
2017-07-04 23:25:36 Module LED... started
2017-07-04 23:25:36 Module Keys... started
2017-07-04 23:25:36 Module Robotdyn... started
2017-07-04 23:25:36 Module DHT... started
GLOBAL Init DONE (18s)
AMS WORK
2017-07-04 23:25:36 : 134320 (47%) 134320
?esp=1
due=1
?esp=1
Humidity: 45.00 % Temperature: 22.00 *C 71.60 *F Heat index: 21.43 *C 70.57 *FHumidity: 45.00 % Temperature: 22.00 *C 71.60 *F Heat index: 21.43 *C 70.57 *F
?esp=1
?esp=1
Humidity: 45.00 % Temperature: 22.00 *C 71.60 *F Heat index: 21.43 *C 70.57 *FHumidity: 45.00 % Temperature: 22.00 *C 71.60 *F Heat index: 21.43 *C 70.57 *F
?esp=1
?esp=1
Пока вывод значений только в сериал-порт. С Ажаксом буду разбираться позже. Главная проблема при запуске - найти нужные библиотеки. Оригинал статьи нашел
ТУТ . Только пришлось опять вставить в библиотеку дополнительный файлик. Подправленная библиотека
- DHT.rar
- Библиотека
- (14.64 КБ) 271 скачивание
Код для ESP32 ( просто добавить вкладку )
Ну и не забываем добавить в Setup и Loop
Код: Выделить всё
#define FEATURE_DHT
byte moduleDHT = NOT_COMPILLED;
#ifdef FEATURE_DHT
initDHT();
#endif
#ifdef FEATURE_DHT
workDHT();
#endif
Чтобы выкатить готовую сборку , сначала надо вывести в Веб значения. Ну и подумать как прикрутить еще парочку градусников. Аналогия с далласами чего то не прокатила.
Код: Выделить всё
//char objSens[MAX_TEMP_SENSORS] = {"tempSTR"};
PS. Чтобы вывести любое число из скетча на Dash-panel в сервер-ажакс добавляем код
/* Dash
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
void responseDash(WiFiClient cl) {
String s = tagXmlVersion();
s += "\n<inputs>\n";
s += makeModules();
s += makeTag("auth", "", String(authMode));
s += makeTag("uptime", "", uptimeString());
s += makeTag("freeRAM", "", String(freeMem()));
s += makeCpuLoad();
s += makeTag("lifer", "", String(lifer));
s += makeTime();
s += makeTag("day", "", String(day()));
s += makeTag("month", "", String(month()));
s += makeTag("weekday", "", String(weekday()));
s += makeTag("sdSize", "", makeSdSize());
s += makeTag("selfTemp", "", String(selfTemp(), 1));
s += makeTag("humDHT", "", String(dht.readHumidity(), 1)); // придумываем название и вставляем реальную переменную влажности
s += makeTag("tempDHT", "", String(dht.readTemperature(), 1)) // Тоже самое для температуры;
Затем в файле script.js добавляем
// Temperature
try {
var tempSTR = this.responseXML.getElementsByTagName('tempSTR')[0].childNodes[0].nodeValue;
} catch (err) {
tempSTR = "0";
}
try {
var selfTemp = this.responseXML.getElementsByTagName('selfTemp')[0].childNodes[0].nodeValue;
} catch (err) {
selfTemp = "2";
}
try {
var selfTemp_ = Math.round(selfTemp, 1);
document.getElementById("temp-srv").innerHTML = selfTemp_ + "°";
document.getElementById("temp-srv-hide").innerHTML = selfTemp_ + "°";
} catch (err) { }
// Humidity DHT
try {
var humDht = this.responseXML.getElementsByTagName('humDHT')[0].childNodes[0].nodeValue;
} catch (err) {
humDht = "3";
}
try {
var humDht_ = Math.round(humDht, 1);
document.getElementById("hum-srv").innerHTML = humDht_ + "%";
document.getElementById("hum-srv-hide").innerHTML = humDht_ + "%";
} catch (err) { }
// Temperature DHT
try {
var tempDht = this.responseXML.getElementsByTagName('tempDHT')[0].childNodes[0].nodeValue;
} catch (err) {
tempDht = "4";
}
try {
var tempDht_ = Math.round(tempDht, 1);
document.getElementById("t-srv").innerHTML = tempDht_ + "°";
document.getElementById("t-srv-hide").innerHTML = tempDht_ + "°";
} catch (err) { }
Ну и в конце в файле dash.htm вставляем
<div class="cell-2-fixed">
<div class="box-dash" title="Важные параметры">
<p>Температура: <span class="value" id="t-srv">...</span> C</p>// посадочное место температуры
<p>Влажность: <span class="value" id="hum-srv">...</span> H</p>// то же для влажности
<p>Сервер: <span class="value" id="temp-srv">...</span> C</p>
<p>Мощность: <span class="value" id="dash-power">...</span> Вт</p>
</div>
</div>
<div class="cell-2-fixed">
В результате получим картинку

- Dash_ESP32.jpg (88.25 КБ) 7102 просмотра
Re: Подключение железа к AMS
Добавлено: Ср авг 30, 2017 11:49 pm
serghei
Вариантов подключения датчиков DHT к МЕГЕ в сети великое множество , но они не подходят для DUE. Сегодня удалось прикрутить DHT11. Это заготовка , так как нет вывода в МД , но тем не менее работает. Интересно сравнить показания с Далласами. Разница десятые доли градуса. Для этого можно воспользоваться страницей " graf.htm" с модулем Chart.
Надо еще подумать что добавить для нескольких датчиков.
Re: Подключение железа к AMS
Добавлено: Чт сен 28, 2017 12:00 am
serghei
По быстрому подключил датчик BME280 к DUE. Меряет температуру , влажность и давление. Работает на шине I2C.

- Датчик
- BME_280.jpg (97.88 КБ) 6571 просмотр
Код
Заметил первые проблемы - разница в показаниях влажности с DHT11 около 5 %. Также на форуме упоминалась проблема рассинхронизации времени отображения на графиках HiCharts. Сейчас с этим столкнулся.

- Две влажности.jpg (86.15 КБ) 6571 просмотр
Заодно размножил вывод до 9 графиков на странице /graf.htm .
Re: Подключение железа к AMS
Добавлено: Чт сен 28, 2017 5:21 am
ser009
Обратите внимание, что датчики имеют разную погрешность.
Re: Подключение железа к AMS
Добавлено: Чт сен 28, 2017 8:05 am
serghei
Погрешность понятно. Датчик сам по себе очень интересный. В библиотеке есть куча настроек для всех трех параметров , вплоть до измерения высоты над уровнем моря (?!). И не понятно пока какую влажность меряет - абсолютную или относительную. Подключил по - быстрому и пример взял из другого проекта.
Глубоко не ковырялся. Надо добавить еще вывод в браузер...
...А заодно посмотрю на какую длину можно отдалить от контроллера.
Re: Подключение железа к AMS
Добавлено: Вс дек 03, 2017 12:42 pm
yulinn
В теме "Re: Подключение железа к AMS" я написал, как подключал 7` дисплей Sainsmart к AMS. Выкладываю фото окончательного решения.
Корпус распечатал на 3D принтере.