Fikk min ESP8266 NodeMCU dev kit i posten igår, tanken var å prøve den med Arduino plugin, som er men t å få støtte for den etterhvert.
Jeg skal bruke den hovedsaklig for temp/fukt måling med DHT11 følere, etter litt inspirasjon fra Tasker plugin tråden her på forumet, hvor man kan styre ting via JSON tenkte jeg at det burde jo gå ann å bruke for å overføre målinger fra ESP8266 også.
Kan godt hende det finnes en lettere måte eller mer elegant måte, men jeg syntes nå det var enkelt og greit å få til
Modifisert scriptet fra denne siden http://randomnerdtutorials.com/esp8266-dht11dht22-temperature-and-humidity-web-server-with-arduino-ide/
/*********
Rui Santos
Complete project details at http://randomnerdtutorials.com
*********/
// Including the ESP8266 WiFi library
#include <ESP8266WiFi.h>
#include "DHT.h"
#include <ESP8266HTTPClient.h>
// Uncomment one of the lines below for whatever DHT sensor type you're using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
// Replace with your network details
const char* ssid = "DIN SSID";
const char* password = "DITT PASSORD";
String lastTemp;
String lastFukt;
IPAddress ip(192, 168, 1, 203);
IPAddress subnet(255, 255, 255, 0);
IPAddress gateway(192, 168, 1, 1);
// DHT Sensor
const int DHTPin = 5;
// Initialize DHT sensor.
DHT dht(DHTPin, DHTTYPE);
// Temporary variables
static char celsiusTemp[7];
static char fahrenheitTemp[7];
static char humidityTemp[7];
// only runs once on boot
void setup() {
// Initializing serial port for debugging purposes
Serial.begin(115200);
delay(10);
dht.begin();
// Connecting to WiFi network
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.config(ip, gateway, subnet);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
String s = WiFi.macAddress();
Serial.println(s);
Serial.println(WiFi.macAddress());
// Printing the ESP IP address
Serial.println(WiFi.localIP());
}
// runs over and over again
void loop() {
float temp = dht.readTemperature();
float fukt = dht.readHumidity();
String stringFukt = String(fukt);
String stringTemp = String(temp);
HTTPClient http;
HTTPClient httpFukt;
if(stringTemp != lastTemp)
{
Serial.println("Temp endret");
Serial.println("Temp er:"+stringTemp+" Forrige var:"+lastTemp);
http.begin("http://192.168.1.61/JSON?request=controldevicebyvalue&ref=85&value="+stringTemp);
int httpCode = http.GET();
//http.writeToStream(&Serial);
http.end();
lastTemp = stringTemp;
delay(3000);
}
if(stringFukt != lastFukt)
{
Serial.println("Fukt endret");
Serial.println("Fukt er:"+stringFukt+"Forrige var:"+lastFukt);
httpFukt.begin("http://192.168.1.61/JSON?request=controldevicebyvalue&ref=86&value="+stringFukt);
int httpCodeFukt = httpFukt.GET();
//httpFukt.writeToStream(&Serial);
httpFukt.end();
lastFukt = stringFukt;
delay(3000);
}
delay(30000); //Venter 30 sek før ny måling
}
Laget 2 nye devices i HS3, satt de som dimmbare og satt value range til mellom 0-100 (alle følerne står inne og vil ikke oppleve minusgrader), regner med det ikke er noe problem å sette de til minus ved behov(?)