Arduino 101 + Edison = perfect match, see yourself

It’s been a while since my last post, the time was well spent though. Aside from adding various packages to the Edison and Galileo repositories, I’ve created materials for an Edison workshop – short training intended for everyone to get a basic understanding of what this board can do with a hands-on Python project. See details here.

Another thing I was (and still is) working on is a wireless weather station project based on Edison and fresh-from-the-oven Arduino/Genuino 101 board from Intel and Arduino cooperation.

I guess you’ve already heard of this nice little board, or maybe even have one already – they’re available at shop.arduino.cc now. If not – see this Intel page or this Arduino page for details.

arduino101

For a while I’ve had this idea of creating a distributed system at home, which would gather environmental data (temperature, humidity, atmospheric pressure and so on) in various rooms + outside and allow me to observe the current data, analyze trends over longer periods and be able to match the obtained data versus the online weather forecast. I also wanted the sensor modules to be wireless and battery-operated + have an ability to change the sensor set if I’d want to.

Here’s a very general concept diagram of the complete system:
concept_diagram

While Edison as a central point was a no-brainer for me, having built-in Wi-Fi and Bluetooth connectivity, enough horsepower to drive data acquisition and web interface serving along with the cloud data upload (for long-term analytics) and a familiar Linux toolchain, the sensor module was an interesting choice.

There’s well-known, cheap, small and power-sipping ESP8266, which has just enough for the purpose, except that I didn’t want to use Wi-Fi as a sensor module connectivity medium (didn’t want to mix this sort of solution into my home IT/Wi-Fi infra). I was aiming at something with BLE treating ESP8266 as a “plan B” solution.

Then there is a Texas Instruments SensorTag, which is neat small all-inclusive pack, having BLE + 10 sensors on board and claiming 1-year of operation off of a coin cell battery. The price is noticeably higher, but it doesn’t get much lower if you combine all the features. The only downside (for me anyway) was that it’s less hackable than I’d want to (notably the sensor set is fixed).

So when Arduino/Genuino 101 with it’s microcontroller-level performance on bitbanging-like tasks (1-wire works like a charm, yay) with built-in BLE connectivity was announced I decided to give it a go. Having a price of approximately one SensorTag, it needs a battery and sensors to form a full module for my needs, which makes it more expensive, but much more flexible if I want to change something down the road. We’ll see how it goes :)

Right now I have a basic sensor module functionality ready. The board gets data from DHT-22/AM2302 sensor and exposes it through a BLE service. Base module is in progress with initial web UI ready as well (dynamic charts and AJAX data refresh when modules connect/disconnect). Everything is published on GitHub, so watch this blog and the repo if you are curious where this leads me. And feel free to reuse it of course – I’m using MIT license there. Pull requests are welcome too! :) When fully done I’ll probably publish a step-by-step guide on Instructables.

Here’s a couple of screenshots demonstrating current functionality.
Web UI:
web-ui-screenshot

Raw output from the sensor attached to Arduino 101:
serial_monitor1

Leave a Reply

Your email address will not be published. Required fields are marked *