I had been considering this project for a while: the ability to send a link to someone they can use on their smartphone to open our front door. Useful for deliveries or when friends or family come over while you are not home. For example I recently had a friend come and stay while we were away for the weekend, however getting a key to him was going to be a challenge as he lived interstate. In the end I left a key in the mailbox which is a terribly inelegant solution and not especially secure.
So I have now developed a script that allows me to send an SMS with a web link that when clicked unlocks the front door for a couple of seconds.
Obviously when designing this I had to think carefully about how it would be secured. I wanted to ensure it was well protected enough that the effort required to hack it was much greater than the effort required to just break in.
The solution builds on my existing x10 home automation which already has the ability to open the door via a set of controls on iPhone, which is already secured such that it can only be accessed while on the local wifi network or via a pin code to access the mobile web page. It works so well we now typically use our iPhones to open the door when we get home almost never bothering to fish out our keys.
When the destination mobile number is entered in the control page the php script sends an SMS (using directsms.com.au API) with a link. The link includes a randomly generated alphanumeric key which has already been stored on the database, along with the timestamp of when it was originally sent and when it was then used. The link has to be used within one hour or it will not work. After the first use it will continue to work to open the door for two minutes, after which it will no longer work.
Finally had a nice sunny day to take my Arducopter for it’s first flight!
It is not as stable as I thought it would be; most of the flying time I had it in ‘loiter’ mode which attempts to maintain a position based on GPS and altitude (using either barometer or sonar). Even so as you can see from the video it moves around quite a bit still – next time I’ll take my laptop to make sure it has a solid, accurate GPS fix before launching.
Three flights in total, the last one had a hard landing which flipped the quadcopter throwing a prop; all fixed in just a minute ready for the next flight in a few days.
Siri answers the door…vacuums the floor.
I have been playing around with SiriProxy which provides a mechanism to override spoken commands to Siri on an iPhone 4s.
Normally when you talk to Siri your iPhone sends the voice packets off to an Apple server which interprets them into words and then tries to interpret what you mean. It then sends a response back down to your handset, which is why Siri only works when you have a working internet connection.
In order to hijack this process it is neccessary to have your iPhone send Siri commands to a computer on your local network which has been set up to run SiriProxy. SiriProxy can then intercept the commands, figure out what you said and then look to see if it has local instructions for responding before sending on to Apple’s servers to respond.
The upshot of all this is that as long as your iPhone is connected to your local wifi network you can customise your own Siri responses. Siri will continue to work normally where you haven’t created a specific local command.
Since I had already set up home automation for many activities in the house including watering the garden, kicking Roomba off to vacuum and opening the front door, it was easy to hook SiriProxy into this. When SiriProxy figures out you asked to be let in, it calls a web page that runs a PHP script that sends an x10 command to unlock the front gate.
The full set of Siri’s capabilities at my home include turning on or off the watering system, turning Roomba on or off, opening the front gate and front door, and controlling lights around the house.
SiriProxy has allowed many similar innovations to evolve from controlling the TV to starting the car. These examples continue to show the value of the smartphone as a remote control for your life. SiriProxy is deeply restricted however due to it being shackled to your local network only – it is not possible (or at least fairly difficult) to use your own custom Siri commands when out and about. Although this is unlikely to change for Apple’s devices anytime soon, as speech recognition becomes more widespread on all smartphones (read Android) expect to see the evolution of a modular, configurable speechrec service that will allow easy integration into other devices.
While using Siri to start the vacuuming is fun, it is not very practical. However with a bit more tinkering I expect I can give Siri the ability to schedule specific home automation events which will be done even if I, my iPhone and Siri are not present. I can see that asking Siri to turn off the light at 11pm or do the vacuuming in an hour will be much more useful…
Thanks to Natia for starring in the demo video!!
My recent obsession with Arduino brought me back to an old interest: autonomous flight!
I totally love the open source community and the great stuff that people throw in together on…such as DIY Drones.
DIY Drones is a community built project using Arduino microcontroller to control a multi-rotor helicopter (though it also can control a single rotor heli or fixed wing aircraft). A dedicated Arduino board (ardupilot) connects to an IMU sensor board which contains minuscule gyros that sense the orientation of the aircraft and the built in software responds to changes in attitude by adjusting the speed of separate motors.
I have added GPS support and a magnetometer to sense magnetic heading, along with a bunch of pretty lights that help identify which way is front!
I have been running Eyefinity for a while over three screens at 1080 lines of resolution limited by a Samsung 1080 monitor either side of my Dell 2711 27inch monitor. However I was able to upgrade the two side montiors to match the middle meaning the whole lot can now run at native reoslution giving a total of 8064×1440 pixels.
However pushing 11.6 million pixels around was too much for my Radeon HD 5860 video card, so I also upgraded this to two Radeon HD6970 cards in CrossFire (linked together so both cards share the workload). While the two new cards were able to drive all 3 displays I found they got hot – very hot. At idle running Windows 7 they sat at about 60c, however when running any kind of full screen graphics they burned at 84c! Too hot to expect a long working life. After reviewing aftermarket fan cooling solutions I decided this was impetus enough to bite the bullet and install watercooling, especially as the ambient temperature in the room itself can get well above 30c.
Installed is a EK FC6970 V2 full cover water block on each video card, a koolance CPU-370 water block on the CPU connected to a koolance 360 radiator and koolance RP-1200 combo pump and reservoir. Details of the equipment and installation are in another post, however the result is a whopping drop of well over 30 degrees when running hot. Windows idel now sits about 44c and maxes out at about 50c when being pushed hard with full screen graphics.
I may have over-reached when I started this project.
I am installing a lot of kit into this – a flight data recorder (with GPS), an autopilot (also with GPS), heads-up display, video camera and transmitter, steerable nosewheel…and navigation lights!
Just working out where bits are going to fit and running wiring has been a nightmare – I’ve cut out more foam from the fuselage than is still remaining there.
There have been some key considerations when deciding where to place the different electronic components. I have tried to keep the receivers (GPS x 2 and radio receiver) as far away as possible from the video transmitter. Also I have tried to place the autopilot as close as possible to the centre of gravity. Finally I have put the pitot tube (for airspeed measurement) in the nose to get the cleanest airflow.
The bottom half of the fuselage is upside down – the cockpit area to the left and the cavity to the tight of that is where the wings attach.
Starting from the left we have the pitot tube (the horizontal tube sticking out of the nose), the paddle pop stick is inserted to trigger a hidden microswitch that turns everything off, next is the steerable nosewheel, then the 4s LiPo battery which is shoved up against the Eagle Tree Data Logger and On-Screen Display. The cavity under the wing is where all the wires come out that plug into the wing components – I have kept it clear of any electronics as all the available space is taken up by the wires when the wings are attached. To the right of this (above the main gear) is the autopilot (essentially just a small box with a bunch of gyros in it). Next is the lights controller which makes all the LEDs flash the correct way (9 LEDs in this aircraft); underneath this is the Radio Receiver. Finally to the right of this is the GPS for the Flight Data Recorder followed by the GPS for the autopilot.
Receiver: Futaba R6014HS
LED Controller: Punk RC (controlling 2 red Anti-collision strobes, 3 white navigation lights/ strobes, red and green right of way lights on wingtips and 2 white landing lights).
Flight Data Recorder: Eagle Tree Data Logger V4 and Eagle Tree OSD Pro (On Screen Display)
Autopilot: Fyetech FY-21AP
I’ve finished all painting on the aircraft now – looks pretty good! Up close the surface looks very speckled an foamy but from 100ft or more it could pass for the real thing.
Insignia placement is not perfect but not bad. There is no Australian Customs aircraft registered DSJ (this is actually currently assigned to a UK WWII Observation aircraft built in 1947). I chose it as it was also the registration for a Cessna 182L which dissapeared in 1978 in one of Australia’s most interesting aviation incidents.
I have added landing gear; they are not very scale-like but the nosewheel is steerable and they all have pretty good in-built shock-absorbers.
Have finished the basic white and red painting of the airframe and wing surfaces and all leading edges in black. Next I will print and place insignia (using a custom decal kit) then finish with a UV resistant top coat.
After spending some time looking at different real-world aircraft with similar high-wing two engine designs to my Twinstar I have settled on a combination of US Coast Guard and Australian Customs. I like these designs as they use lots of white (which save me having to do a lot of detailed painting) and should provide highly visible orientation when looking at it from the ground. It should also give a good scale effect – in other words from a distance look just like the real thing.
I am basing my design on the Aust Customs Dash 8
Received my initial Twinstar II kit from Tower Hobbies. It is very light! Shipping was expensive though due to the large box size. The model is an impressive 1.4m wingspan.
Lots of work to do to this before it flies. Besides the camera and video transmitter I have decided to paint the aircraft (not sure what design yet) and to install navigation lights, autopilot, flight data recorder (black box), GPS (Global Positioning System) and a HUD (Heads Up Display) which will give me information like altitude and airspeed overlaid onto the video feed.