Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Temperature + humidité
- #include <Wire.h>
- #include "Adafruit_MCP9808.h"
- #include <string.h>//Particule
- #include <Servo.h>
- Adafruit_MCP9808 tempsensor = Adafruit_MCP9808();// Create the MCP9808 temperature sensor object
- Servo myservo;// Créé l'objet myservo
- int incomingByte = 0;
- int HumPin = A1;//Port du capteur d'humidité
- int DustPin = 8;//Pin particle
- int UVPin = 5;//Pin UV
- int ResistPin = 4;//Pin Resistance
- int VentPin = 3;
- int ServoPin = 6;
- int EtatUV = 0;
- int EtatRes = 0;
- int EtatVent = 0;
- int EtatServo = 0;
- //Particule
- unsigned long duration;
- unsigned long starttime;
- unsigned long endtime;
- unsigned long sampletime_ms = 30000;
- unsigned long lowpulseoccupancy = 0;
- float ratio;
- float concentration;
- float p;
- void setup() {
- Serial.begin(9600);
- pinMode(UVPin,OUTPUT);
- pinMode(ResistPin,OUTPUT);
- pinMode(VentPin,OUTPUT);
- pinMode(DustPin,INPUT);
- starttime = millis();
- }
- void loop() {
- if(Serial.available() > 0){
- incomingByte = Serial.read();
- if(incomingByte == 'A'){
- myservo.attach(ServoPin);
- digitalWrite(UVPin, HIGH); EtatUV = 1;
- digitalWrite(ResistPin, HIGH); EtatRes = 1;
- digitalWrite(VentPin, HIGH); EtatVent = 1;
- myservo.write(88); EtatServo = 1;
- incomingByte = 0;
- }
- if(incomingByte == 'B'){
- myservo.attach(ServoPin);
- digitalWrite(UVPin, HIGH); EtatUV = 1;
- digitalWrite(ResistPin, LOW); EtatRes = 0;
- digitalWrite(VentPin, HIGH); EtatVent = 1;
- myservo.write(88); EtatServo = 1;
- incomingByte = 0;
- }
- if(incomingByte == 'C'){
- digitalWrite(UVPin, LOW); EtatUV = 0;
- digitalWrite(ResistPin, HIGH); EtatRes = 1;
- digitalWrite(VentPin, HIGH); EtatVent = 1;
- myservo.detach(); EtatServo = 0;
- incomingByte = 0;
- }
- if(incomingByte == 'D'){
- Serial.write(Temperature());
- Serial.write(Humidite());
- Serial.write(Part());
- incomingByte = 0;
- }
- if(incomingByte == 'E'){
- Serial.write(EtatUV);
- Serial.write(EtatRes);
- Serial.write(EtatVent);
- incomingByte = 0;
- }
- if(incomingByte == 'F'){
- digitalWrite(UVPin, LOW); EtatUV = 0;
- digitalWrite(ResistPin, LOW); EtatRes = 0;
- digitalWrite(VentPin, LOW); EtatVent = 0;
- myservo.detach(); EtatServo = 0;
- incomingByte = 0;
- }
- }
- }
- byte Temperature() {
- /*
- float c = tempsensor.readTempC();
- c = (byte)(2 * c + 0.5);
- return c;
- */
- return 5;
- }
- byte Humidite() {
- /*
- int h = analogRead(HumPin);
- int i = 5.0 * (0.0062 * h + 0.16);
- i = (byte)(i + 0.5);
- return i;
- */
- return 5;
- }
- byte Part(){
- /*
- //Capteur de particule
- duration = pulseIn(DustPin, LOW);//Recuperation du temps bas sur l'onde PWM
- lowpulseoccupancy += duration;
- endtime = millis();
- if ((endtime-starttime) > sampletime_ms){
- ratio = (lowpulseoccupancy-endtime+starttime + sampletime_ms)/(sampletime_ms*10.0); // Integer percentage 0=>100
- concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62; // using spec sheet curve
- lowpulseoccupancy = 0;
- starttime = millis();
- i = (byte) concentration;
- return i;
- }
- */
- return 4;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement