1-Wire 18B20 a thinkspeak (invalid use of void expression)
Napsal: 30 led 2018, 18:12
Dobrý den, potřeboval bych od Vás pomoci. předem to bude určitě nějaká blbost. nejsem nějaký velký programátor. spíš se polehoučku učím.
Mám 5senzorů.Vyčrtl jsme si jejich adresy. chci podle adres vyčíst teploty a ty pak odeslat na thinkspeak.
Když sestavuju string do THS (thuinkspeak) zavolám si vypsání teploty dle adresy a pokračuju na další snímač. Ovšem při kompilaci mě to vypíše chybu viz dole. Bude to chyba o pointrech atd. ale jsem v tom holt blbej
Jedu na Wemosu D1mini. V kodu je ještě pozustatek předchozího projektu (včelařské váhy) proto uspávání wifiny, a ESpčka.. to je ale bez vlivu na tuhle blbou chybu.
Snad z popisu a z kodu to bude trochu patrné.
Děkuju všem za cokoliv co mě pomůže, případně dovysvětlím co je potřeba.
Díky moc.
Chyba :
C:\Users\Nehet\Desktop\Kotelna\Kotelna.ino: In function 'void loop()':
Kotelna:94: error: invalid use of void expression
dataToThingSpeak+=String(printTemperature(Probe01));
^
Kotelna:96: error: invalid use of void expression
dataToThingSpeak+=String(printTemperature(Probe02));
^
Kotelna:98: error: invalid use of void expression
dataToThingSpeak+=String(printTemperature(Probe03));
^
Kotelna
error: invalid use of void expression
dataToThingSpeak+=String(printTemperature(Probe04));
^
Kotelna:102: error: invalid use of void expression
dataToThingSpeak+=String(printTemperature(Probe05));
^
exit status 1
invalid use of void expression
Mám 5senzorů.Vyčrtl jsme si jejich adresy. chci podle adres vyčíst teploty a ty pak odeslat na thinkspeak.
Když sestavuju string do THS (thuinkspeak) zavolám si vypsání teploty dle adresy a pokračuju na další snímač. Ovšem při kompilaci mě to vypíše chybu viz dole. Bude to chyba o pointrech atd. ale jsem v tom holt blbej

Jedu na Wemosu D1mini. V kodu je ještě pozustatek předchozího projektu (včelařské váhy) proto uspávání wifiny, a ESpčka.. to je ale bez vlivu na tuhle blbou chybu.
Snad z popisu a z kodu to bude trochu patrné.
Děkuju všem za cokoliv co mě pomůže, případně dovysvětlím co je potřeba.
Díky moc.
Kód: Vybrat vše
/*Kotelna*/
//new chanell : Channel ID: 412xxx
//API KEY: read : xxxx35ETOOT4RNNC
//API KEy write : xxxxxOY6SRATRK841
#include <OneWire.h>
#include <Wire.h>
#include <DallasTemperature.h>
#include <ESP8266WiFi.h>
#define ONE_WIRE_BUS D7
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
WiFiClient client;
ADC_MODE(ADC_VCC);
extern "C" {
#include "user_interface.h"
}
const char* ssid = "G2_8805";
const char* password = "830xxxxx9";
const char* server = "api.thingspeak.com";
const char* api_key = "xxxxVF35ETOOT4RNNC";
DeviceAddress Probe01 = { 0x28, 0x8A, 0xB1, 0x40, 0x04, 0x00, 0x00, 0xC7 }; //Kotelzpatecka
DeviceAddress Probe02 = { 0x28, 0xCC, 0x92, 0x40, 0x04, 0x00, 0x00, 0xB6 }; //Kotelvystup
DeviceAddress Probe03 = { 0x28, 0x4D, 0x8D, 0x40, 0x04, 0x00, 0x00, 0x78 }; //Stoupacka
DeviceAddress Probe04 = { 0x28, 0x9A, 0x80, 0x40, 0x04, 0x00, 0x00, 0xD5 }; //Zpatecka
DeviceAddress Probe05 = { 0x28, 0xE1, 0xC7, 0x40, 0x04, 0x00, 0x00, 0x0D }; //3CVvstup
void setup() {
Serial.begin(115200);
delay(10);
WiFi.begin(ssid, password);
sensors.begin();
sensors.setResolution(Probe01, 10);
sensors.setResolution(Probe02, 10);
sensors.setResolution(Probe03, 10);
sensors.setResolution(Probe04, 10);
sensors.setResolution(Probe05, 10);
}
void loop() {
WiFi.forceSleepWake();
delay( 10 );
WiFi.mode( WIFI_STA );
WiFi.begin(ssid, password);
delay(300);
float vdd = (ESP.getVcc() / 1024.00f)*1.22f;
sensors.requestTemperatures();
Serial.print("Probe 01 temperature is: ");
printTemperature(Probe01);
Serial.println();
Serial.print("Probe 02 temperature is: ");
printTemperature(Probe02);
Serial.println();
Serial.print("Probe 03 temperature is: ");
printTemperature(Probe03);
Serial.println();
Serial.print("Probe 04 temperature is: ");
printTemperature(Probe04);
Serial.println();
Serial.print("Probe 05 temperature is: ");
printTemperature(Probe05);
Serial.println();
Serial.print(vdd);
Serial.println();
if (client.connect(server,80)) {
Serial.println("Connect to ThingSpeak - OK");
sensors.requestTemperatures();
String dataToThingSpeak = "";
dataToThingSpeak+="GET /update?api_key=";
dataToThingSpeak+=api_key;
dataToThingSpeak+="&field1=";
dataToThingSpeak+=String(printTemperature(Probe01));
dataToThingSpeak+="&field2=";
dataToThingSpeak+=String(printTemperature(Probe02));
dataToThingSpeak+="&field3=";
dataToThingSpeak+=String(printTemperature(Probe03));
dataToThingSpeak+="&field4=";
dataToThingSpeak+=String(printTemperature(Probe04));
dataToThingSpeak+="&field5=";
dataToThingSpeak+=String(printTemperature(Probe05));
dataToThingSpeak+=" HTTP/1.1\r\nHost: a.c.d\r\nConnection: close\r\n\r\n";
dataToThingSpeak+="";
client.print(dataToThingSpeak);
Serial.println(dataToThingSpeak);
}
while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println(".....");
WiFi.disconnect();
delay(2);
Serial.println("Wifi disconnect");
WiFi.mode(WIFI_OFF);
delay(2);
Serial.println("Wifi OFF");
WiFi.forceSleepBegin();
Serial.println("Force sleep begin");
delay(2);
Serial.println("Spanek 5sec");
delay(10000*10); // 10 sec
}
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
}
C:\Users\Nehet\Desktop\Kotelna\Kotelna.ino: In function 'void loop()':
Kotelna:94: error: invalid use of void expression
dataToThingSpeak+=String(printTemperature(Probe01));
^
Kotelna:96: error: invalid use of void expression
dataToThingSpeak+=String(printTemperature(Probe02));
^
Kotelna:98: error: invalid use of void expression
dataToThingSpeak+=String(printTemperature(Probe03));
^
Kotelna
dataToThingSpeak+=String(printTemperature(Probe04));
^
Kotelna:102: error: invalid use of void expression
dataToThingSpeak+=String(printTemperature(Probe05));
^
exit status 1
invalid use of void expression