Роман Легоньков
+7-965-234-83-79
был в сети больше месяца назад
8 января
тем не менее на брокер информация не доходит, иначе либо информация на бегущей строке бы менялась либо она бы не менялась вообще, даже с помощью команды. Возможно на второй esp стоит некорректный адрес брокера?
20:40
Вы каким образом через ipad мониторите отправку?
20:40
У вас есть код второй esp?
20:48
на ipad клиент mosquitto заходит на брокер...
21:33
код сброшу позже...
21:33
по каким то причинам контур mqtt который вы видите на клиентах рабочего стола / ipad отличается от контура к которому подключен esp с бегущей строкой. попробуйте проверить конфигурацию всей системы
21:38
возможно на orange pi запущенно два брокера , возможно на пк запущен брокер. не могу сказать не зная вашу конфигурацию
21:39
код сбросил на емаил...
21:52
У вас все устройства находятся в одной сети? я вижу разные SSID сети в скетче в задаче и в том который вы только что скинули
21:55
Еще один нюанс, необходимо назвать одно из esp устройств другим именем в client.connect("ESP8266Client")
21:56
К тому же для лучшей работы будет правильнее поменять функцию loop в отправителе на примерно такое
22:05
const uint32_t send_data_interval = 10000;
uint32_t current_time_process_1 = 0;
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
if (millis() - current_time_process_1 >= draw_topics_interval) {
// замер температуры воды
sensors.requestTemperatures();
//waterTemp = sensors.getTempCByIndex(0);//версия gpt
float waterTemp = sensors.getTempCByIndex(0);
// замер температуры воздуха и влажности
humidity = dht.readHumidity();
airTemp = dht.readTemperature();
// определение уровня воды
int upperLevel = digitalRead(upperLevelPin);
int lowerLevel = digitalRead(lowerLevelPin);
int intermediate = digitalRead(intermediatePin);
// отправка данных на MQTT брокер
char waterTempStr[10];
dtostrf(waterTemp, 4, 2, waterTempStr);
client.publish("water_temperature", waterTempStr);
char airTempStr[10];
dtostrf(airTemp, 4, 2, airTempStr);
client.publish("air_temperature", airTempStr);
char humidityStr[10];
dtostrf(humidity, 4, 2,
22:05
client.publish("humidity", humidityStr);
if (upperLevel == LOW) {
client.publish("water_level", "upper");
} else if (lowerLevel == LOW) {
client.publish("water_level", "lower");
} else if (intermediate == LOW) {
client.publish("water_level", "intermediate");
} else {
client.publish("water_level", "empty");
}
current_time_process_1 = millis();
}
}
22:05
https://disk.yandex.ru/d/dsj2cCgHZrvENw
22:06
Исправьте пожалуйста первые 2 а желательно все 3 пункта и скорее всего все заработает
22:20
все в одной сети. это ретрансляторы...
22:43
Последняя ссылка исправлен Dush...?
22:51
Да
22:51
Сообщением одним не получилось , я исправил в файле
22:52
exit status 1
'draw_topics_interval' was not declared in this scope
23:03
ВОЗМОЖНО ТРЕБУЕТ БИБЛИОТЕКУ?
23:04
Это за Dush...
23:05
поменяйте на send_data_interval
23:06
draw_topics_interval -> send_data_interval
23:06
см видео на емаил...
23:18
client.connect("ESP8266Client") - здесь поменяли?
23:21
нет.
23:29
поменяйте хотя бы в одном скетче
23:30
Буду перепрошивать. ESP8266ClientRom пройдет?
23:31
да, подойдет
23:31
они должны быть не одинаковые - это главное
23:33
на разных устройствах
23:34
ESP8266Client один раз в коде?
23:36
везде где встречается в коде
23:37
в одном скетче
23:37
вроде один раз да
23:38
а нет, два
23:38
client.connect - в этих фунциях
23:40
второе поиск не находит...
23:40
в функции setup и reconnect
23:41
отбой, только reconnect
23:42