#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>
#include <OneWire.h>

int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2

//Temperature chip i/o
OneWire ds(DS18S20_Pin); // on digital pin 2

int son = A0;
int air = A1;
int cour = A2;
int tens = A3;
int vit = A4;
int oil = A5;
int temp = 4;
int hall = 2;
// Démarrage de YunServer. Cettr classe réceptionne
// toutes les requêtes transférées par le serveur web côté Linux.
YunServer server;
void setup (){
// Démarrage du Bridge
Bridge.begin();
// Lance l'écoute du YunServer sur le réseau
server.listenOnLocalhost();
//server.begin();
Serial.begin(9600);

}

void loop () {

// Réceptionne les éventuels clients
YunClient client = server.accept();

//Test si un client est connecté
if (client) {
//Oui il y a un client
//Récupère la requête envoyée par le client
String command = client.readStringUntil('\r');

command = "{temp:";
command += gwendal2en1();
command = ",hall:";
command += gwendal2en1();
command += "}";

command = "{vit:";
command += bozec2en1();
command = ",oil:";
command += bozec2en1();
command += "}";

command = "{son:";
command += jerome2en1();
command = ",air:";
command += jerome2en1();
command += "}";

command = "{cour:";
command += vince2en1();
command = ",tens:";
command += vince2en1();
command += "}";



//client


Serial.print(command);

//Renvoie une valeur
//client.print("ok");

//Fermeture de la connexion et libèration des ressources
client.stop();

}
}//fin loop

int gwendal2en1(){
temp = getTemp();
hall = digitalRead(4);
compteur++; //incrémentation
compteur = 0; //retour a zéro
return temp;
return hall;
}

int jerome2en1(){
son = analogRead(A0);
air = analogRead(A1);
return son;
return air;

}
int vince2en1(){
int cour = analogRead(A2);
int tens = analogRead(A3);
return cour;
return tens;

}
int bozec2en1(){
vit = analogRead(A4);
oil = analogRead(A5); //récupérer la valeur sur A0
return vit;
return oil;
}



float getTemp(){
//returns the temperature from one DS18S20 in DEG Celsius

byte data[12];
byte addr[8];

if ( !ds.search(addr)) {
//no more sensors on chain, reset search
ds.reset_search();
return -1000;
}

if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return -1000;
}

if ( addr[0] != 0x10 && addr[0] != 0x28) {
Serial.print("Device is not recognized");
return -1000;
}

ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end

byte present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad


for (int i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
}

ds.reset_search();

byte MSB = data[1];
byte LSB = data[0];

float tempRead = ((MSB << 8) | LSB); //using two's compliment
float TemperatureSum = tempRead / 16;

return TemperatureSum;

}

En poursuivant votre navigation sur mon site, vous acceptez l’utilisation des Cookies et autres traceurs  pour réaliser des statistiques de visites et enregistrer sur votre machine vos activités pédagogiques. En savoir plus.