Developing with the Internet of Things is fun. It’s challenging. It’s frustrating at times.
But it’s also an opportunity to change the world with code! And you don’t need 5 years R&D or an engineering degree to do it. In this blog I’ll go through some quick weekend hackathon projects you can put together to bring your IoT idea to life.
Consider that the Internet of Things is made up of 3 key elements:
- The Devices,
- The Network,
- The Applications.
Network connectivity is a critical element of the IoT ecosystem, being able to send sensor data reliably and efficiently between devices and applications. Then there’s the messaging alerts for real time emergency notifications and communication that the network can also provide.
Here’s a couple of projects that harness TelstraDev’s network capabilities for IoT prototypes that address some key local and global issues. If you want to see more detail on each one, check out the GitHub repos: https://github.com/MichelleHowie
Control your IoT device remotely with SMS commands
Some IoT devices can actuate (i.e action on data it receives) based on specific inputs. For example, streetlights that turn on depending on the time of day or if someone walks past and triggers a people counter.
In this quick prototype, I set up an Arduino MKR NB 1500 with Telstra LTE-M connectivity, so that when I send “ON” in a text message to my virtual mobile number, it turns the LED on the Arduino board on. Sending “OFF” in an SMS turns it off.
The fun part here, was that I also had the virtual mobile number that controlled my mate Steve’s Arduino device, so we could send messages across Australia to control each other’s IoT device lights. Awesome potential here, but also very real security and control considerations.
Here’s the high-level process flow that made it possible:
Simple, yet effective!
We used Node-RED, a programming tool for wiring together hardware devices, APIs and online services. It was quick and easy to set up the Watson IoT and Messaging API nodes, and you can copy the whole flow directly from our GitHub repo! Just add in your own user credentials.
In Node-RED, we set up a http endpoint (we call that NotifyURL) that any SMS can come to. With Telstra Messaging API, we then created a virtual mobile number (aka Subscription) that can receive SMS. Now the Node-RED http endpoint can show any inbound messages to the your new virtual mobile number.
Any SMS command from your Telstra Mobile (connected to 4G or 5G) to that virtual mobile number, where a function in Node-RED validates the message payload input and decides if it should trigger 1 of 3 possible device events:
- light ON if it sees "ON"
- light OFF if it sees "OFF"
- or do nothing if you send anything else!
The message to change the state of the LED is published to your IoT broker, where the Arduino is listening. The sketch running on your Arduino knows what to do when it sees ON or OFF, and voila!
For more details see the GitHub ReadMe or recorded tutorial of this prototype, which includes an introduction to IoT brokers and the open source low-code software we used to put this together in just a few hours.
GitHub Repo + ReadMe: https://github.com/MichelleHowie/TelstraDevArduinoNodeRedBlink
See this workshop in action at Call For Code, May 2020 so you can follow along with me and DeveloperSteve Coochin:
Check out part 2 of this series for how to request Environmental Sensor Data via SMS from your remote IoT device.