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>

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)

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