</pre>
===émetteur ===
Ce code est à mettre du côté émetteur. A utiliser avec le schéma de câblage afin de reproduire le dispositif au labo.
<pre>
#include <VirtualWire.h> // Vous devez télécharger et installer la librairie VirtualWire.h dans votre dossier "/libraries" !
#include "DHT.h"
#include<stdlib.h>
// les broches des capteurs
#define SENSDHTPIN 4 // la broche dédiée au capteur de température & hygrométrie de l'air
#define DHTTYPE DHT22 // DHT 22 (AM2302) le modèle du capteur
DHT dht(SENSDHTPIN, DHTTYPE);
// les capteurs I2C
// attention au 3,3V vs 5v
//#DEFINE SENSLIGHTPIN = 5 ; // la broche dédiée au luxmètre => I2C
//#DEFINE SENSPROXPIN = 6 ; // la broche dédiée au télémètre
// interrupteur
#define SWITCHPIN 2
// le compteur à incrémenter
int truc = 0;
// le tableau des valeurs
#define NUMVALUES 12
float sensValues[NUMVALUES];
////////////////////////////////////////////////
//message à envoyer.
const char *msg="abcdefghijih";
// ses élements : les valeurs des capteurs
char *tempValue; // variable de température
char *humidityValue; // variable % hygrométrie de l'air
char *luxValue;
unsigned int sensSwitch = 0 ; // variable de l'interrupteur
// unsigned int sensLight = 0 ; // variable dédiée au niveau lumièe en lux
// unsigned int sensProx = 0 ; // variable de distance
// unsigned int sensBend = 0; // variable du capteur de flexion
// unsigned int sensSwitch = 0; // l'interrupteur
/////////////////////////////////////////////////////////////
// les variables temporelles
unsigned long latestSensingMillis = millis(); // mémorise la dernière fois qu'on a interogé les capteurs
unsigned long latestDHTSensingMillis = millis(); // la dernière fois qu'on a interogé le capteur temp+hygro
unsigned long latestSendingMillis = millis(); // la dernière fois qu'on a envoyé les valeurs
unsigned long sensingIntervalMillis = 500; // intervalle de temps avant une nouvelle interrogation des capteurs
unsigned long sensingDHTIntervalMillis = 2500; // intervalle de temps avant nouvelle interrogation capteur DHT
unsigned long sendingIntervalMillis = 1500; // intervalle de temps avant nouvel envoi de valeurs
unsigned long time;
/////////////////////////////////////////////////////////////
void setup()
{
Serial.begin(9600);
// capteurs & inter
pinMode(SWITCHPIN, INPUT_PULLUP); // pour l'interrupteur
// la communication radio
vw_setup(2000); // Bits par seconde (2000 = bonne portée. Si augmente, portée diminue
vw_set_tx_pin(3); // La broche 3 pour transmettre la DATA
// on lance le capteur de temp + hygro
Serial.println("DHTxx test!");
dht.begin();
}
////////////////////////// le loooooooop ///////////////////////////////////////
void loop()
{
time = millis();
getTemp(time);
//getMsgContent(time); //on l'imprime
sendMsg(time); // on doit assembler les valeurs en tableau de char
}
////////////////////////// les fonctions ///////////////////////////////////////
void getTemp(long time)
{
float t;
float h;
if (time - latestDHTSensingMillis > sensingDHTIntervalMillis){
//Serial.println("get");
t = dht.readTemperature();
h = dht.readHumidity();
if (isnan(t) || isnan(h))
Serial.println("capteur DHT injoignable!");
else
itoa(t, tempValue, 5);
itoa(h, humidityValue, 5);
latestDHTSensingMillis = time;
return;
Serial.println(" ");
Serial.print("Temperature : ");
Serial.println(t);
Serial.print("Humidity : ");
Serial.println(h);
Serial.println(" ");
latestDHTSensingMillis = time;
return;
}
}
void sendMsg(long time)
{
if (time - latestSendingMillis > sendingIntervalMillis){
//Serial.println("Msg");
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // On attend la fin de l'envoi du msg.
latestSendingMillis = time;
delay(25);
}
}
char buildMyTempValue(char tempValue)
{
return;
}
char charCipher(char entier)
{
char lettre='a';
switch(entier){
case '0':
break;
case '1':
lettre = 'b';
break;
case '2':
lettre = 'b';
break;
case '3':
lettre = 'b';
break;
case '4':
lettre = 'b';
break;
case '5':
lettre = 'b';
break;
case '6':
lettre = 'b';
break;
case '7':
lettre = 'b';
break;
case '8':
lettre = 'b';
break;
case '9':
lettre = 'b';
break;
}
return char(lettre);
}
</pre>
[[Catégorie:Projets]]
[[Catégorie:Edna]]
[[Catégorie:Workshops]]