Arduino Yun et SIM800L: problème de buffer

L’association d’un Arduino Yun et d’un SIM800L peut vous permettre de recevoir et de lire les données http de site web. Néanmoins, vous pouvez rencontrer un problème avec le buffer si vous désirez accéder à une url trop longue. Pour cela, nous vous proposons deux solutions:

Solution 1:

Vous devez modifier votre librairie Arduino SoftwareSerial. Trouvez le fichier SoftwareSerial.h dans votre ordinateur. Il devrait se situer dans Arduino > hardware > arduino > avr > librairies > SoftwareSerial.h

Modifiez la ligne de commande :

  #define _SS_MAX_RX_BUFF 64 // RX buffer size

En :

  #define _SS_MAX_RX_BUFF 256 // RX buffer size

Si cette solution ne fonctionne pas, essayez la suivante:

Solution 2:

Commencez par fermer l’IDE Arduino, puis rouvrez le. Compilez votre programme et copiez le contenu du débogueur dans un éditeur de texte type Word ou NotePad.. Recherchez à présent le fichier HardwareSerial.h et repérer le chemin dans le pc de ce fichier. Il ne vous reste plus qu’à l’ouvrir et à modifier le Serial Buffer Size, en l’augmentant par exemple à 256.

noir
buffe_size

Vous pouvez trouver différents tutoriels sur le SIM800L sur notre blog:

Retrouver également le module SIM800L et son kit sut la boutique letmeknow.fr et au 85 rue de Clery à Paris.

[Tuto] Contrôler votre curseur de souris avec un accéléromètre

Si vous avez suivi notre tutoriel pour utiliser l’accéléromètre MMA7361 disponible ici voici un exemple d’utilisation sympathique : contrôler le curseur de votre souris à l’aide de cette accéléromètre.

Cependant pour cela vous aurez besoin d’une carte arduino avec un microcontrôleur 32u4 embarqué dessus. Les cartes arduino compatibles sont

ArduinoLeonardo
arduino-lilypad-usb

Une fois votre accéléromètre câblé, tous se passe au niveau du code, vous allez voir c’est très simple !

CODE 

#include  "AcceleroMMA7361.h"// Inclure la librairie de 
l'accéléromètre



AcceleroMMA7361 accelero; // Création du composant
int x; // Création des variables pour les 3 accélérations 
int y;

void setup()
{
 Serial.begin(9600); // Démarrer la liaison série
 pinMode(2, INPUT);
 accelero.begin(13, 12, 11, 10, A0, A1, A2); // Démarrer le 
composant
 accelero.setARefVoltage(3.3); // Régler la tension de référence
 accelero.setSensitivity(LOW); // Régler la sensibilité du 
composant +/-6G
 accelero.calibrate(); // Calibrer le composant
 
 Mouse.begin(); //Initialisation de la fonction souris

}

void loop()
{
 x = accelero.getXAccel(); // Lecture de l'axe X
 y = accelero.getYAccel(); // Lecture de l'axe Y
 
 Mouse.move(x,y,0); //On bouge le curseur aux coordonnées 
acquisent par l'accéléromètre
 if (digitalRead(2) == HIGH) //On peut rajouter un bouton
  Mouse.click(MOUSE_LEFT); //Si l'appuie est repéré on envoie un 
clique gauche sur le curseur

 Serial.print("nx: "); // Afficher la valeur de l'axe X
 Serial.print(x);
 Serial.print(" ty: "); // Afficher la valeur de l'axe Y
 Serial.print(y);

 delay(50); // Délais pour rendre ça lisible
}

Vous pouvez reconnaître le code de l’accéléromètre, on y ajoute juste les fonctions capables de contrôler le curseur de la souris.
Donc très simplement dans le setup on initialise la fonction Mouse avec Mouse.begin() puis on utilise la fonction Mouse.move()

Pour aller plus loin, nous pouvons rajouter un bouton poussoir pour simuler le clique, un bouton pour les 3 différents cliques que l’on a sur une souris on utilise la fonction Mouse.click() dans les parenthèses on renseigne le boutons que l’on veut simuler sur le curseur :

  • MOUSE_LEFT pour le clique gauche
  • MOUSE_RIGHT pour le clique droit
  • MOUSE_MIDDLE pour le clique du milieu

Il ne vous reste plus qu’à téléverser votre programme dans votre carte, pencher l’accéléromètre et votre curseur bouge sur votre écran !

Pour plus d’information sur la librairie Mouse et keyboard voici la documentation arduino.

Arduino Yun datalogger

Nous allons aujourd’hui réaliser un montage nous permettant de remonter de manière simple la valeur d’un capteur qu’il soit analogique ou numérique avec un Arduino Yun. La lecture d’un capteur analogique avec un Arduino permet de transformer sa valeur lue entre 0 et 5V en un nombre de 0 à 1023.  Le capteur numérique quand à lui est à l’état 0 ou 1.

Notre montage va s’inspirer du tutorial http://arduino.cc/en/Tutorial/YunDatalogger

Le script adapter va scanner chaque entrée analogique puis chaque entrée numérique, puis les envoyer vers emoncms.

Pour commencer, inscrivez vous sur http://emoncms.org/

Voici le script que nous utilisons:

#include <FileIO.h>

#define attente 15000 // Temps entre 2 lectures en millisecondes

String debuturl = "http://emoncms.org/input/post.json?node="; // Debut url
String milieuurl = "&csv="; // Milieu url
String finurl = "&apikey=cdd97ca9046074128405636bb14fb479"; // Fin url

void setup() {
  // Initialisation des communications
  Bridge.begin();
  FileSystem.begin();
}


void loop () {
  // Lecture des capteurs analogiques
  for (int analogPin = 0; analogPin <= 5; analogPin++) {
    String url = debuturl; // Début de l'url
    url += String(analogPin); // Node
    url += milieuurl; // milieu d'url
    int sensor = analogRead(analogPin); // Lecture du capteur
    url += String(sensor); // Insertion dans l'url
    url += finurl; // Fin de l'url
    Process emoncms; // Process
    emoncms.begin("curl"); // Commande curl
    emoncms.addParameter(url); // Création de la requéte
    emoncms.run(); // Envoi de la requéte
  }
  
  delay(attente);// Attente entre 2 lectures
}

L’API key est à personnaliser avec celle que vous récupérer sur emoncms.

Une fois ceci prêt, téléverser le script sur le Arduino.

Maintenant, il faut connecter le Arduino Yun au Wifi. Voici le tutoriel officiel http://arduino.cc/en/Guide/ArduinoYun#toc13. En résumé:

  • Connectez vous à ArduinoYun-XXXXXXXXXXXX
  • Dans votre navigateur, allez dans http://arduino.local ou 192.168.240.1
  • Entrez le mot de passe (par défaut c’est arduino)
  • Cliquez sur Configure
  • Sélectionnez votre réseau Wifi puis entrez la clé WPA et validez
  • Au redémarrage le Arduino est sur le réseau

Les lectures de capteurs vont commencer automatiquement. Vous les verrez sur http://emoncms.org/input/view

Vous pouvez désormais personnaliser le nom des flux (node).

Capture de emoncms