Diskuze: ESP8266 a senzor HC-SR04 odeslani data na Domosticz

Člen

Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Ahoj, pouze na první pohled, mohlo by to být tím, že závorka na obrázku nemá začátek?
Priste vkladej kod do tagu, protoze toto se neda cist. Zkontroluj si jestli ma zarizeni spravne pridelenou vychozi branu. Dale pokud navazujes spojeni na domenove jmeno, mel by jsi mit nastaveny dns server. Urcite bych vymenil domenove jmeno za ip adresu aspon pro zacatek. Do budoucna urcite predelat na domenove jmeno.
Zavorka je o tri radky vis za while, ale vzheledem ke vlozenemu kodu bez tagu ...
Ahoj, předpokládám, že SSID a heslo k APčku máš vyplněné a jenom jsi to sem nehodil ...
Můžeš sem přihodit výpis toho co ti ESP pošle na sériový port? Ať víme, kde se to sekne …
Ahoj ,SSID a heslo k APčku mám vyplněné ,výpis toho co mi ESP pošle na sériový port jsem dal do tagu
Connecting to doma
.
WiFi connected
IP address:
192.168.0.241
Sending Values to server...:
0.00
0.00
Starting variables......
Average values: 0
0.00
46.08
cm
Sending Values to server...:
46.08
46.08
Starting variables......
Average values: 0
0.00
46.49
cm
Sending Values to server...:
46.49
46.49
Tcp Port 8080 máš na tom PC ve firewallu povolený?
Tcp Port 8080 mám povolený mám podobný kod který mi odesílá taky na Domosticz zalévaní kytek a ten je funkcní vložím ho jsem
#include <ESP8266WiFi.h>
//Connect to BSSID
const int sleepTimeS = 5; // sleep time in minutes
const char* ssid = "doma";
const char* password = "";
WiFiClient client;
// Domoticz server info
const char * domoticz_server = "192.168.0.41";
int port = 8080; //Domoticz port
int idx = 15; //IDX for this virtual sensor, found in Setup -> Devices
const int powersoil = D8; // Digital Pin 8 will power the sensor, acting as switch
const long interval = 400000;
const long interval1 = 100;
float Rain = 0;
const unsigned reading_count = 10; // Numbber of readings each time in order to stabilise
unsigned int analogVals[reading_count];
unsigned int counter = 0;
unsigned int values_avg = 0;
int RainStat = 0; // Status Variable for humidity- It can be Dry, Wet, Normal.
void setup() {
// initialize serial communication at 115200 bits per second:
Serial.begin(115200);
delay(10);
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
pinMode(powersoil,OUTPUT);
delay(200);
}
void loop() {
Serial.print("Starting variables.");
delay(500);
Serial.print("..");
delay(250);
Serial.println("...");
delay(250);
values_avg = 0;
Rain = 0;
counter = 0;
Serial.print("Average values: ");
Serial.println(values_avg);
Serial.print("Rain values: ");
Serial.println(Rain);
Serial.print("Counter values: ");
Serial.println(counter);
Serial.println("Powering module ON");
digitalWrite(powersoil, HIGH);
delay(1000);
// read the input on analog pin 0:
for( counter = 0; counter < reading_count; counter++){
Serial.println("Reading probe value...:");
analogVals[reading_count] = analogRead(A0);
delay(100);
values_avg = (values_avg + analogVals[reading_count]);
Serial.println(analogVals[reading_count]);
Serial.print("Total Readings value...:");
Serial.println(values_avg);
}
values_avg = values_avg/reading_count;
Serial.print("Average Readings value...:");
Serial.println(values_avg);
// make average value
Rain = map(values_avg,0,400,0,100);
// print out the value the sensor reads:
Serial.print("Average humidity value...:");
Serial.println(Rain);
delay(interval1);
Serial.println("Powering module off");
digitalWrite(powersoil, LOW);
delay(interval);
RainStat = RainStatFunction(Rain);
printInfo();
Serial.print("Entering deep-sleep mode for Xmin*60 sec..");
delay(1000);
Serial.print("...");
delay(1000);
Serial.println("...");
delay(1000);
Serial.println("ESP8266 in sleep mode");
ESP.deepSleep(sleepTimeS * 50000 * 60, WAKE_RF_DEFAULT);
delay(100);
}
int RainStatFunction(int Rain){
int RainStat = 0;
if( Rain >40 && Rain <80){
RainStat = 0;//Normal Soil
}
else if( Rain >=0 && Rain <=40){
RainStat = 2;//Dry Soil
}
else if( Rain >= 80){
RainStat = 3;//Wet Soil
}
Serial.println(RainStat);
return RainStat;
}
void printInfo()
{
// Domoticz format /json.htm?type=command¶m=udevice&idx=IDX&nvalue=0&svalue=Rain;Rain_STAT
if (client.connect(domoticz_server,port)) {
Serial.println("Sending Values to server...:");
Serial.println(RainStat);
client.print("GET /json.htm?type=command¶m=udevice&idx=");
client.print(idx);
client.print("&nvalue=");
client.print(Rain);
client.print("&svalue=");
client.print(RainStat);
client.println(" HTTP/1.1");
client.print("Host: ");
client.print(domoticz_server);
client.print(":");
client.println(port);
client.println("User-Agent: Arduino-ethernet");
client.println("Connection: close");
client.println();
client.stop();
Serial.println(Rain);
}
}
Teď jsem si ještě všiml, na konci odesílání dát serveru máš jako poslední řádek "Cm", namísto prázdného radku... Server čeká na další hlavičky, ty ale nedorazí a tak požadavek server zahodí...
Zobrazeno 9 zpráv z 9.