Сегодня наконец то получилось прикрутить 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 КБ) 175 скачиваний
Код для 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 КБ) 5924 просмотра