I have only very recently started participating in the Element14 community and so was really pleased and excited to get picked for my first RoadTest on the AVR-IoT WG Development Board!
Participating in a RoadTest has certainly kick-started me into getting involved on here...... Thankyou to rscasny for recommending my application for this RoadTest!
I was waiting with excitement and anticipation to receive the board - which took a little longer as it was sent from the US to the UK where I am based. I kept a close eye on the UPS app to track its location during its journey to me.....
Element14,Chicago,IL-->Addison,IL-->Indianapolis,IN-->Louisville,KY-->Newark,NJ-->Stansted Airport,UK-->Castle Donnington Airport, UK-->My Location,Gloucester,UK!
As I am still working through my plan with this board, I thought I would create some blog posts on my journey before writing up my full RoadTest review.
I will keep this post brief and save the detail for the final review.
First Impressions
The board arrive in a sealed box - which is always re-assuring on a device like this that has mass-storage capability giving it the potential to carry malicious code. The first thing that surprised me about the board is how small it was. It is always hard to get true scale from pictures online, so, I have taken a picture below that shows the board against a BBC micro:bit and UK 20p.
This is quite impressive considering all of the features the board contains:
- LI-Po charging circuit with battery connector.
- uDebugger with drag and drop programming and virtual Com Port that connects directly to the MCU UART.
- mikroBUS footprint to allow the user to utilise 1 of over 500 add-on boards.
- ATECC608A Secure element IC that provides hardware encryption and key storage making it a very secure platform to develop an IoT solution.
- On board light sensor.
- On board MCP9808 digital temperature sensor - accurate to .25degC.
- ATWINC1510 WiFi network controller allowing WiFi connectivity for the board.
- ATmega4808 AVR 8 bit Microcontroller with 48KB flash memory and 6KB RAM. This runs all the core functions including communication using the MQTT protocol.
All very impressive for such a small board!
Initial Setup
The initial getting started guide takes you through connecting to a WiFi network and then checking out data on the google cloud that is sent from the device using MQTT.
The guide suggests initial setup and viewing online data can be done within 30 seconds! I would say this is a little optimistic, but it certainly did not take long - maybe a couple of minutes.
Here is a screen shot of the web page showing the live data being sent to the google cloud:
Something I did notice straight away is that the temperature reported by the board is quite high. My room temperature is around 22degC, but the board reported around 28degC. When touching the surface of the board, I could feel that it is quite warm and can only put this down to heat generated by the WiFi module and possibly the processor. I would think if power saving techniques were applied such as putting the board to sleep between data transmissions and sending data less frequently, the running board temp could be reduced and a true reflection of ambient temperature could be measured.
Migrating to My Private Cloud
I followed the guide to migrate the board to my own private google cloud account which I had already created previously.
This step was certainly a little more complicated and I did run into a few small complications that were not fully covered in the guide. I managed to work through them and get it working. I will go into this in some more detail in future blogs and my final review.
The instructions to migrate basically take you through using the google cloud console to clone an example web application and necessary scripts to your own private cloud account. You then run the setup scripts which automatically set everything up and deploy the web app for you.
The web app gets set up on a part of the google cloud called Firebase - this is also where the data is stored.
Next Steps
I have set up a Raspberry Pi to control my home heating and hot water system. There are a number of small temperature sensors around my home that the Raspberry Pi reads and then sends the temp data to the io.adafruit cloud and Blynk cloud. I have then used the Blynk app framework to control the system from my phone.
Using the AVR-IoT boad, I want to set up a small hand held heating system controller to act as a basic HMI for my system. I want to use either a Nextion LCD display or the STM32F746G-Discovery board as a display. The AVR-IoT would act as the communication device and report the local room temp back to the system.
I have been able to get data to my Raspberry Pi from the AVR-IoT board successfully, but the challenge I currently have is sending data back to the AVR-IoT board. The example application does not include subscribing to any MQTT topics from the board - only sending data to an MQTT topic.
Useful Links
- AVR-IoT Homepage - https://www.microchip.com/design-centers/internet-of-things/google-cloud-iot/avr-iot
- Atmel START - http://start.atmel.com/
- Sensor Node Example Page - https://avr-iot.com/
- Google Cloud IoT Core - https://cloud.google.com/iot-core/
- Getting started with the AVR-IoT - https://www.leverege.com/blogpost/avr-iot-guide-pushing-data-to-cloud
- Example app GitHub page - https://github.com/Leverege/microchip-avr-iot