Oldal: 1 / 1

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

Elküldve: 2018. március 27. kedd, 21:01
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!

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

Elküldve: 2018. március 28. szerda, 5:24
Szerző: vargham
A hardver és a forráskód ismerete nélkül sajnos senki sem tud távgyógyítani.

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

Elküldve: 2018. március 28. szerda, 11:26
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

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

Elküldve: 2018. március 28. szerda, 17:25
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.

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

Elküldve: 2018. március 28. szerda, 21:19
Szerző: csegebiga
a void loop() ban a
return;
mit csinál?
https://www.arduino.cc/reference/en/lan ... re/return/

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

Elküldve: 2018. március 28. szerda, 21:36
Szerző: csegebiga
ja, már értem.
nem szoltam. :)

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

Elküldve: 2018. március 29. csütörtök, 7:34
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

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

Elküldve: 2018. március 29. csütörtök, 14:08
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.

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

Elküldve: 2018. március 29. csütörtök, 16:01
Szerző: Vadlud
Igen, ez nekem is feltűnt.

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

Elküldve: 2018. április 6. péntek, 16:19
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);
}