This WE I wanted to try BT communication with an Arduino…. To have a real project I decided to use a moisture sensor to detect from my phone if my green plant needs some water.
Arduino Board
To do so I bought a sparkfun BT module “Bluetooth Mate Silver” available following this direct link : https://www.sparkfun.com/products/12576
The moisture sensor is pretty standard : http://www.dfrobot.com/index.php?route=product/product&product_id=599#.U8JDQbE39b0
The connection to the BT module is pretty easy with Power (+3.3V, Gnd) and serial Data (Rx BT – Tx Leonardo and Tx BT – Rx Leonardo). As soon as the BT module is powered up it will be visible as a BT module.
On the Arduino side I done a very simple program which will listen on the serial link established with the BT module. Once the Leonardo received a char ‘h’ it will read the humidity sensor value (analog read) and send it back on the BT link. Here is the code :
/* Created by Charles Walker (charles.walker.37@gmail.com) Test program for bluetooth communication Tested with Arduino Leonardo and BT module Mate Silver (sparkfun) */ void setup() { //USB Serial port Serial.begin(115200); //BT module serial port Serial1.begin(115200); } void loop() { delay(5000); if(Serial1.available()) { //We received something on BT module char aReceived; aReceived = (char)Serial1.read(); Serial.print("Receveid from BT module :"); Serial.println(aReceived); // if we received a read humidity request if (aReceived=='h') { // Reading humidity unsigned int aHumidityValue; aHumidityValue=analogRead(0); Serial.print("Moisture Sensor Value:"); Serial.println(aHumidityValue); // Sending it to the BT module Serial1.println(aHumidityValue); } } if(Serial.available()) { //We received something on USB serial line - We will send it to the BT module char aToBeSend; aToBeSend = (char)Serial.read(); Serial.print("Going to send :"); Serial.println(aToBeSend); //Sending it to the BT module Serial1.print(aToBeSend); } }
The last version is available on bitbucket HERE.
The second part is the Android application which will be able to interact with the Arduino module through BT communication. Before starting coding it I wanted to verify that the Arduino part is working fine.
To do so I download a Arduino App able to communicate over BT. I tried few of them and the best one I find is :
https://play.google.com/store/apps/details?id=ptah.apps.bluetoothterminal
I installed it and then try sending some commands to the Leonardo board.
The application properly connects to the BT module and then we are able to send some commands. The Leonardo only respond to the ‘h’ command which trig moisture read and send it back to the phone.
Android application
First step….. Fix android Studio Beta 0.8 issue….. See : http://djynet.net/?p=652
Android APP creation in a dedicated thread….. See : http://djynet.net/?p=658
Conclusion :
The results with the sensor in moist earth (or not) with the Arduino and Android output.
The whole code for the project (Android and Arduino) is on my bitbucket account here.
Pingback: Electric train hack proto | Djynet
Pingback: AcTricker | Djynet