ESP8266 Wifi temperatur Logger (3 / 4 steg)
Steg 3: Arduino Setup och skiss
ESP8266 till Arduino
---------------------------------------------------------------------------------------------------------
UTXD--> RX Arduino
CH_PD <> - VCC
RST
VCC -> VCC Arduino
---------------------------------------------------------------------------------------------------------
GND -> GND Arduino
GPIO2
GPIO0
URXD--> TX Arduino
---------------------------------------------------------------------------------------------------------
Digital temperaturgivare till Arduino
---------------------------------------------------------------------------------------------------------
Arduino GND--> DS18B20 GND(1)--> DS18B20 VDD(3)
DS18B20 DQ(2)--> 4.7K R -> VCC Arduino 3.3V
---------------------------------------------------------------------------------------------------------
#include < stdlib.h >
#include < SoftwareSerial.h >
#include < OneWire.h >
#include < DallasTemperature.h >
#define ONE_WIRE_BUS 8
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire); < /p >< p >
#define SSID "[YOUR_SSID]"
#define PASS "[YOUR_PASSWORD]"
#define IP "184.106.153.149" / / thingspeak.com
Sträng få = "GET /update? nyckel = [THINGSPEAK_KEY] & Fält1 =";
SoftwareSerial monitor (10, 11); RX, TX
void setup()
{
Monitor.BEGIN(9600);
Serial.BEGIN(9600);
sensors.BEGIN();
sendDebug("AT");
Delay(5000);
IF(Serial.find("OK")) {
Monitor.println ("RECEIVED: OK");
connectWiFi();
}
}
void loop() {
sensors.requestTemperatures();
flyta tempC = sensors.getTempCByIndex(0);
tempC = DallasTemperature::toFahrenheit(tempC);
char buffer [10].
String tempF = dtostrf (tempC, 4, 1, buffert);
updateTemp(tempF);
Delay(60000);
}
void updateTemp(String tenmpF) {
Sträng cmd = "AT + CIPSTART = \"TCP\", \" ";
CMD + = IP;
CMD + = "\",80";
sendDebug(cmd);
Delay(2000);
IF(Serial.find("Error")) {
Monitor.Print ("RECEIVED: fel");
hemkomst.
}
CMD = få;
CMD += tenmpF;
CMD + = "\r\n";
Serial.Print("at+CIPSEND=");
Serial.println(cmd.length());
om (Serial.find(">")) {
Monitor.Print(">");
Monitor.Print(CMD);
Serial.Print(CMD);
} annat {
sendDebug("AT+CIPCLOSE");
}
IF(Serial.find("OK")) {
Monitor.println ("RECEIVED: OK");
} annat {
Monitor.println ("RECEIVED: fel");
}
}
void sendDebug(String cmd) {
Monitor.Print ("Skicka:");
Monitor.println(CMD);
Serial.println(CMD);
}
booleska connectWiFi() {
Serial.println("at+CWMODE=1");
Delay(2000);
Sträng cmd = "AT + CWJAP = \" ";
CMD + = SSID;
CMD + = "\", \ "";
CMD + = PASS;
CMD + = "\" ";
sendDebug(cmd);
Delay(5000);
IF(Serial.find("OK")) {
Monitor.println ("RECEIVED: OK");
return true;
} annat {
Monitor.println ("RECEIVED: fel");
returnera false;
}
}
* UPPDATERA. En gång din gjort tester samt uppföljning. Ladda den samma skissen utan SoftwareSerial bildskärm. Det gav mig bättre resultat när står ensam.
#include
#include
#include
#define ONE_WIRE_BUS 8
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensorer (& oneWire);
#define SSID "[YOUR_SSID]"
#define PASS "[YOUR_PASSWORD]"
#define IP "184.106.153.149" / / thingspeak.com
Sträng få = "GET /update? nyckel = [THINGSPEAK_KEY] & Fält1 =";
void setup()
{
Serial.BEGIN(9600);
sensors.BEGIN();
Serial.println("at");
Delay(5000);
IF(Serial.find("OK")) {
connectWiFi();
}
}
void loop() {
sensors.requestTemperatures();
flyta tempC = sensors.getTempCByIndex(0);
tempC = DallasTemperature::toFahrenheit(tempC);
char buffer [10].
String tempF = dtostrf (tempC, 4, 1, buffert);
updateTemp(tempF);
Delay(60000);
}
void updateTemp(String tenmpF) {
Sträng cmd = "AT + CIPSTART = \"TCP\", \" ";
CMD + = IP;
CMD + = "\",80";
Serial.println(CMD);
Delay(2000);
IF(Serial.find("Error")) {
hemkomst.
}
CMD = få;
CMD += tenmpF;
CMD + = "\r\n";
Serial.Print("at+CIPSEND=");
Serial.println(cmd.length());
om (Serial.find(">")) {
Serial.Print(CMD);
} annat {
Serial.println("at+CIPCLOSE");
}
}
booleska connectWiFi() {
Serial.println("at+CWMODE=1");
Delay(2000);
Sträng cmd = "AT + CWJAP = \" ";
CMD + = SSID;
CMD + = "\", \ "";
CMD + = PASS;
CMD + = "\" ";
Serial.println(CMD);
Delay(5000);
IF(Serial.find("OK")) {
return true;
} annat {
returnera false;
}
}