Envoyer des informations d’une application Android (App Inventor) vers Arduino

Pour certains projets, il peut-être utile d’utiliser des commandes à l’aide de son smartphone.

J’utilise un module HC-05 pour mettre en place une liaison Bluetooth sur une carte Arduino. En fonction du type de carte Arduino que vous utilisez, la mise en place de cette liaison est différente :

Il faut également avoir quelques notions de développement d’application en blocks sur App Inventor : http://ai2.appinventor.mit.edu

Ici, je vais simplement indiquer comment envoyer des données d’une application Android, vers Arduino. Un second code montrera qu’il est possible de traiter ces données une fois envoyées à l’Arduino.

Dans une application, j’ai simplement créé 3 boutons, afin d’envoyer à l’Arduino la valeur a, b et c.

Avant de cliquer sur « Se connecter », je vous conseille d’appairer votre smartphone au HC-05 directement dans les paramètre Bluetooth d’Android.

Pour cette application, vous pouvez retrouver :
le fichier APK (à installer directement sur votre Smartphone Android)
le fichier AIA (à importer dans App Inventor pour effectuer vos modifications)

Dans le mode Blocks, sur App-Inventor, vous devez retrouver la gestion de la connexion Bluetooth  :

Il faut également créer un événement lors de la pression des boutons :

Afficher la valeur du bouton :

Arduino Uno :

#include <SoftwareSerial.h>
char message;

SoftwareSerial bluetooth(11, 10); // (RX, TX)

void setup()
{
// Démarrer la liaison Bluetooth
Serial1.begin(9600);
// Démarrer la liaison Série
bluetooth.begin(9600);
}

void loop()
{
if (bluetooth.available()) {
message = bluetooth.read();
if (message != -1)
{
Serial.println(message);
}
}
}
Arduino Uno - App Inventor

 

Arduino Leonardo :

// Message reçu en Bluetooth
char message;

void setup() {

// Démarrer la liaison Bluetooth
Serial1.begin(9600);
// Démarrer la liaison Série
Serial.begin(9600);
}

void loop() {
while (Serial1.available()) {

message = Serial1.read();
if (message != -1)
{
Serial.println(message);
}
}

}
Arduino Leonardo - App Inventor

 

Condition :

Dans ces codes, il est possible d’ajouter une condition en fonction du message. Par exemple, le bouton_a peut servir à allumer la led 13, et le bouton_b à éteindre cette led.

Il faut déjà renommer le texte sur les bouton dans App Inventor, puis d’ajouter cette condition après l’écriture du message dans la liaison série :

Arduino UNO :

#include <SoftwareSerial.h>
SoftwareSerial bluetooth(11, 10); // (RX, TX)
char message;

led = 13;

void setup()
{
// Démarrer la liaison Bluetooth
Serial1.begin(9600);
// Démarrer la liaison Série
bluetooth.begin(9600);
// LED
pinMode(led, OUTPUT);
}

void loop()
{
if (bluetooth.available()) {
message = bluetooth.read();

if (message != -1)
{
Serial.print(message);

// Si le message = A, allumer la LED
if (message == 'a') {
digitalWrite(13, HIGH);
}

// Si le message = B, éteindre la LED
if (message == 'b') {
digitalWrite(13, LOW);
}


}

}
Arduino - App Inventor + conditions

 

Arduino Leonardo :

// Message reçu en Bluetooth
char message;

led = 13;

void setup() {

// Démarrer la liaison Bluetooth
Serial1.begin(9600);
// Démarrer la liaison Série
Serial.begin(9600);
}

void loop() {
while (Serial1.available()) {

message = Serial1.read();
if (message != -1)
{
Serial.print(message);

// Si le message = A, allumer la LED
if (message == 'a') {
digitalWrite(led, HIGH);
}

// Si le message = B, éteindre la LED
if (message == 'b') {
digitalWrite(led, LOW);
}


}
}
Arduino Leonardo - App Inventor + conditions

 

 

 

 

Démarrez une conversation

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.