So, I've successfully tested a breadboard implemented esp8266 microcontroller with multiple environment sensors. However, I need to tie this system into something that will interface with a smartphone.
Unfortunately, one of the biggest issues at the moment is that in order to develop smartphone applications you need to do one of two things:
You either embrace Apple's development framework or your embrace the Android development framework. Basically you chose your kool-aid and you're kinda stuck with it. Traditionally speaking, you needed multiple developers each specialized in their specific development architecture. In the past, that was basically x86 or PPC. Nowadays, we're a little more evolved. But it's still pretty similar: You can do IOS or Android. Java or Swift.
So, enter stage right a solution I'm interested in exploring: Microsoft acquired a company awhile back called Xamarin. They essentially do cross-platform development. (IOS/Android/M$)
Why is all this technobabble necessary? Well, as I stated earlier, I have programmed an esp8266 using the Arduino IDE. However, I have a big problem. I can make the wireless microcontroller speak MQTT, a TCP/IP based protocol for relaying data; unfortunately, from the available software I've seen, it's not quite robust enough for the specific application I'm interested in. I'd like a plug and play system for setting this up using only a smartphone.
So, I have a plant sensor which I only want to interface on a wireless local area network, I don't want to upload data to the internet unless optionally set to do so. What does it connect to? Another device? Sure, but what kind?
Then I thought why couldn't it gather this environmental data (temperature, humidity, ambient light, soil moisture), enter a sleep mode to conserve battery power and upload instead of sending it to the cloud, send it instead to a smartphone, tablet or other wirelessly accessible device?
It would be an ideal solution, namely because most smartphones already operate on wireless networks when their users are at home. Additionally, they possess something critical for logging environmental data. A real time clock which is extremely accurate due to the fact that the cellphone derives it's current data and time from the nearest cellular tower.
Now, if you're clever, you'll note that the device would not be able to connect if the user and their smartphone was not at home. Which is where buffering the environmental data locally on the device comes into play.
And.....if you're also a little bit cleverer than usual, you'll note that since the device will enter a low power/sleep mode every preset amount of time that you'd be able to buffer that data until the user returns home and then extrapolate the correct timestamp for when that data was logged using that preset duration to appropriately rebuild that sensor value to the correct time when the user re-connects.
(I know, I'd skip reading that word soup too. Essentially, even without a real time clock, and without the smartphone device the plant monitor is supposed to be connected being present, you can still log data and rebuild it later.)
This means any environmental data that the agi-esp8266 logged would be factually accurate.
Since we're going to be doing all of that, we may as well make the app useful for other applications while we're at it. I'm excited to see what happens on the IoT front, and I'd like to think building easy to use, straight forward, no duff software that interfaces with it is possible.
In any event, I'm getting into smartphone development. I hope you'll watch for updates from me on that front. Cheers.