Sorry...Pre-order has been closed.
Pre-order of Qmote has been closed since March 31st, 2016. We are currently working on the production of "Qmote S." Please stay tuned! We will be back with the exciting Qmote S soon!
Here you may sign up "Qblinks Update" to get our latest news!
Using Arduino and an ambient temperature sensor, this project allows you to take ambient temperature and humidity readings at preset intervals, perhaps every 1 minutes, and then upload the record to Dropbox, Google Drive or other free cloud resource without need of any additional cloud or app programming.
Material Used:
Arduino includes:
- Qmote Maker's Module
- Arduino Uno or Arduino Pro Mini
- Sensirion SHT3x-DIS with breakout
Arduino Library Used:
- AltSoftSerial (https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html)
- SHT3x library (https://github.com/winkj/arduino-sht)
This demo project uses Sensirion SHT3x for a better accuracy. You could use different temperature/humidity sensor, for example, DHT11 or DHT21. SHT3x-DIS is using I2C bus, so A4/A5 ports of Arduino are used in this project. Qmote Maker's Module communicates with Arduino in baudrate 38,400. This project is using Arduino software serail with the Maker's Module, instead of the programming/serial monitor UART, so you can keep using it with the development IDE. The Arduino software UART isn't working too well in bardrate 38,400, so AltSoftSerial library is used instead.
Make this project compact with Arduino Pro Mini:
/* Qmote Humidity and Temperature Logger with Maker's Module Get the humidity and temperature reading and log them on the cloud storage will never be easier with Qmote Maker's Module For more information, please refer to http://qblinks.com/devkit For Sensirion SHT3x Arduino library, please refer to https://github.com/winkj/arduino-sht Fot the information of AltSoftSerial, please refer to https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html Author: Samson Chen, Qblinks Inc. Date: Aug 27th, 2015 */ #include#include #include "sht3x.h" // Using Sensirion SHT3x for the accurate measurements SHT3X sht3x; // for AltSoftSerial, TX/RX pins are hard coded: RX = digital pin 8, TX = digital pin 9 on Arduino Uno AltSoftSerial portOne; void setup() { // Setup SHT3x sht3x.setAddress(SHT3X::I2C_ADDRESS_44); sht3x.setAccuracy(SHT3X::ACCURACY_MEDIUM); Wire.begin(); // Start the software serial port portOne.begin(38400); // let serial console settle delay(1000); } void loop() { String qmoteCmd; // read SHT3x sht3x.readSample(); // let SHT3x read delay(1000); // get Qmote command for plaintext qmoteCmd = "ATBN=0x0A,\"RH="; // using click combination code 0x0A qmoteCmd += sht3x.getHumidity(); qmoteCmd += ", Temp="; qmoteCmd += sht3x.getTemperature(); qmoteCmd += "\"\r\n"; // output to Maker's module portOne.write(qmoteCmd.c_str()); // delay before next command delay(2000); // get Qmote command for ThingSpeak.com with Humidity qmoteCmd = "ATBN=0x09,\""; // using click combination code 0x09 qmoteCmd += sht3x.getHumidity(); // To save UartMsg size, leave "field1=" to IFTTT qmoteCmd += "&field2="; qmoteCmd += sht3x.getTemperature(); qmoteCmd += "\"\r\n"; // output to Maker's module portOne.write(qmoteCmd.c_str()); // delay a minutes until next reading delay(60000); }
Add this Qmote in the Qmote App. Create two IFTTT patterns, one is Long-Short-Short-Short (combination 0x09), another one is Long-Long-Short-Short (combination 0x0A). These two combinations will be used as two different recipes in IFTTT.
Go to http://thingSpeak.com, sign-up and create a new channel. Enable Field 1 and Field 2, as Humidity and Temperature. Go to API to find your Channel-Write-API-Key. We will need this API key for the information update.
The Arduino actually sends the following two commands every minute:
ATBN=0x0A,"RH=xxx, Temp=yyy"
ATBN=0x09, "xxx&field2=yyy"
(where xxx=humidity, and yyy=temperature)
Two IFTTT patterns have been created previously, so the above two commands will send the data to IFTTT. We are going to use them.
Recipe 1: Send the data to ThingSpeak.com
Create IFTTT recipe that the trigger is Qmote that the click pattern is -..., and the action is Qmote's Connection to the Internet Service with the following configurations:
Destination URL: https://api.thingspeak.com/update
Http Mathod: Post
Http Parameters: api_key={your_api_key}&field1={{UARTMsg}}
Information sensed by Arduino will be sent to ThingSpeak.com at the end. You can use the ThingSpeak.com visualization to show your statictics. Or you can use the MatLAB features of ThingSpeak.com to perform some analysis.
Recipe 2: Log the information on Dropbox
With the other command sent from Arduino, you can use it with your cloud storage, for example, Dropbox. Create IFTTT recipe that the trigger is Qmote that the click pattern is --.., and the action is to append text in your Dropbox.
It was really easy to make IoT applications with Qmote Maker's Module. With you imaginations, you can create a lot more applications with it.