Re: передача данных от majordomo к arduino mega server
Добавлено: Пн дек 25, 2017 10:08 am
Передавайте по mqtt)) протокол же 2хсторонний...и url запросами сеть не грузит.
Обсуждение проекта
https://mjdm.ru/forum/
Код: Выделить всё
#ifdef DHT_FEATURE
if (cycle5m) {// подставьте 20s
dhtWorks();
}
#endif serghei писал(а):Вам нужен вывод в МД или в браузер ? Судя по коду DHT появится через 5 минут. Для теста изменитеВывод в браузер закомментирован. Я уже много раз объяснял , как это сделать. Собственно , там осталось только добавить вывод в HTML.SPOILERSPOILER_SHOWКод: Выделить всё
#ifdef DHT_FEATURE if (cycle5m) {// подставьте 20s dhtWorks(); } #endif
MQTT обмен насколько я понял с MajorDomo?nick7zmail писал(а):Передавайте по mqtt)) протокол же 2хсторонний...и url запросами сеть не грузит.
Код: Выделить всё
// #ifdef DHT_FEATURE
// for (byte i = 0; i < MAX_DHT_SENSORS; i++) {
// s += makeTag(dobjSens[i], "", String(current_dht[i]));
// s += makeTag(dobjSens[i], "Health", String(dtempSensorHealth[i]));
// }
// s += makeTag("mdTempHealth", "", String(tempModulHealth));
// #endif Код: Выделить всё
// 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) { } А, закомментирован код vladragor'a а я думал у алекса. С далласом получилось, Спасибо! Правда пришлось поковыряться с алексовским "dash-voltage"serghei писал(а):+2. Если в сериале данные от DHT есть , дальше будет проще. Посмотри код сервера АжаксРаскомментируй все строки. Первый makeTag передает в браузер названия датчиков , а string значения температур. После этого в XML таблице должны появиться Ваши данные датчиков.SPOILERSPOILER_SHOWКод: Выделить всё
// #ifdef DHT_FEATURE // for (byte i = 0; i < MAX_DHT_SENSORS; i++) { // s += makeTag(dobjSens[i], "", String(current_dht[i])); // s += makeTag(dobjSens[i], "Health", String(dtempSensorHealth[i])); // } // s += makeTag("mdTempHealth", "", String(tempModulHealth)); // #endif
Дальше в скрипте надо дописать условия приема этих данных. У меня влажность передается такВам надо подставить свои названия градусников var humDht = this.responseXML.getElementsByTagName('dht1_temp') .SPOILERSPOILER_SHOWКод: Выделить всё
// 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) { }
И так для каждого значения. Ну и потом вставить в даш панель. Сложно - пока не поймете этот механизм. Сначала попробуйте с далласом.
Ни на что не ругается. Сайт работает. странички переключатся. страница примеры ajax работает. индикаторы шевелятся. темы переключаются. Но даш панель "пустая", как на скрине выше (похоже что подгружается только HTML и причем болванка даш панели меняется при смене тем, но данных нет)serghei писал(а):+3. Давайте разбираться. Вот только конкретно этот код смогу проверить только вечером . Начало есть. Дальше будет проще. Сперва проверьте на странице , на что матер......))) что не нравиться браузеру. Какие ошибки он показывает ?
Код: Выделить всё
#ifdef DHT_FEATURE
s += makeTag("dht1_temp", "", String(dhta.readTemperature()));
s += makeTag("dht1_hum", "", String(dhta.readHumidity()));
s += makeTag("dht2_temp", "", String(dhtb.readTemperature()));
s += makeTag("dht2_hum", "", String(dhtb.readHumidity()));
s += makeTag("dht3_temp", "", String(dhtc.readTemperature()));
s += makeTag("dht3_hum", "", String(dhtc.readHumidity()));
s += makeTag("dht4_temp", "", String(dhtd.readTemperature()));
s += makeTag("dht4_hum", "", String(dhtd.readHumidity()));
// for (byte i = 0; i < MAX_DHT_SENSORS; i++) {
// s += makeTag(dobjSens[i], "", String(current_dht[i]));
// s += makeTag(dobjSens[i], "Health", String(dtempSensorHealth[i]));
// }
// s += makeTag("mdTempHealth", "", String(tempModulHealth));
#endif