Archive | Arduino

IoT MQTT Panel Pro Device Prefix

As mentioned in my ‘Getting Started’ post, I create separate ‘devices’ for my different Arduino sketches, such as mqtt-LED, mqtt-fire2012xy, mqtt-mesh, and so on. In addition, I may have more than 1 of each type of lantern displaying at the same time. To do so, I will serialize each lantern (it’s in the code) and using a combo box widget, I can then select one or ALL of each device type and publish that to the broker, which will then get picked up by the subscribing device. I’ll then use another widget to send hue, brightness to other information to the selected devices.

In order to support these multiple device types (aka sketches), I’ll add a device prefix to the topic.

For a fire2012 lantern, the published topic can look like this:

  • fire/lantern
  • fire/hue

Continue Reading →

Continue Reading

Some ESP8266 and MQTT Examples

Our first example was outlined in “Getting Started withi ESP8266 and MQTT“. This first example uses a sketch called mqtt-LED-synchronous.ino to blink the internal LED. It waits for the wifi initialization, followed by the MQTT initialization to complete before the continuous loop can run.

The second example is called mqtt-LED and appears similar to the first examples, however while the networking and MQTT code are initializing, the loop is running. In addition, if we temporarily lose MQTT connectivity, the sketch will continue MQTT transmission/reception once communications are re-established.

The third example is called mqtt-JSON and adds JSON data exchange to the previous example, allowing for more detailed information to be exchanged between the control panel and the subscribing device.

mqtt-fire is our first example using the FastLED display library. Controls in this example are a combo box, which is used to select from one or more fire enabled lanterns, while the remaining slider controls support brightness, hue, speed, cooling and sparking.

Continue Reading

Getting Started with ESP8266 and MQTT

Being able to control an Arduino remotely really ups our automation game. In the beginning, it was buttons and potentiometers and from there, we graduated to Infra Red remote control.

With the widespread availability of IoT (Internet of Things) functionality, we now have Internet connectivity to our Arduino compatible microcontrollers. One method is to setup our Arduino as a web server, and Jason Coon’s ESP8266 webserver is a prime example.

Another option is a messaging protocol called MQTT (Message Queuing Telemetry Transport) which provides a lightweight method of controlling IoT devices, and in this case an ESP8266 based microcontroller.

This tutorial goes through the steps of setting up an Android phone and an ESP8266 based WeMOS D1 Mini with MQTT controls to turn the internal LED of the ESP8266 on and off.

Continue Reading →
Continue Reading

Finishing up Arduino Nano development and onto ESP8266

At long last, after having spent far too much time developing routines for an 8 bit microcontroller that runs at 16MHz and with 2K of RAM, I’m now ready to move on to a better one. In the meantime, my routines focused on addressable LED strips and utilized:

  • FastLED display libraryshell
  • InfraRed Remote control library
  • Fast Fourier Transform library
  • TSOP38238  Infra Red Remote Control
  • ADMP401 MEMS microphone
  • WS2812 LED’s
  • APA102 LED’s

My Youtube page contains a lot of demos using this combination and is at: https://www.youtube.com/user/atuline/videos.

My github repository contains the source code for most of those demos and is at: https://github.com/atuline.

Continue Reading

Dusting off the Arduino Cobwebs

As you get older, it takes a bit of time to get back up to speed on things. In this case, I hadn’t been programming the Arduino with the FastLED display library for a few months and I started to get back into it. When I last left, I’d standardized and documented my wiring colours, pinouts and to use either the Arduino Nano or the Pro Micro. So far so good, as it was all nicely laid out for me.

I had a spare Nano kicking around, so I attached it to my USB port, started up the Arduino 1.6.3 IDE and loaded a basic FastLED program. The Nano was recognized as a Com port in the IDE (so I didn’t have clone FTDI issues to contend with), checked the code and started to program it. Despite several attempts, the code never did upload so I put the Nano aside.

Next, I got out a previously used Pro Micro and I immediately encountered driver issues with it. Remembering that I had to use Leonardo drivers, I fiddled around for half an hour with drivers, but never did get it recognized correctly. Let’s toss that aside as well.

Finally, I opened up a brand new Pro Micro, installed it, and saw that it was immediately recognized. At that point, I threw out the Nano and the first Pro Micro (I’m not very sentimental). I then programmed it up, and . . . nothing happened. I re-checked the wiring and the code a couple of times, and again, no LED’s. I then added some debug code for the serial monitor and saw that the Pro Micro was indeed being programmed correctly. I then triple checked the wiring and saw that I’d soldered part of the insulation to the data pin and had no connection. After the insulation was removed and the connection re-soldered, I tried again, but alas, no lights. Things weren’t going well today.

I checked the wiring thoroughly and saw (barely) that the data wire was also sliced halfway down its length, so I cut the wiring below the slice and then soldered that to the Pro Micro. At long last, the LED’s came on as expected and I’m now back (tentatively) in the FastLED environment.

Moral of the story: Check everything. Several times.

Continue Reading

Arduino Christmas Lights

With the recent purchase of an Arduino microcontroller, my interest in electronics was rekindled after many years hiatus. One of my goals back in the day was to create a colour organ where lghts would flash in beat with the music. With the Arduino, I can easily do that and much more, so I set about coming up with a project that made use of modern day LED’s. The result will be Christmas lights that:

Continue Reading →

Continue Reading

Arduino & Bluetooth

Was playing with an HC-06 Bluetooth board today:

http://www.aliexpress.com/store/product/HC-06-Bluetooth-serial-pass-through-module-wireless-serial-communication-from-machine-Wireless-HC06-for-arduino/318950_630840325.html

Was able to successfully pair with this from my phone and send commands via a Bluetooth terminal on the phone to the Arduino, although I found the communications very difficult to maintain. Here’s my brief review of IR vs Bluetooth communications:
Continue Reading →

Continue Reading

Costing a FastLED Display Locally

Here’s an approximate cost breakdown if I were to head into some local electronics stores to purchase components for my portable displays:

Miscellaneous items include zip tie, solder, a few sizes of heat shrink tubing.

Then there’s my labour at a minimum of $40/hr and it takes about 45 minutes to build one.

Oh, did I mention all the time I spent learning/developing the coding and techniques?

Continue Reading

Arduino Resources

References

  • http://vancouverroboticsclub.org

Suppliers

  • http://www.seeedstudio.com
  • http://arduino-direct.com
  • http://www.makershed.com
  • http://www.adafruit.com
  • http://www.sparkfun.com
  • http://www.robotshop.com (Canada)
  • http://www.rpelectronics.com (Vancouver)
  • http://www.mainelectronics.com (Vancouver)

Continue Reading →

Continue Reading