#include // Laser ldr sensor #define LDR1 A0 #define LDR2 A1 #define LASER D0 int LDR_LASER; int LDR_NOLASER; int LEDGEEL = D6; int LEDGROEN = D5; int LEDROOD = D7; int licht = 3400; int schaal = 400; int S1; int S2; int S; int LS1 = 0; int LS2 = 0; int HS1; int HS2; int DS; int Sconstrain; int LaserPercentage; int MaxS; //Humidity sensor #define MAXTIMINGS 85 #define cli noInterrupts #define sei interrupts #define DHT11 11 #define DHT22 22 #define DHT21 21 #define AM2301 21 #define NAN 999999 #define DHTPIN D2 // Digital pin D2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); int h; int t; // temperature int f = 0; // failed? void print_every_fiveseconds(){ // h = dht.readHumidity(); Particle.publish("info", "H(" + String(h) + "%) " + " LDR1(" + String(analogRead(LDR1)) + ") LDR2(" + String(analogRead(LDR2)) + ") S(" + String(S)+ ") T:" + String(t) + " $" + String(LaserPercentage)); Particle.publish("publish_%", String(LaserPercentage)); } void print_every_100_miliseconds(){ S1 = analogRead(LDR1); S2 = analogRead(LDR2); S = S1-S2-DS; Sconstrain = constrain(S, 0, MaxS); LaserPercentage = map(Sconstrain, 0, MaxS, 0, 100); if (LaserPercentage>=80){ digitalWrite(LEDGROEN, HIGH); digitalWrite(LEDGEEL, LOW); digitalWrite(LEDROOD, LOW); } else if (LaserPercentage>50 && LaserPercentage < 80) { digitalWrite(LEDGEEL, HIGH); digitalWrite(LEDGROEN, LOW); digitalWrite(LEDROOD, LOW); } else { digitalWrite(LEDROOD, HIGH); digitalWrite(LEDGEEL, LOW); digitalWrite(LEDGROEN, LOW); } } Timer timer1(5000, print_every_fiveseconds); Timer timer2(100, print_every_100_miliseconds); void setup() { Serial.begin(9600); dht.begin(); // laser ldr sensor pinMode(LDR1, INPUT); pinMode(LDR2, INPUT); pinMode(LASER, OUTPUT); pinMode(LEDGEEL, OUTPUT); pinMode(LEDGROEN, OUTPUT); pinMode(LEDROOD, OUTPUT); digitalWrite(LASER, LOW); //Testing the LED's digitalWrite(LEDGEEL, HIGH); digitalWrite(LEDGROEN, HIGH); digitalWrite(LEDROOD, HIGH); delay(1000); digitalWrite(LEDGEEL, LOW); digitalWrite(LEDGROEN, LOW); digitalWrite(LEDROOD, LOW); // Calibrating the LDR's for (int i=0; i<= 2; i++){ LS1 = LS1 + analogRead(LDR1); LS2 = LS2 + analogRead(LDR2); Particle.publish("test", String(LS1)+ " " + String(LS2)); delay(1000); } DS = (LS1-LS2)/3; digitalWrite(LASER, HIGH); // Ijken van de MaxS for (int i=0; i<= 10; i++){ S1 = analogRead(LDR1); S2 = analogRead(LDR2); S = S1-S2-DS; MaxS = max(S, MaxS); delay(200); } Particle.publish("Calibrating LDR", "LDR1 " + String(LS1) + " LDR2 "+ String(LS2) + " DS " + String(DS) + " MaxS " + String(MaxS)); h = dht.getHumidity(); S1 = analogRead(LDR1); S2 = analogRead(LDR2); S = S1-S2-DS; MaxS = S; timer1.start(); timer2.start(); } void loop() { h = (int)dht.getHumidity(); t = (int)dht.getTempCelcius(); delay(2000); }