Stránka 1 z 1

MĚŘENÍ TEPLOTY (WEBSERVER)- PROBLÉM!

Napsal: 25 bře 2019, 18:30
od Adoos14
Ahoj, zkoušel jsem měřit teplotu pomocí snímače DS18B20. Vše šlo hladce, až do okamžiku, kdy mi tzv. "zamrzla teplota" na webserveru, seriový monitor teplotu ukazuje správně, ale na web ji program posílá špatně. Přikládám program + foto. Budu moc rád za každou pomoc ! Díky!

Re: MĚŘENÍ TEPLOTY (WEBSERVER)- PROBLÉM!

Napsal: 25 bře 2019, 21:59
od jankop
Vidím rozpor v tom, že na serial posíláš Serial.print(sensors.getTempCByIndex(0));, ale na web sensors.getTempC(deviceAddress);
Tak myslím, že v tom druhým je nějaká chyba, třeba adresy. Mimochodem, v tom webu bych řekl, že nemáš standardně ukončenou http hlavičku.

Re: MĚŘENÍ TEPLOTY (WEBSERVER)- PROBLÉM!

Napsal: 26 bře 2019, 07:07
od pavel1tu
Já v kodu nevidím žádné odesílání na "server" ale běžící server na arduinu ?

PS: kdyby něco neberte mě vážně a moje zprávy kontrolujte antivirotikem - řádí nám tu spalničky

Re: MĚŘENÍ TEPLOTY (WEBSERVER)- PROBLÉM!

Napsal: 26 bře 2019, 09:58
od Adoos14
pavel1tu píše:
26 bře 2019, 07:07
Já v kodu nevidím žádné odesílání na "server" ale běžící server na arduinu ?

PS: kdyby něco neberte mě vážně a moje zprávy kontrolujte antivirotikem - řádí nám tu spalničky

Mohl bys mi tedy poradit jaký příkaz bych tam měl dodat prosím? Děkuji, A.K

Re: MĚŘENÍ TEPLOTY (WEBSERVER)- PROBLÉM!

Napsal: 26 bře 2019, 10:02
od Adoos14
jankop píše:
25 bře 2019, 21:59
Vidím rozpor v tom, že na serial posíláš Serial.print(sensors.getTempCByIndex(0));, ale na web sensors.getTempC(deviceAddress);
Tak myslím, že v tom druhým je nějaká chyba, třeba adresy. Mimochodem, v tom webu bych řekl, že nemáš standardně ukončenou http hlavičku.
Jak to přesně myslíš? IP a MAC?. Díky

Re: MĚŘENÍ TEPLOTY (WEBSERVER)- PROBLÉM!

Napsal: 26 bře 2019, 18:06
od jankop
Ahoj myslel jsem to takhle, čteš teplotu dvěma různými příkazy

Kód: Vybrat vše

sensors.getTempCByIndex(0)
sensors.getTempC(deviceAddress);
Ten první funguje a ten druhý nefunguje. Tak je v něm asi nějaká chyba a ta chyba je nejpravděpodobněji v adrese zařízení.
Můžeš zkusit třeba tuhle úpravu

Kód: Vybrat vše

...
void getTemperature(const uint8_t param)
{
  tempC = sensors.getTempCByIndex(param);
  tempF = DallasTemperature::toFahrenheit(tempC);
}

void loop() 
{
Ethernet.maintain();
  // požádáme senzor o hodnotu teploty
  sensors.requestTemperatures();               
  Serial.print("Teplota je: ");
  // tento řádek je vysvětlený v článku
  Serial.print(sensors.getTempCByIndex(0));    
  Serial.println(" stupnu Celsia");
  delay(1000);
  
  sensors.requestTemperatures();
  sumTempC = sumTempF = 0.0;
    getTemperature(0);
  sumTempC += tempC;
  sumTempF += tempF;
  getTemperature(1);
  ...