Onion Omega Dash, ESP8266 and umqtt
I finally got around to installing micropython-lib and using the umqtt.simple client.
I took my basic three needle gauge demo code and integrated the umqtt.simple library into it. Next I took some ESP8266 code that I had been using and modified it to randomly generate values for the red and purple needles then publish them to the mqtt broker I have running on an Omegapro. The Dash picks up the changes and moves the red/purple needles to the generated values. Next I added a button to the gauge and when pressed it toggles the LED on the ESP8266 by publishing either 0/1 to another topic that the 8266 is subscribed to. What we have is a bi-directional communication between an OmegaDash and ESP8266 using mqtt.
This is a link to the video. https://youtu.be/lDISos59toc
My first projects are designed to learn and demonstrate some basic capabilities while learning but I will soon post something complete for setting up a small touch panel to display and control automation in my home.
@Carey-Capaldi Nice video example, thanks for posting.
@crispyoz I'll get around to something more substantial in the future, for now I am just cutting my teeth with the technologies. I had a few 8266 modules and Arduinos connected to NodeRed but I really like the idea of using the Dash as a wall or desktop mounted display/controller.
As I mentioned in a post, I created something substantial using the Dash and repurposing/updating two of my ESP8266 projects.
- ESP8266 temperature probe for garage refrigerator, this was something I originally built to monitor the temperature in my spa. I built a gauge with the temp displayed as text and stuck it in the first tab on a Dash module.
- ESP8266 to control three relays. Using a 5 volt 4 relay module that I purchased on Amazon I connected three of the 8266 GPIO ports to open/close both of my garage doors and gate at the end of the drive.
- They are controlled using MQTT and I have an Onion Omega Pro as the MQTT Broker along with a graphic display on a Dash display that has a monitor tab and control tab. In the monitor tab I display the state, for phase 1 just the temp for the garage fridge appears today. On the control tab, I have three buttons one each for garage doors and gate.
Here are a couple pictures. I am still mulling around how to mount the Dash and where to put it but this all runs great. IN the next phase, I will monitor the states of the doors and gate and add that to the monitor tab.
@Carey-Capaldi That's very cool! I automated my doggie door using Omega2S+ so mine is on a much smaller scale than yours But now I'm using some AI to identify each of my dogs so I can keep track of who is inside and who is outside and who needs to go outside before bedtime etc. I have 4 dogs so I have a good sample group for this.
Now maybe you can integrate some ANPR so your garage door will automagically open when you arrive.
My second thought was "I want to try to hack into that"
@crispyoz Hack into what? As far as ANPR this is on my list but for another reason.
Cool that you can track your dog disposition.
@Carey-Capaldi "Hack into what?". I find it interesting to bash MQTT brokers. It's amazing what you can access and what information you can glean.
Next time your garage door opens unexpectedly or your Buds are warm, consider if it is a random Aussie "managing" your tech
@crispyoz Now that you have me thinking about this, I did write up a public/private key system for rabbitMQ messages a couple years ago. I think it might be nice to port it over. Do you think this might be of interest? Each key is created individually by the user who sets it up and if you run over a secure transport protocol, it might be enough to secure a home IoT system.
@Carey-Capaldi I think any additional layer of security is worth doing, but most importantly change the root password I listen into some various public MQTT brokers, I'm always amazed what information people expose as part of their testing.
@crispyoz I do that as part of the initial setup.
Just a quick update, The code has been running for a few months and seems to be stable. Today I added the code that automatically switches back to the first tab. I posted the demo code in another project just in case anyone is interested here is the link.