HamShield Motion Sensor

I am in need of a motion sensor for something, and I have this HamShield that I got from KickStarter recently.

 

heres some code I have mashed together that *MIGHT* make the radio send an SSTV image when motion is triggered..

 

I have to rest it and refine it first! its just mashed code from examples!

[su_expand more_text=”Code:” less_text=”Close Code.”]/* Morse Code Beacon Test beacon will transmit and wait 30 seconds. Beacon will check to see if the channel is clear before it will transmit. */ // Include the HamSheild #include #define PWM_PIN 3 #define RESET_PIN A3 #define SWITCH_PIN 2 // Create a new instance of our HamSheild class, called ‘radio’ HamShield radio; int calibrationTime = 30; boolean sensorActive = false; boolean previousSensorState = false; int pirPin = 4; //the digital pin connected to the PIR sensor’s output // Run our start up things here void setup() { // NOTE: if not using PWM out, it should be held low to avoid tx noise pinMode(PWM_PIN, OUTPUT); digitalWrite(PWM_PIN, LOW); pinMode(pirPin, INPUT); digitalWrite(pirPin, LOW); // prep the switch pinMode(SWITCH_PIN, INPUT_PULLUP); // set up the reset control pin pinMode(RESET_PIN, OUTPUT); digitalWrite(RESET_PIN, HIGH); // Set up the serial port at 9600 Baud Serial.begin(9600); // Send a quick serial string Serial.println(“HamShield FM Beacon Example Sketch”); // Query the HamShield for status information Serial.print(“Radio status: “); int result = radio.testConnection(); Serial.println(result,DEC); // Tell the HamShield to start up radio.initialize(); radio.setRfPower(0); // Configure the HamShield to transmit and recieve on 446.000MHz radio.frequency(145570); Serial.println(“Radio Configured.”); Serial.println(“Sensor Calibration in Progress”); Serial.println(“——————————“); for(int i = 0; i < calibrationTime; i++){ Serial.print(“.”); } Serial.println(“”); Serial.println(“Sensor Calibration Completed”); Serial.println(“Sensor Reading Active”); delay(50); sensorActive = false; previousSensorState = false; } void loop() { // takes the pin value and saves it to the sensorActive boolean value if(digitalRead(pirPin) == HIGH) { sensorActive = true; radio.setModeTransmit(); // Turn on the transmitter delay(250); // Wait a moment radio.SSTVTestPattern(MARTIN1); // send a MARTIN1 test pattern delay(250); radio.setModeReceive(); // Turn off the transmitter } if(digitalRead(pirPin) == LOW) { sensorActive = false; delay(250); } // performs action if the state of the sensor changes // since this is a loop, here is now it works: // if the sensor pin goes HIGH (on) after it being LOW (off), the sensorActive value changes from the previousSensorState value. // it then turns on the LED. when the pin goes LOW (off) it will do the same thing but opposite values. // it also prints status to serial. it will print the time of triggering by providing the number of seconds that have passed since the program started. if(sensorActive != previousSensorState) { if(sensorActive == true) { previousSensorState = sensorActive; Serial.println(“—“); Serial.print(“Motion Detected At: “); Serial.print(millis()/1000); Serial.println(” Seconds”); delay(50); } if(sensorActive == false) { previousSensorState = sensorActive; Serial.println(“—“); Serial.print(“Motion Stopped At: “); Serial.print(millis()/1000); Serial.println(” Seconds”); delay(50); } } } [/su_expand]

LED Coaster update

I got my 3D printer a few days ago(The Micro 3D Printer, last night I sat down for 15 minutes and threw a super basic design together in Google sketchup. (I already had it installed…)

There’s two compartments in the underside, one for the LED ring+digispark, one for the battery+charger.
Not sure how I’ll do the bottom yet. Probably a thin sheet of plastic glued on.

I’ll print it in either white or clear pla, and apply some kind of coating to the top for water resistance.

First print was too small because sketchup messed up my measurements, but here’s some photos anyway:

image

image

image

New one is printing as I type!

And on that note, here’s some photos of the printer.

Note: I do find it prints better without a raft….

image

image

image

image

image

Neopixels, ESP8266, NodeMCU and Arduino IDE

Hello everyone!

Another update on the ESP8266!

Recently, an Arduino compatible IDE was released for the ESP and I’m super keen to try it out. I’ll download it later today and give it a go, ideally I want the adafruit neopixel library to work as then I can connect my coaster to the internet!
More on that in a minute.

Yesterday two things arrived in the post, my 16 neopixel ring, and my NodeMCU dev board.

image

Both very exciting!
Maybe I can combine the two? 😉

image

The dev board is because ive had difficulty flashing the ESP chips in the past so I was hoping to have better luck with a breakout board with inbuilt USB TTL and a flash button. I did! It flashed the latest NodeMCU firmware right away!

image

Node MCU is an alternate firmware for the ESP that has a runtime for Lua 5.1.4 inbuilt! So this is the excuse I’ve needed to learn a bit of lua!

image

I’ll also be using this later with the Arduino IDE and I’ll make up an image for cross referencing pins.

The neopixel ring is to be used in my ongoing quest for the most amazing coaster ever.

It will make my drink disco!

I’ve had a prototype in the past using a single RGB LED, then another using a disc of them, and this one is a ring, but they’re addressable!

What I’m hoping to get is a sort of rainbow flowing effect happening.

Ive got the code at a good starting point, for effect testing.
All I did was modify the example sketch that goes through a bunch of possible modes 😀

I’m driving it from a digispark board, and in the final build it will use a 3.7v lipo for power.

image

The LED ring does seem extremely bright, and gets a little hot during normal operation so I better look at dimming the LEDs as I only need enough light to light up my drink! Not the room Hahaha

There’s a few different sized ones too. The one with 16 and the one with 60 LEDs cost the same! D: sadly I don’t need that many though it’s far too big for my purpose hahaa

Maybe I can find a use for 60… Hehehhhh..
Oh and they come in strips too and individual of course! And boards… THERES LOTS OF CHOICES OK?

Anyway,

That’s all for now, I’ll keep y’all posted!

Bonus: it sticks to the wall of the train lol

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

Harvesting components!

Last night I had my first go at harvesting electrical components from junk PCBs I had lying around my room.
I found what used to be an optical mouse. But was now just sitting on a pile of junk and cables

I was hoping to find a 0.1microFarad capacitor to perform a mod on a USB to serial adapter I have for programming my arduino mini pro clones, to add auto reset.
While I’m getting pretty damn good at releasing the reset button at the right time, I would prefer to just hit upload!

So I looked all over this little PCB and was in luck! I found a 104 capacitor!
(I had looked over an old PCI fax modem before this and no luck)

So how I went about it was by holding components upright with needle nose pliers,
Then heating / melting the solder on their connections, until the weight of the PCB pulls the components through.
This kept the legs pretty free from excess solder too. 🙂

I got some switches, an LED, some resistors and some capacitors!
I’ll put a photo on this post showing my haul.

It was easier than I expected and makes me want to just… Collect old junk, to harvest what I want so I don’t keep buying a cap here, a diode there, etc.

image