• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Odczyt temperatury z dwóch ds18b20
#1
Witam.
Na bazie kodów znalezionych w sieci popełniłem prosty program do ESP8266, który odczytuje temperaturę z dwóch ds18b20 i przesyła ją do brokera mqtt.
Odczyt temp przez serial działa prawidłowo ale nie ma przesyłu przez mqtt.
Domyślam się, że trzeba przekonwertować odczyt temperatury na taki, który można przesłać ale już drugi dzień nie potrafię tego zrobić. Proszę o podpowiedzi...

Kod uszczupliłem o część sieciową. Funkcja  printTemperature(Woda) poprawnie wyświetla temperaturę ale do client.publish nie mogę jej wrzuć ze względu na nawiasy a bez nie działa...

Kod:
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Streaming.h>
#define ONE_WIRE_BUS_PIN 2

char temperaturePiec[6];
char temperatureWoda[22];

DeviceAddress Piec = { 0x28, 0xEC, 0x1, 0xB, 0x1, 0x0, 0x0, 0xB8 };
DeviceAddress Woda = { 0x28, 0x6D, 0x9, 0xB, 0x1, 0x0, 0x0, 0x5B };

  sensors.begin();
 
  sensors.setResolution(Piec, 10);
  sensors.setResolution(Woda, 10);

}

void printTemperature(DeviceAddress deviceAddress)
{
 // Command all devices on bus to read temperature  
sensors.requestTemperatures();  
float tempC = sensors.getTempC(deviceAddress);

   if (tempC == -127.00)
   {
   Serial.print("Error getting temperature  ");
   }
   else
   {
   Serial.print("C: ");
   Serial.print(tempC);
   }
}


void loop()  
{
 
  delay(1000);
  Serial.println();
  Serial.print("Getting temperatures... ");  
  Serial.println();   
 
  Serial.print("Piec:   ");
  printTemperature(Piec);
  Serial.println();
    // send temperature to the MQTT topic
  client.publish("/toopic/temp/piec/", temperaturePiec);
  delay(1000);
 
  Serial.print("Woda:   ");
  printTemperature(Woda);
  Serial.println();
      // send temperature to the MQTT topic
  client.publish("/topic/temp/woda/", temperatureWoda);
   delay(1000);
 
}
 
Odpowiedź
#2
Czesc adrian Wink wróce do domu po 22 to zerkne
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#3
Wkleiłeś albo niepełny kod albo mam złe biblioteki sprawdź
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#4
Podaj proszę pełny kod
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości