dimanche 10 janvier 2016

Faire communiquer le Raspberry pi avec l'arduino

J'aimerai bien récupérer les données du montage suivant :

Sur le raspberry pi pour en faire une page web de visualisation en temps réel de l'évolution de la température et de l'humidité.

Et pour conserver un historique.

Utilités :

    Domotique
    météorologie
    aquariophilie (paludarium)
    terrariophilie
    culture sous serre
    .....

Une fois que mon montage fonctionne, que j'obtiens des données par le moniteur série du logiciel Arduino.




L'afficheur n'est pas exactement celui ci mais c'est le seul que j'ai trouvé en i2c.

// Einbinden des DHT22
#include "DHT.h"                            // Library für DHT Sensor aufgerufen
#define DHTPIN 2                            // DHT Sensor wird aus PIN 9 ausgelesen
#define DHTTYPE DHT22                       // DHT Type wird auf DHT22 festgelegt
DHT dht22(DHTPIN, DHTTYPE);                 // DHTPIN und DHTTYE in dht22 definiert

// Einbinden des LCD
#include "Wire.h"                           // Library für I2C aufgerufen
#include "LiquidCrystal_I2C.h"              // Library für LCD aufgerufen
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);           // LCD Adresse auf 0x27 gesetzt, 16 Zeichen / 2 Zeilen LCD
// SainSmart IIC/I2C/TWI 1602 Serial LCD Module wie folgt angeschlossen
// LCD GND -> GND ARDUINO
// LCD VCC -> 5V  ARDUINO
// LCD SDA -> A4  ARDUINO
// LCD SCL -> A5  ARDUINO

void setup()
{
  Serial.begin(9600);                       // Serielle Ausgabe beginnen mit 9600baud
  lcd.begin(16,2);   // initialize the lcd for 16 chars 2 lines, turn on backlight
  Serial.println("DHT22 Serielle Ausgabe"); // Begrüßung beim Aufruf vom seriellen Monitor
dht22.begin();                              // Auslesen des DHT22 beginnt
//lcd.init();                                 // Initialisierung des LCD                                           
lcd.backlight();                            // LCD Hintergrundbeleuchtung aktivieren
}

void loop()
{
  float t = dht22.readTemperature();        // Die Temperatur wird vom DHT22 ausgelesen, Wert in "t" schreiben
  float h = dht22.readHumidity();           // Die Luftfeuchte wird vom DHT22 ausgelesen, Wert in "h" schreiben
 
  Serial.print("Temperatur: ");             // Ausgabe im Seriellen Monitor
  Serial.print(t);                          // Ausgabe im Seriellen Monitor
  Serial.print(" C\t");                     // Ausgabe im Seriellen Monitor 
  Serial.print("Luftfeuchte: ");            // Ausgabe im Seriellen Monitor
  Serial.print(h);                          // Ausgabe im Seriellen Monitor
  Serial.println(" %");                     // Ausgabe im Seriellen Monitor
 
lcd.setCursor(0, 0);                       // Anfang auf Stelle 0, Zeile 0 setzen
lcd.print("Temp. :");                      // Temp. : auf LCD ausgeben
lcd.setCursor(9, 0);                       // Anfang auf Stelle 9, Zeile 0 setzen
lcd.print(t);                              // Wert aus "t" ausgeben (Temperatur)
lcd.setCursor(15, 0);                      // Anfang auf Stelle 15, Zeile 0 setzen
lcd.print("C");                            // C auf LCD ausgeben
lcd.setCursor(0, 1);                       // Anfang auf Stelle 0, Zeile 1 setzen
lcd.print("Humid.:");                      // Luft.: auf LCD ausgeben
lcd.setCursor(9, 1);                       // Anfang auf Stelle 9, Zeile 1 setzen
lcd.print(h);                              // Wert aus "h" ausgeben (Luftfeuchtigkeit)
lcd.setCursor(15, 1);                      // Anfang auf Stelle 15, Zeile 1 setzen
lcd.print("%");                            // % auf LCD ausgeben
}


le code retenu pour l'arduino est le suivant :



j'essaye de suivre le tuto suivant :

http://gladysproject.com/fr/article/connecter-un-arduino-au-raspberry-pi

Première difficulté, impossibilité d'installer serialport

la commande  :  npm install -g serialport

me renvoie l'erreur :

EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/4.2.2




Après une rapide recherche  sur internet je trouve la solution suivante :

achingbrain commented 27 days ago
Have you tried installing homebridge with the --unsafe-perm option? e.g.

https://github.com/nfarina/homebridge/issues/405
Cette solution semble fonctionner :

Et bien non :





Il faut que je creuse plus avant .....



Aucun commentaire:

Enregistrer un commentaire