We have been building IoT solutions since before IoT was a buzzword. We are working on a number of existing projects in the IoT space, but we thought we'd talk a bit about this one as it has all the ingredients you could possibly wish for in your IoT solution; mobiles apps, clever middleware, MQTT, Alex, Google Home, Home Pod, SiriKit, HomeKit, QR code and Bluetooth setup, awesome R&D, clever Raspberry Pi prototypes and so on... Oh and sorry about the shirt - I was having one of my humble days!
Full video transcript
[Dan] *whispers* Get into the zone…
...[John] channel...[Dan] channel...
Where are you coming from? What is your motivation for this?
To be a genius...[John] earth... [Dan] to be a genius...
[John] I like being a genius, yeah
Hello! (Siri Plays Adele)
[John] shh... don't tap that
[Dan] Centre (laughs)
Hello, we thought we’d do a short vlog on an IoT project we're doing it because we've been doing quite a number of them over the last 12 months. I brought my
good friend and senior developer here, John Green, who's going to tell us a bit about the technicalities.
But to kind of give you a bit of a summary, if you go out in our office right now it's a collection of prototype hardware, circuit boards, wires, people scratching their head going 'why's that not working?' and people going 'Ahhh! It's working!!’
because IoT seems to be quite a buzzword at the moment, and quite complex we thought we could make bring some useful information to you guys. So just to kind of let you know what we're talking about, we are dealing currently with products integrate with; Google Home, Alexa ,the Apple HomePod, mobile apps so that you can control those things from from the mobile apps...
So John would you tell us a little bit about kind of what goes into the solution to make this thing work?
[John] Wow, well ok so first of, this particular project is involving some hardware some some heaters, so there's lots of moving parts we’ve got the heaters themselves, we've then
got the mobile apps to control them, we need interfaces for Google and we need interfaces for Amazon as well, which means that we need a server [application] in the in the middle to try and join those together.
And then to be able to communicate with the heaters themselves, we have we're using a mosquito well MQTT
[Dan] And is that what's running on the heater
firmware as well is that?
[John] Yeah that's right, yeah that's how they, so the heaters themselves they talk mosquito… well MQTT, and they talk that to the broker, and then the broker interfaces to the server, and then the server interfaces to the phones... is quite a lot of things in there moving around!
[Dan] And we're building the entire solution, so we're building everything from mobile app all the way to heater. So just to be clear we're not actually touching the firmware we’re working with a partner there that’s building the hardware and the firmware on the heater....
So John what are the, I guess, what are the headline challenges you've had on a project such as this, what kind of a big things?
[John] wow there’s understanding all the different parts and how they interact together, but the actual real challenge was integrating the whole system together to get them to work. To see messages flow from one end to the other, and back again, that’s been a real challenge.
[Dan] Right and is there anything you can tell us the about the way that we might have solved that?
[John] So I think the first thing we've managed to do really was to be able to test each of the individual parts themselves. We work out that they work, the messages coming
in and out as we expect, and then we can bolt on the bits and pieces - start connecting them together. And then we can actually monitor messages going all the way through the system.
So we can see things going from end to end, seeing how
they respond - because some of the messages are actually quite chatty.
So you send a message from your phone like, say, adjust the temperature - we want to see that go to the service - we then want to see what go to through the MQTT
broker, then we want to see that come through to the heater. The heater then responds to say; ‘yeah I've received that message’ or; ‘my temperature is currently this’ - we want to see that message coming all the way back. That’s been a bit of a challenge.
[Dan] And so basically if you silo each of those sections off you've been able to troubleshoot; right okay, got the call coming out from the app we've got the call working
within MQTT and all that good stuff.
Okay well I think it'd be worth having a quick demo, because I think it's quite exciting, because we're at that point. Can you just explain what we've got going on here?
Siri's about to make noise shush! So yeah if you could explain what we've got going on here that'd be great.
[John] We've got two little Raspberry Pis here, with little screens on, and they are simulating a heater. We don't actually have a heater yet, but that's fine because we've
got the spec, we know what it's going to do or how it's going to chat to us.
[Dan] So that's been one of the challenges hasn’t it? That actually access to the finished hardware means we've had to kind of create these prototype mock-ups on Raspberry Pis?
[John] We're surfing on the bleeding edge, we are in front of the hardware manufacturers, so the good thing is is when the heater does arrive, hopefully it should just plug in and work. Seeing as we've done all the work on this side, so obviously there is a little danger with making a prototype... is that the actual real stuff might not be the
[Dan] I guess that comes down to documentation and communication so hopefully you're on the same page ahead of time?
[John] So that's keeping the spec in sync with everyone, making sure everyone's got the right spec.
So here we've got two little Raspberry Pis,, they’re running node, and just simulating a heater so the chatting away, saying; ’I’m a heater my temperature’s this’ and so
on. So we haven't gone too far to town, we haven't implemented absolutely every single call, we've implemented to most of the core ones so we can actually see what's going on.
[Dan] Cool, so can we see it working?
[John] Yeah, sure, so, we can simulate perhaps the top, the red text area that’s, that's the the current temperature and we just need to send that to the service. And the blue one is the target temperature so we can say things like;
‘Okay Google, set the bedroom to 45 degrees…'
[Dan] that's gonna be hot!
[Google] Sure setting the bedroom to 45 degrees
[Dan] So you want your bedroom to be a sauna at this stage…
[John] Yes - we can ask, we can also say;
‘Okay Google what's the temperature in the bedroom?’
[Google] It’s currently 26 degrees
[John] Or we're still simulating that, we can say it’s actually pretty cold in there;
‘Okay Google what’s the temperature in the bedroom?’
[Google] It's currently nine degrees
[Dan] Nice.. nice!
[John] So now we've got basically the same set up just a slightly different screen, and this one's the kitchen. So let's have the kitchen pretty hot, the ovens open;
‘Okay Google what's the temperature in the kitchen?’
[Google] It's currently 36 degrees
[John] ‘Hey Google set the kitchen to 20 degrees’
[Google] Sure, setting the kitchen to 20 degrees.
[Dan] So that's really awesome and we've kind of we've already got the iOS and the Android apps communicating through this. They've been plugging all the bits in as
we go, we've got Alexa working as well, SiriKit it is kind of the last thing on the, on the list to integrate.
But it's very exciting to get to this point of the project and you start to see it all comes together and kind of see that the actual the prototypes reacting to responses, over the internet!
So we could be in a different building entirely or around the country and be able to change these settings.
So, that's it! If you've got any questions about IoT, or you want to tap us up for any information, by all means get in touch and I will see if we can help you out.
I can ask my man John here because he knows more than I do... yeah, thanks for watching!