Another post about Lizzie. I started off with a Raspberry Pi 3 to build a personal assistant for my car and I have come a long way both in terms of the concept and the functionality. Most importantly I have formalized the application flow and also extended the scope from one device to almost all the devices that can communicate digitally (for now) but later would try to bring everything electronic under project Lizzie.
Recently at the Build 2017 event Microsoft unveiled some pretty cools stuff and I am using Windows 10 IoT core for my Raspberry Pi 3 so a lot of things are going to come handy (for example the better speech recognition capabilities that they are building for Cortana – Although Lizzie is going to be far more smart than Cortana, the speech capabilities on the Windows platform are going to make my life easier).
Here is a video from today with the continuous speech and command execution:
Now coming back to the expansion of scope – Instead of trying to create a private network of devices I am going to use something like the Google Pub/Sub platform or Microsoft’s Azure IoT hub (whichever offers more features – irrespective of the cost). So I would have devices that would advertise themselves whenever they come online, subscribe to various streaming data queues and act based on their capabilities and request coming to them – for instance My phone can make calls so I can place a message for call from Lizzie running on my computer at home or from Lizzie running on the Raspberry Pi on my car. The interface would be simple capability based services running on multiple devices.
I did a lot of code refactoring last night while bringing all the distinct modules together, most of the stuff is running asynchronously so a lot state needs to be synchronized and some of the things are not very stable right now but it works. I have order some sensors and electronic components (I used a couple of LEDs today) – I have a Thermistor (a special resistor which changes resistance based on temperature) which I would put on a custom circuit so that Lizzie running on Raspberry Pi in my car can start/stop or change the air conditioning in the vehicle (using a custom circuit mounted with an Arduino that I would hook up in the car A/C system), another component is a light sensing resistor that I would use to control the Cabin lights – when the ignition is On and the car is not moving I would use the light sensor to calculate the intensity of light and illuminate the cabin lights if it is low. All these ideas would also come in handy for another version of Lizzie (I would order another Raspberry Pi to install at my home – to make it a smart home). All these would be able to connect together to create a smart ecosystem of devices and services running together to create intelligence to do jobs that can be automated.
So far it’s been a great experience in terms of learning and because this is relatively new area there isn’t much knowledge floating around for you to look up and hence you need to experiment a lot and combine a lot of abstract knowledge from multiple disciplines.
Thanks a lot for coming along and having a look, have a great day, see you soon.