Communication sans fil Arduino-Raspberry

Bonjour à tous et à toutes :slight_smile:

Pour un TPE de première j'ai choisis de travailler sur un projet de station météo à base Arduino. Pour cela j'utilise un RHT03 et une photorésistance. Le code fonctionne très bien mais les données s'affichent sur la console série de l'ide ce qui n'est pas très utile :~

#include <DHT22.h>
#include <stdio.h>
#define DHT22_PIN 7
int photocellPin = 0;
int photocellReading;

// Setup a DHT22 instance
DHT22 myDHT22(DHT22_PIN);

void setup(void)
{
  Serial.begin(9600);
}

void loop(void)
{ 
  photocellReading = analogRead(photocellPin);
  Serial.print("Analog reading = ");
  Serial.print(photocellReading);
  if (photocellReading < 10) {
    Serial.println(" - Noir");
  } else if (photocellReading < 200) {
    Serial.println(" - Sombre");
  } else if (photocellReading < 500) {
    Serial.println(" - Lumiere");
  } else if (photocellReading < 800) {
    Serial.println(" - Lumineux");
  } else {
    Serial.println(" - Tres lumineux");
  }
  delay(1000);
  DHT22_ERROR_t errorCode;
  
  // The sensor can only be read from every 1-2s, and requires a minimum
  // 2s warm-up after power-on.
  delay(1000);
  
  errorCode = myDHT22.readData();
  switch(errorCode)
  {
    case DHT_ERROR_NONE:
      // Alternately, with integer formatting which is clumsier but more compact to store and
	  // can be compared reliably for equality:
	  //	  
      char buf[128];
      sprintf(buf, "Temperature %hi.%01hi C, Humidity %i.%01i %% ",
                   myDHT22.getTemperatureCInt()/10, abs(myDHT22.getTemperatureCInt()%10),
                   myDHT22.getHumidityInt()/10, myDHT22.getHumidityInt()%10);
      Serial.println(buf);
      break;
    case DHT_ERROR_CHECKSUM:
      Serial.print("check sum error ");
      Serial.print(myDHT22.getTemperatureC());
      Serial.print("C ");
      Serial.print(myDHT22.getHumidity());
      Serial.println("%");
      break;
    case DHT_BUS_HUNG:
      Serial.println("BUS Hung ");
      break;
    case DHT_ERROR_NOT_PRESENT:
      Serial.println("Not Present ");
      break;
    case DHT_ERROR_ACK_TOO_LONG:
      Serial.println("ACK time out ");
      break;
    case DHT_ERROR_SYNC_TIMEOUT:
      Serial.println("Sync Timeout ");
      break;
    case DHT_ERROR_DATA_TIMEOUT:
      Serial.println("Data Timeout ");
      break;
    case DHT_ERROR_TOOQUICK:
      break;
  }
}

Ce que je voudrais faire c'est envoyer ces données (sans fils de préférence) sur un raspberry qui héberge un site web et afficher les données sur le site. Seulement je n'ai aucune idée et google ne m'a pas aidé (à moins que j'ai mal cherché :~ ).
Je requiers donc votre aide pour me sortir de cette impasse.

Merci d'avance ! :slight_smile:
ziskezick

bonjour,
plusieurs méthodes existent pourtant en cherchant un peu.
rj45 le plus facile
wifi

salut Ziskezick

ou

google est plein de bonne chose pour ça

Merci beaucoup pour vos réponses rapides mais l’endroit où je réalise mon TPE est un lycée donc pas de wifi :~

laul:
salut Ziskezick

[Tutoriel] Arduino et émetteur/récepteur 433MHz (VirtualWire) | Skyduino - Le DIY à la française

ou

[Tutoriel] Arduino + Mirf v2 (nRF24L01+) | Skyduino - Le DIY à la française

google est plein de bonne chose pour ça

Merci laul mais je veut envoyer des données entre un arduino et un raspberry, pas entre deux arduino :stuck_out_tongue:

un raspberry pi a des ports d'extension GPIO et I2C, donc en se documentant bien, il y a moyen d'appliquer les solutions arduino sur raspberry pi (via wiringpi, par exemple) :wink:

XavierMiller:
un raspberry pi a des ports d'extension GPIO et I2C, donc en se documentant bien, il y a moyen d'appliquer les solutions arduino sur raspberry pi (via wiringpi, par exemple) :wink:

oui avec des recherches c'est toute à fait possible

laul:

XavierMiller:
un raspberry pi a des ports d'extension GPIO et I2C, donc en se documentant bien, il y a moyen d'appliquer les solutions arduino sur raspberry pi (via wiringpi, par exemple) :wink:

oui avec des recherches c'est toute à fait possible

Je suis complètement d'accord sauf que la période de TPE en est déjà à la moitié donc je n'ai pas le temps de repartir de 0 :confused:

Bluetooth si les équipements ne sont pas trop éloignés.
Sur l'arduino, un petit module bluetooth connecté sur RX/TX ce qui entraîne très peu de modifications du code existant (le code d'initialisation essentiellement)
Cote Raspi, un dongle bluetooth planté dans l'un des ports USB et roule.

ziskezick:
Merci beaucoup pour vos réponses rapides mais l’endroit où je réalise mon TPE est un lycée donc pas de wifi :~

Pas besoin que le lycée fournisse le wifi le Raspi pourrait être monté en access point mais c'est plus aventureux et certainement plus cher.
Il a aussi la solution de créer une liaison ad hoc mais il y a des problèmes remontés sur la difficulté à établir ce genre de liaison (problème avec les shields arduino et dongle wifi qui ne gèrent pas bien ce mode)

Pour faire clair en prenant compte de l'éloignement important entre le raspi et l'arduino et du fait que l'arduino devra être autonome (batterie+éolienne/panneau solaire) le mieux serait une liaison radio