Operating System
Load the SD Card with Raspbian following these instructions
https://www.raspberrypi.org/documentation/installation/installing-images/mac.md
drop a file called "ssh" into the boot folder
connect using airport express
setup wifi using command-line (plenty of explanations on google)
Install stuff
sudo apt-get update
(that may avoid problems later with that missing line in the v8.h header file)
sudo apt-get install nodejs
sudo apt-get install mongodb
Set up samba so you can browse the folders from the mac
sudo apt-get install samba samba-common-bin
nano /etc/samba/smb.conf
in the [home] section
read only = no
browsable = yes
sudo smbpasswd -a pi
$ sudo /etc/init.d/samba stop
$ sudo /etc/init.d/samba start
Problems trying to install the application packages using npm
Ran into this
https://www.raspberrypi.org/forums/viewtopic.php?t=127939&p=856473
Practical Home Automation
Wednesday 28 December 2016
Tuesday 11 August 2015
How I put my home automation system together and what I would do if I did it again
Main controller
I bought a Ninjablock.
You can't actually buy them anymore because the company has wholly moved on to their new offering, the Ninja Sphere (https://ninjablocks.com/ninjasphere/buy).
The NinjaBlock annoyed me in the end because it was for programmers only, and was not robust. e.g. if you turn it off on the wall (or have a power cut) the CPU can blow. I got it repaired under warranty but they told me that the solution was to do design a circuit myself that would do a soft shut-down when power is taken away. Screw that! Any time I had any issue with it they were like "oh that's easy you just <blah blah blah blah whole lot of technical linux steps>". And their 'cloud' seemed to reset every few weeks.
If I did it again (which I'm about to) I would consider either
1/ a 433MHz cape for a Raspberry Pi (cheap overall and standalone)
2/ a 433MHz USB device on my mac mini that is always on (requires a computer that's always on)
Then for either of those I would write software that would run on the device and communicate with your phone via an app or website.
Remote controlled sockets
When I set my system up, Maplins was selling these in packs of 4 for 20 quid or something - cheap!
http://www.rapidonline.com/Electrical-Power/Conrad-Radio-Controlled-Switch-Socket-433MHz-Frequency-4-Channel-544123
.. and they were 3kW rated so you could plug a 2.5kW heater into them (unlike one above which is 2kW)
I also got these for behind the wall installations of lights (only 1kW rated..)
http://www.intertechno.at/produkte/empfaenger/schalter/CMR-1000.html
Heaters
While the dreamt-of goal was to have elegant wall-mounted heaters, we took the cheap option and got a flock of these Dragon 2.5kW heaters.
Here's a link on Google shopping
Why?
Because
- per-heater they were cheap: around 100 pounds instead of 400+++ pounds for an electrified oil column heater that you like the look of,
- they were very effective: the heated air rises in a column that circulates around the room very effectively, and
- it was easy: you just plug them into one of those wall-plugs above and go.
If I did it again, I would have a serious think about investing in elegant wall-mounted radiators that I liked because having these oil column heaters in each room was a little yuck.
NOTE: we needed to get the non-digital ones so that we could turn them on and off at the wall effectively (using those remote switches). If you get a digital heater that resets when you turn it off/on then it won't combine with the wall plugs.
Temperature sensing
The ninjablock came with some 433Mhz temp sensors ... they were OK but sometimes I had a little trouble with the range until I got the base unit's aerials in just the right position. Need to do research into what to use instead now that Ninjablocks discontinued their block & temp sensor offering.
Software
I largely leveraged the ninjablocks cloud/rules platform, and created my own website 'remote control' because their cloud interface was waaaayyyyy too slow and cumbersome for the phone. I put a shortcut to my website on my phone's home screen and when I clicked it I would see something like this
If I did it again, I would probably have a similar concise website like in the image above, but maybe add to the platform some email communication too. ("Hello, this is the house - you seem to have gone out. Should I turn the heating off? Click Yes or No.")
(You could detect when people have gone out by their phone disappearing from the wifi network)
I bought a Ninjablock.
You can't actually buy them anymore because the company has wholly moved on to their new offering, the Ninja Sphere (https://ninjablocks.com/ninjasphere/buy).
The NinjaBlock annoyed me in the end because it was for programmers only, and was not robust. e.g. if you turn it off on the wall (or have a power cut) the CPU can blow. I got it repaired under warranty but they told me that the solution was to do design a circuit myself that would do a soft shut-down when power is taken away. Screw that! Any time I had any issue with it they were like "oh that's easy you just <blah blah blah blah whole lot of technical linux steps>". And their 'cloud' seemed to reset every few weeks.
If I did it again (which I'm about to) I would consider either
1/ a 433MHz cape for a Raspberry Pi (cheap overall and standalone)
2/ a 433MHz USB device on my mac mini that is always on (requires a computer that's always on)
Then for either of those I would write software that would run on the device and communicate with your phone via an app or website.
Remote controlled sockets
When I set my system up, Maplins was selling these in packs of 4 for 20 quid or something - cheap!
http://www.rapidonline.com/Electrical-Power/Conrad-Radio-Controlled-Switch-Socket-433MHz-Frequency-4-Channel-544123
.. and they were 3kW rated so you could plug a 2.5kW heater into them (unlike one above which is 2kW)
I also got these for behind the wall installations of lights (only 1kW rated..)
http://www.intertechno.at/produkte/empfaenger/schalter/CMR-1000.html
And this one for behind the wall installations of heaters (3.5kW rated)
Since Maplins have discontinued those plug-in sockets I would have to check whether their new model works (specs look right)
If I did it again, I would probably keep going with the 433Mhz actuators because they were so damn cheap. Maybe I would ensure that my radio frequency controller was compatible with other systems just in case, though (e.g. ZigBee, Z-Wave...)
While the dreamt-of goal was to have elegant wall-mounted heaters, we took the cheap option and got a flock of these Dragon 2.5kW heaters.
Here's a link on Google shopping
Why?
Because
- per-heater they were cheap: around 100 pounds instead of 400+++ pounds for an electrified oil column heater that you like the look of,
- they were very effective: the heated air rises in a column that circulates around the room very effectively, and
- it was easy: you just plug them into one of those wall-plugs above and go.
If I did it again, I would have a serious think about investing in elegant wall-mounted radiators that I liked because having these oil column heaters in each room was a little yuck.
NOTE: we needed to get the non-digital ones so that we could turn them on and off at the wall effectively (using those remote switches). If you get a digital heater that resets when you turn it off/on then it won't combine with the wall plugs.
Temperature sensing
The ninjablock came with some 433Mhz temp sensors ... they were OK but sometimes I had a little trouble with the range until I got the base unit's aerials in just the right position. Need to do research into what to use instead now that Ninjablocks discontinued their block & temp sensor offering.
Software
I largely leveraged the ninjablocks cloud/rules platform, and created my own website 'remote control' because their cloud interface was waaaayyyyy too slow and cumbersome for the phone. I put a shortcut to my website on my phone's home screen and when I clicked it I would see something like this
If I did it again, I would probably have a similar concise website like in the image above, but maybe add to the platform some email communication too. ("Hello, this is the house - you seem to have gone out. Should I turn the heating off? Click Yes or No.")
(You could detect when people have gone out by their phone disappearing from the wifi network)
Sunday 2 February 2014
Building Arduino .hex file for NinjaBlock [rewrite branch]
Get Arduino
http://arduino.cc/en/Main/Software
Download the code either by downloading .zip, or using GitHub
https://github.com/ninjablocks/arduino/tree/rewrite
The following libraries need to be added
cd ~/Documents/Arduino/libraries/
ln -s ~/AUTOMATION/arduino-master/aJson aJson
ln -s ~/AUTOMATION/arduino-master/DHT22 DHT22
ln -s ~/AUTOMATION/arduino-master/DMD DMD
ln -s ~/AUTOMATION/arduino-master/I2C I2C
ln -s ~/AUTOMATION/arduino-master/MMA8453Q MMA8453Q
ln -s ~/AUTOMATION/arduino-master/Ninja Ninja
ln -s ~/AUTOMATION/arduino-master/NinjaObjects NinjaObjects
ln -s ~/AUTOMATION/arduino-master/NinjaObjectsPi NinjaObjectsPi
ln -s ~/AUTOMATION/arduino-master/RCSwitch RCSwitch
ln -s ~/AUTOMATION/arduino-master/Sensors Sensors
ln -s ~/AUTOMATION/arduino-rewrite/common common
http://arduino.cc/en/Main/Software
Download the code either by downloading .zip, or using GitHub
https://github.com/ninjablocks/arduino/tree/rewrite
The following libraries need to be added
cd ~/Documents/Arduino/libraries/
ln -s ~/AUTOMATION/arduino-master/aJson aJson
ln -s ~/AUTOMATION/arduino-master/DHT22 DHT22
ln -s ~/AUTOMATION/arduino-master/DMD DMD
ln -s ~/AUTOMATION/arduino-master/I2C I2C
ln -s ~/AUTOMATION/arduino-master/MMA8453Q MMA8453Q
ln -s ~/AUTOMATION/arduino-master/Ninja Ninja
ln -s ~/AUTOMATION/arduino-master/NinjaObjects NinjaObjects
ln -s ~/AUTOMATION/arduino-master/NinjaObjectsPi NinjaObjectsPi
ln -s ~/AUTOMATION/arduino-master/RCSwitch RCSwitch
ln -s ~/AUTOMATION/arduino-master/Sensors Sensors
ln -s ~/AUTOMATION/arduino-rewrite/common common
ln -s ~/AUTOMATION/arduino-rewrite/decoder decoder
ln -s ~/AUTOMATION/arduino-rewrite/encoder encoder
ln -s ~/AUTOMATION/arduino-rewrite/onboard onboard
ln -s ~/AUTOMATION/arduino-rewrite/ports ports
ln -s ~/AUTOMATION/arduino-rewrite/rf rf
ln -s ~/AUTOMATION/arduino-rewrite/serial serial
You have to have the ninjablocks source code in your libraries folder right alongside the symbolic links to the 'libraries' (which you get from the trunk)
You have to have the ninjablocks source code in your libraries folder right alongside the symbolic links to the 'libraries' (which you get from the trunk)
So the folder structure is
/Users/mike/nb/libraries/ajson [symbolic link]
/Users/mike/nb/libraries/common [folder from github]
etc..
And in Arduino, set the 'Sketchbook location' in preferences to /Users/mike/nb, i.e the folder ABOVE the libraries folder...
Flashing NinjaBlock with new Arduino .hex file
To flash an arbitrary .hex file, run this from the command prompt
scp <path to .hex file> ubuntu@ninjablock.local:/home/ubuntu/NinjaBlock.hex
enter password: temppwd
ssh ubuntu@ninjablock.local
sudo stop ninjablock
sudo /opt/utilities/bin/ninja_update_arduino /home/ubuntu/NinjaBlock.hex
sudo start ninjablock
To flash the standard hex again, use this from the ssh console opened above
sudo stop ninjablock
sudo /opt/utilities/bin/ninja_update_arduino
sudo start ninjablock
scp <path to .hex file> ubuntu@ninjablock.local:/home/ubuntu/NinjaBlock.hex
enter password: temppwd
ssh ubuntu@ninjablock.local
sudo stop ninjablock
sudo /opt/utilities/bin/ninja_update_arduino /home/ubuntu/NinjaBlock.hex
sudo start ninjablock
To flash the standard hex again, use this from the ssh console opened above
sudo stop ninjablock
sudo /opt/utilities/bin/ninja_update_arduino
sudo start ninjablock
Subscribe to:
Posts (Atom)