MyTetra Share
Делитесь знаниями!
Роман Легоньков_переписка
Время создания: 01.11.2024 14:18
Автор: alensav
Текстовые метки: Роман Легоньков
Раздел: PROFI
Запись: alensav/MyTetra2/main/base/1730459889pet5m6g6h2/text.html на raw.githubusercontent.com

Роман Легоньков

+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


 
MyTetra Share v.0.65
Яндекс индекс цитирования