I needed a temperature node, but I didn’t have a DHT22 temp/humidity sensor!?
So I modified the example sketch for the DHT to use a DS18B20 Digital Temperature Sensor instead!
It works great!
The sensor is connected as shown here:
http://www.hobbytronics.co.uk/ds18b20-arduino
Heres the code:
/*
DS18B20 Digital Sensor Node Sketch for EasyIoT Server
Modified by Lewys Martin <l@lewys.eu>
See: blog.lewys.eu for details
Original Code:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
V1.0 – first version
Created by Igor Jarc <igor.jarc1@gmail.com>
See http://iot-playground.com for details
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
version 2 as published by the Free Software Foundation.
*/
#include <Esp8266EasyIoT.h>
#include <SoftwareSerial.h>
#include <DallasTemperature.h>
#include <OneWire.h>
#define CHILD_ID_TEMP 1
#define SENSOR_DIGITAL_PIN 2
Esp8266EasyIoT esp;
SoftwareSerial serialEsp(10, 11);
OneWire oneWire(SENSOR_DIGITAL_PIN);
DallasTemperature sensors(&oneWire);
float lastTemp;
Esp8266EasyIoTMsg msgTemp(CHILD_ID_TEMP, V_TEMP);
void setup()
{
serialEsp.begin(9600);
Serial.begin(115200);
Serial.println(“EasyIoTEsp init”);
esp.begin(NULL, 3, &serialEsp, &Serial);
//esp.begin(NULL, &serialEsp);
esp.present(CHILD_ID_TEMP, S_TEMP);
sensors.begin();
}
void loop()
{
while(!esp.process());
sensors.requestTemperatures();
float temperature = (sensors.getTempCByIndex(0));
if (isnan(temperature)) {
Serial.println(“Failed reading temperature from sensor”);
}
else if (temperature != lastTemp)
{
lastTemp = temperature;
esp.send(msgTemp.set(temperature, 1));
Serial.print(“T: “);
Serial.println(temperature);
}
}


code updated:
#include
#include
#include
#include
#define CHILD_ID_TEMP 1
#define SENSOR_DIGITAL_PIN 2
Esp8266EasyIoT esp;
SoftwareSerial serialEsp(10, 11);
OneWire oneWire(SENSOR_DIGITAL_PIN);
DallasTemperature sensors(&oneWire);
float lastTemp;
Esp8266EasyIoTMsg msgTemp(CHILD_ID_TEMP, V_TEMP);
void setup()
{
serialEsp.begin(9600);
Serial.begin(115200);
Serial.println(“EasyIoTEsp init”);
esp.begin(NULL, 3, &serialEsp, &Serial);
//esp.begin(NULL, &serialEsp);
pinMode(13, OUTPUT);
// Serial.println(“present S_TEMP”);
esp.present(CHILD_ID_TEMP, S_TEMP);
sensors.begin();
}
void loop()
{
while(!esp.process());
sensors.requestTemperatures();
float temperature = (sensors.getTempCByIndex(0));
if (isnan(temperature)) {
Serial.println(“Failed reading temperature from DS1820”);
}
else if (temperature != lastTemp)
{
lastTemp = temperature;
esp.send(msgTemp.set(temperature, 1));
Serial.print(“T: “);
Serial.println(temperature);
}
}