//extern "C" { // #include "user_interface.h" //} #include #include #include #include const char* ssid = "Livebox-37cc"; const char* password = "8A6060920A8A86896F770F2C47"; const int sleepTime = 60; //Power down WiFi for 6 seconds // int status = WL_IDLE_STATUS; // the Wifi radio's status WiFiClient client; // Dallas #define ONE_WIRE_BUS 2 // DS18B20 pin OneWire oneWire(ONE_WIRE_BUS); DallasTemperature DS18B20(&oneWire); // domoticz const char * domoticz_server = "192.168.0.10"; //Domoticz port int port = 8080; //Domoticz port int idx = 658; //IDX for this virtual sensor, found in Setup -> Devices float humidity = 0; float temp = 0; void setup() { Serial.begin(9600); } void loop() { initWifi(); readTemp(); printInfo(); //delay(60000); // Wait 60 seconds //wifi_set_sleep_type(LIGHT_SLEEP_T); sleepWifi(); //WiFi.disconnect(); //delay(30000); } void readTemp() { //DS18B20.begin(); DS18B20.requestTemperatures(); temp = DS18B20.getTempCByIndex(0); Serial.print("Temperature: "); Serial.println(temp); } void sleepWifi() { //Time to let the WiFi go to sleep! Serial.println("Sleeping..."); WiFi.disconnect(); WiFi.mode(WIFI_OFF); WiFi.forceSleepBegin(sleepTime * 1000000L); //In uS. Must be same length as your delay delay(sleepTime * 1000); //Hang out at 15mA for 6 seconds WiFi.mode(WIFI_STA); Serial.println("Awake!"); } void initWifi() { WiFi.mode(WIFI_AP); WiFi.begin(ssid, password); //Connect to local Wifi Serial.println(); Serial.print("Connecting to WiFi"); while(WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.println("WiFi Connected!"); } void getWeather() { // Measure Relative Humidity from the HTU21D or Si7021 humidity = 65; //sensor.getRH(); // Measure Temperature from the HTU21D or Si7021 temp = 24; //sensor.getTemp(); // Temperature is measured every time RH is requested. It is faster, therefore, to read it from previous RH measurement with getTemp() instead with readTemp() } void printInfo() { // Domoticz format /json.htm?type=command¶m=udevice&idx=IDX&nvalue=0&svalue=TEMP;HUM;HUM_STAT if (client.connect(domoticz_server,port)) { client.print("GET /json.htm?type=command¶m=udevice&idx="); client.print(idx); client.print("&nvalue=0&svalue="); client.print(temp); client.print(";"); client.print(humidity); client.print(";0"); //Value for HUM_STAT. Can be one of: 0=Normal, 1=Comfortable, 2=Dry, 3=Wet client.println(" HTTP/1.1"); client.print("Host: "); client.print(domoticz_server); client.print(":"); client.println(port); client.println("User-Agent: Arduino-ethernet"); client.println("Connection: close"); client.println(); client.stop(); } }