EasyIoT DS18B20 Temperature Sensor – ESP8266

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 <[email protected]>
See: blog.lewys.eu for details

Original Code:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

V1.0 – first version

Created by Igor Jarc <[email protected]>
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);
}
}

And some pictures:
image

image

ESP ARDUINO PERFBOARD THING

I actually managed to produce something that is NEAT

and well laid out (in my opinion)

Parts:

• Arduino Nano
• ESP-01
• 5-3v Level Shifter
•  Perfboard
• Bunch of headers
• Some wire
• Soldering Iron + 0.3mm Solder
• Dremel to clean things and cut things and stuff

 

As you can see in the photos:

The board as a whole:

Whole Board

The board with components removed:

Components Gone

The underside of the board:

Underside

Cleaned edges with Dremel:

(i got a Dremel for christmas btw)
(i got a Dremel for christmas btw)

The things I have to add still:

Also, as you can see, theres a notch missing from the Arduino near the ICSP pins, I used my Dremel to grind that away (theres no traces there as far as i can tell) so that the ESP module fits so perfectly there and the whole package fits inside the dimensions of the perf board 😀

Arduino pin 2 for DHT22, 13 for relay.
Arduino pin 2 for DHT22, 13 for relay.

This node has been added to my EasyIoT Server as a secondary relay node for the time being, but I want to get my hands on a DHT22 to add a temp/humidity sensor to my bedroom 😀

Then I can start expanding to other rooms in the house! MWAHAHAA

MY BEDROOM LIGHT IS NOW CONNECTED TO WIFI

Using a full size Arduino Uno modified to 3.3v, and that weird shield I built, modified to software serial pins 10 and 11, and also to add a power input of 5v that gets regulated to 3.3v on both the shield for the ESP8266, and the arduino for… itself?

It connects to a Raspberry Pi running the latest version of Raspbian and EasyIoT Server, I figured out their API without even a mention of there BEING ONE ON THEIR WEBSITE (they don’t mention it anywhere but i noticed a mention of it in the console log and figured it out)

The ESP8266 01 type connects to the main WiFi, then to the server, from then I can browse to the IP of the server and theres a beautiful interface 😀

The EasyIoT server also supports the RasPi GPIO and the MySensors stuff, so Im gonna use that for things like doors, and temp/humidity sensors

Photos will come soonish:

image

image

image

image

image

Low power Arduino Pro Mini

I butchered up one of the almost-broken Pro Minis I have, its a 16Mhz version so not sure if its going to just run at a lower frequency or be unstable, but all I will need it to do is sleep and wake up every now and then to send a reading from a sensor!

Im going to get some of those NRF24 something radios as they seem to have far better range and support than the things I HAVE been using hahaa,

Basically, I removed BOTH LEDs (forgot there was a PIN13 LED on there D:  could have left that

and the regulator was also removed.

Powered it via 3.3v from my USB TTL adapter and uploaded a blink sketch, probed an LED onto 13 and GDN (yes GDN hueeee)
and it blinks 😀

so I can use this one soon.

DIY Project: Home Automation

Update: This project died when I got a job and can afford off the shelf automation stuff :’)

It might come back when I start adding stuff like blinds and air conditioning control!

 

This project is basically me wanting to be able to automate my house but not wanting to fork over heaps of money for pre made systems.

I’m a bit lazy with details so if there’s any questions you have please comment below!

Newer Update v2.5

Ok, so it just occured to me that I could have bent the antenna down flat so that I wouldn’t have had to make any holes….

 

image
As you can see its all in a box now because reasons plus annoying bright light

I got around to making a few changes, I’ll let the images do the talking for me:

image
Used spare LEDs to attach the fan, deal with it. Box had a USB 125khz RFID reader in it heh
image
Melted the hole for the antenna with soldering iron, then cleaned tip and sliced off excess plastic with stanley knife
image
single channel relay board now in use to save space
image
my god i did a crappy solder job on this one D:
image
dem pro cut outs
image
don’t tell me how crappy the fan cut out is. i know.
image
cables kept getting caught in the fan so i fixed them.
image
close-up of ParaShield with the fan header, and RF module shown.
image
the area that I cut out of the proto shield to fit it over the ethernet jack
image
used a resistor leg for GND to the RF module, now i can tap into GND from that line as well B)
image
blob of blue tack was used to hold things in place while i soldered
image
finally, a nice and snug fit, that looks not like shit! xD

 

A few notable things, white LED on ParaShield (I’m calling it that now) has been replaced with a less bright red one. Transmitter repositioned and wired a little nicer, Ethernet hole cut (Stanley knife, metal cutters and pliers).
Proper helical antenna added to both units, Rx unit now has single channel relay.
Also, I shoved it all in a box and added a 12v fan running off 5v from the ParaShield (may add fan controls/monitoring later) so nothing goes wrong with summertime here.
I’m just waiting for the other 433mhz things to add a manual light switch, and the infrared control unit. Codes all ready but need the RF receiver D:

.

Also, on the app side of things,
I added an all on/off section so when this projects complete, I’ll be able to stand out the front of my house, say something awesome, hit a button, and the whole house lights up or goes dark 😀 XD

image

image

New update V2
So I discovered this thing:
http://www.ebay.com.au/itm/291262467339

I remember reading about this a while ago but didn’t care for arduino or anything much then.
But now I’m looking at this and seeing
This+Relay+PSU = self contained without need for base controller!
Plus, did I mention ITS FOUR FREAKING DOLLARS
how could I NOT order two!

When they arrive I’ll have a play around see if I can figure out how to control them 🙂
Will post here when I do!
In other news: I ordered proper 433mhz antennas for the things, and found the PS move squigy ball.
Will get a box soon for it all haha,
I’m also preparing some LED strip on the front veranda to be controlled by my UI. And I’m developing an android app (will design a tablet version later)
Using Tasker app factory!
Early screenshot attached!

image
Other photos:

image
the two channel relay is sooo bigg D:

Newer update:
I found chunks of a broken PlayStation move controller, for now I’ve soldered some resistor legs to the rgb led breakout board, and have the rgb led on the base station for reasons,

Hopefully further down the track I’ll be able to turn on a mood light fading through, (although once it starts fading how do I stop it…?)

Or even notifications for things!

It also acts as a status light,
On sending an on command it flashes green twice, the off command has two red flashes.
An unused but implemented command gives three orange flashes.

I need to figure out how to flash an error if an unrecognized command is received…

Also I hope to find the sphere from the PS move. And to mount the led on the proto shield, maybe move the rf transmitter to make a cut out for the Ethernet jack,
And then try my luck at designing a special case for it all.
Either adapting an etherten case, or making a shitty one from scratch.
YouTube video showing on/off light
Signal light: http://youtu.be/ejXlYe17N8U

————————————————————-

New update: I got it working again 🙂
Not sure what was wrong but I rewrote the code and now it works hahaha

image

 

image

Its a bit slow probably because of the speed I have the radios set to, but oh well doesn’t matter.
I soldered everything together into a little clump, minimising wires, and made a shield for the transmitter so it sits neatly atop the etherten.

image

I’ll be able to add other things to the proto shield later 🙂

Also. Found a leostick under my bed but I’m having issues uploading code to it. Going to use it to make that light switch if I get it working 😀

LOOK AT ME I BROKE IT SOMEHOW
Went for a trip to jaycar and bought some supplies, and a smaller soldering iron
When I got home I took down the roof unit, attached shorter cables so it would fit in the little box, and put it back together,
But just my luck, it’s not working now!

I send commands but it doesn’t trigger the relay….

I’ll have to connect it and look at serial monitor to see if it’s getting the command

I’ll also add some code and an LED that blinks when it gets a command….
Oh, and maybe the code to light that emergency light if a pin goes low?

I should probably remove all the pin headers and solder right to the board actually…

Or to a proto shield….

The current state of the project consists of an arduino pro mini clone, that listens on the 433mhz band for a command, and turns on a relay depending on the command.

There is a Freetronics Etherten acting as base station, connected to my LAN, and a 433mhz transmitter, this responds to http requests by sending various commands to the ceiling unit.

Its easy to add additional remote units and set up controls for them, which I plan on doing  when I get blinds for my windows.

image

image

I also have a raspberry pi running Rasbian that listens for a button press, which is wired to our 20 year old retro doorbell, when the button is pushed the Pi sends a pushover notification to my phone/pebble, as well as plays a doorbell sound throughout the house  directly connected speakers.

I’m also going to be setting up Asterix or something on this to add Cisco VoIP phones around the house.

I have plans for an analog control panel too, that has physical buttons connected to an arduino, to send commands to the various other arduino around the house.

For example, a light control panel, push one button to send off commands to all lights in the house, or indivuaul etc.

I also will be adding a sensor to the mailbox, probably solar powered, that sends a command in to the house when mail goes in, either emailing me, maybe a photo?
Sending my pebble/phone a notification, or just lighting up an LED on the control panel to indicate new mail!

image

dump of plans, thoughts and ideas

Backup battery for ceiling arduino, mount to proto shield, put in case

AC to 5v transformer.

Emergency lighting

Crude Diagram:

AC>5vDC>Batt>Arduino>LED
>—->3.3v^

5v power supply also connects to 3.3v regulator, which arduino reads, when this drops to 0v turn on led_pin.

Ping method won’t work on light because its offline! Doh!

if(ping 192.168.1.1 = reply){

digitalWrite(4, HIGH);

else({

digitalWrite(4, LOW);

}

Arduino pro mini based light switch

Send same on/off signals as http requests (30/31)

3 indicates start bit

Second bit is state to switch relay.

Purchase or make two position momentary wall mount switch and wire buttons up to send signals to light.

Ethernet arduino add motor shield and use directly for blinds control or use separate mini arduino ?

Undecided. Probably mini.

Can adapt existing code for light to operate blinds servo or stepper motor.

And can easily send different control bits from existing code in etherten. Easy to add more sections ! 😀