Wemos d1 mini+ DHT22 shiel segítséget kérek.
Wemos d1 mini+ DHT22 shiel segítséget kérek.
Ü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.
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.
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
- 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
Re: Wemos d1 mini+ DHT22 shiel segítséget kérek.
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.
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.
ja, már értem.
nem szoltam.
nem szoltam.
Re: Wemos d1 mini+ DHT22 shiel segítséget kérek.
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.
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.
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.
Igen, ez nekem is feltűnt.
Re: Wemos d1 mini+ DHT22 shiel segítséget kérek.
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);
}
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);
}