我想使用ESP8266 NodeMCU从DHT11发送数据到URL。我使用的板"NodeMCU 1.0 (ESP-12E Module)"。
我的代码如下:#include <dht.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <SPI.h>
#include <MFRC522.h>
dht DHT;
#define DHTPIN 2
float humidityData;
float temperatureData;
const char* ssid = "My_SSID";
const char* password = "Wifi_Password";
//WiFiClient client;
char server[] = "192.168.1.1";
WiFiClient client;
void setup()
{
Serial.begin(115200);
delay(10);
// Connect to WiFi network
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");
// Start the server
// server.begin();
Serial.println("Server started");
Serial.print(WiFi.localIP());
delay(1000);
Serial.println("connecting...");
}
void loop()
{
int chk = DHT.read11(DHTPIN);
humidityData = DHT.temperature;
temperatureData = DHT.humidity;
Sending_To_phpmyadmindatabase();
delay(30000); // interval
}
void Sending_To_phpmyadmindatabase() //CONNECTING WITH MYSQL
{
if (client.connect(server, 80)) {
Serial.println("connected");
// Make a HTTP request:
Serial.print("GET localhost/project_folder/dht.php?humidity=");
client.print("GET localhost/project_folder/dht.php?humidity=");
Serial.println(humidityData);
client.print(humidityData);
client.print("&temperature=");
Serial.println("&temperature=");
client.print(temperatureData);
Serial.println(temperatureData);
client.print(" "); //SPACE BEFORE HTTP/1.1
client.print("HTTP/1.1");
client.println();
client.println("Host: Your Local IP");
client.println("Connection: close");
client.println();
} else {
// if connection to the server failed:
Serial.println("connection to the server failed");
}
}
当它正常工作时(运行时间的1/3),我得到这个串行消息:
Connecting to Omni_777318
...........
WiFi connected
Server started
192.168.39.178connecting...
connected
GET localhost/michael/dht11.php?humidity=26.00
&temperature=
40.00
但是!2/3的时间,我得到一个奇怪的错误,我不明白:
tail 4
chksum 0xc9
csum 0xc9
v00044840
~ld
Connecting to Omni_777318
.....
ets Jan 8 2013,rst cause:4, boot mode:(3,7)
wdt reset
load 0x4010f000, len 3460, room 16
tail 4
chksum 0xcc
load 0x3fff20b8, len 40, room 4
tail 4
chksum 0xc9
csum 0xc9
v00044840
~ld
这里有人能帮我解决这个问题吗?原因4是硬件看门狗复位,在这种情况下我怀疑是电源问题。在连接阶段,我们观察到电流峰值,如果电源太弱,ESP重新启动,因为电压低于限制。在这种情况下,你必须改变电源,或者在供电端子上放一个几百微法拉的电容器,尽可能靠近ESP。