Wemos d1 mini+ DHT22 shiel segítséget kérek.

ESP8266, ESP32 chipek és az ESP-xx modulok. Programozási nyelvek, trükkök, hardware tippek.
Vadlud
Újonc
Újonc
Hozzászólások: 4
Csatlakozott: 2018. március 27. kedd, 19:50

Wemos d1 mini+ DHT22 shiel segítséget kérek.

Hozzászólás Szerző: Vadlud »

Üdv Mindenkinek! Egy kis segítséget szeretnék kérni. Lenne egy projektem, ami nem nagy szám, de nekem ez az első és mindjárt meg is akadtam. Wemos d1 minivel és DHT22 shield párosításával szeretnék egy amolyan időjárásjelzőt építeni, amit neten nyomon tudok követni. Egy üvegház automatizálásához lenne kontroll célra. Hibakód nélkül feltelepítettem mindent, de Thingspeak-re csak egyszer küld adatot. Ha elveszem tőle a tápot és újra adok neki, újra küld egyet, tehát nincs automatikus frissítés. Ha valaki ismeri a probléma megoldását, kérem segítsen. Köszönöm!
vargham
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2014. január 8. szerda, 8:32

Re: Wemos d1 mini+ DHT22 shiel segítséget kérek.

Hozzászólás Szerző: vargham »

A hardver és a forráskód ismerete nélkül sajnos senki sem tud távgyógyítani.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Wemos d1 mini+ DHT22 shiel segítséget kérek.

Hozzászólás Szerző: Robert »

Ami hiányzik:


- Keretrendszer
- Használt kiegészítők/lib-ek verziója
- Programkód
- Hibaüzenetállapotjelző illetve a ThingSpeak belső hibajelzése
http://www.tavir.hu - a gazda :)
Vadlud
Újonc
Újonc
Hozzászólások: 4
Csatlakozott: 2018. március 27. kedd, 19:50

Re: Wemos d1 mini+ DHT22 shiel segítséget kérek.

Hozzászólás Szerző: Vadlud »

Több verziót is kipróbáltam mindegyikből, de rendre ugyanazt tapasztalom. Feltöltésnél hibaüzenet nincs.
A jelenlegi állapot:
Arduino-1.8.5
Alalap: WeMos D1 R2 & mini
DHT sensor library by adafruit 1.3.0.


/* DHT22 temperature and humidity data are uploaded to thingspeak using
* WeMOS ESP8266 MCU.
*
* Details: http://embedded-lab.com/blog/iot-temper ... ty-logger/
*/
#include <ESP8266WiFi.h>
#include <DHT.h>
#include "Math.h"
#define DHTTYPE DHT22
#define DHTPIN D4 // DHT22 data pin connects to D4

// Time to sleep (in seconds):
const int sleepTimeS = 0;

DHT dht(DHTPIN, DHTTYPE, 11); // 11 works fine for ESP8266


float prevTemp = 0;
const char* server = "api.thingspeak.com";
String apiKey ="xxxxxxxxxx";
const char* MY_SSID = "xxxxxxxx";
const char* MY_PWD = "xxxxxxxx";
int sent = 0;
void setup() {
Serial.begin(115200);
dht.begin();
connectWifi();

}

void loop() {
float t1,humidity;
//char buffer[10];
humidity = dht.readHumidity(); // Read humidity (percent)
t1 = dht.readTemperature(true); // Read temperature as Fahrenheit
// Check if any reads failed and exit early (to try again).
if (isnan(humidity) || isnan(t1)) {
Serial.println("Failed to read from DHT sensor!");
return;
}


Serial.print(String(sent)+" Temperature: ");
Serial.println(t1);
Serial.print(String(sent)+" Humidity: ");
Serial.println(humidity);
sendTeperatureTS(t1, humidity);
ESP.deepSleep(sleepTimeS*1000000, WAKE_RF_DEFAULT); // Sleep for 60 seconds
}

void connectWifi()
{
Serial.print("Connecting to "+*MY_SSID);
WiFi.begin(MY_SSID, MY_PWD);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}

Serial.println("");
Serial.println("Connected");
Serial.println("");
}//end connect

void sendTeperatureTS(float temp1, float temp2)
{
WiFiClient client;

if (client.connect(server, 80)) { // use ip 184.106.153.149 or api.thingspeak.com
Serial.println("WiFi Client connected ");

String postStr = apiKey;
postStr += "&field1=";
postStr += String(temp1);
postStr += "&field2=";
postStr += String(temp2);
postStr += "\r\n\r\n";

client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
delay(1000);

}//end if
sent++;
client.stop();
}//end send


Thingspeak részéről sincs hibaüzenet.
Avatar
csegebiga
Chipgyilok
Hozzászólások: 288
Csatlakozott: 2015. március 27. péntek, 21:27

Re: Wemos d1 mini+ DHT22 shiel segítséget kérek.

Hozzászólás Szerző: csegebiga »

a void loop() ban a
return;
mit csinál?
https://www.arduino.cc/reference/en/lan ... re/return/
Avatar
csegebiga
Chipgyilok
Hozzászólások: 288
Csatlakozott: 2015. március 27. péntek, 21:27

Re: Wemos d1 mini+ DHT22 shiel segítséget kérek.

Hozzászólás Szerző: csegebiga »

ja, már értem.
nem szoltam. :)
Vadlud
Újonc
Újonc
Hozzászólások: 4
Csatlakozott: 2018. március 27. kedd, 19:50

Re: Wemos d1 mini+ DHT22 shiel segítséget kérek.

Hozzászólás Szerző: Vadlud »

Köszönöm Mindenkinek, megtaláltam a megoldást! A programkód volt a hibás, itt találtam egy jót: https://github.com/geofbaum/DHT22-Wemos
Avatar
csegebiga
Chipgyilok
Hozzászólások: 288
Csatlakozott: 2015. március 27. péntek, 21:27

Re: Wemos d1 mini+ DHT22 shiel segítséget kérek.

Hozzászólás Szerző: csegebiga »

Na ja, csak ebben nem küldöd el az espt aludni.
Ez így csak félmegoldás nem?

Érdekes, hogy mennyire más a szervernek összerakott adatcsomag a két példában.
Vadlud
Újonc
Újonc
Hozzászólások: 4
Csatlakozott: 2018. március 27. kedd, 19:50

Re: Wemos d1 mini+ DHT22 shiel segítséget kérek.

Hozzászólás Szerző: Vadlud »

Igen, ez nekem is feltűnt.
cslaci
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2016. december 31. szombat, 18:54

Re: Wemos d1 mini+ DHT22 shiel segítséget kérek.

Hozzászólás Szerző: cslaci »

Igaz, nem DHT22, de én így csináltam (feszültségadatot küld fel percenként):

void loop() {

raw = analogRead(A0);
volt=raw/1023.0;
volt=volt*4.2;

if (client.connect(server,80)) { // api.thingspeak.com
String postStr = apiKey;
postStr +="&field1=";
postStr += String(volt);
postStr += "\r\n\r\n";

client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
}
client.stop();

ESP.deepSleep(60 * 1000000);
}
Válasz küldése