Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <aJSON.h>
- #define temperatureSensor 7
- #define lightSensor 0
- #define motionSensor 6
- #define led1 3
- #define led2 4
- #define led3 5
- byte dat[5];
- aJsonStream serial_stream(&Serial);
- aJsonObject *createMessage() {
- aJsonObject *msg = aJson.createObject();
- aJson.addNumberToObject(msg, "temperature", dat[2]-3);
- aJson.addNumberToObject(msg, "humidity", dat[0]);
- aJson.addNumberToObject(msg, "light", analogRead(lightSensor));
- aJson.addNumberToObject(msg, "motion", digitalRead(motionSensor));
- return msg;
- }
- byte read_data() {
- byte data;
- for (int i=0; i < 8; i++) {
- if (digitalRead(temperatureSensor) == LOW) {
- while (digitalRead(temperatureSensor) == LOW);
- delayMicroseconds(30);
- if (digitalRead(temperatureSensor) == HIGH)
- data |= (1<<(7-i));
- while(digitalRead(temperatureSensor) == HIGH);
- }
- }
- return data;
- }
- void setup()
- {
- Serial.begin(9600);
- pinMode(temperatureSensor, OUTPUT);
- pinMode(motionSensor, INPUT);
- }
- void checkLights() {
- if (Serial.available() > 0) {
- int b1 = Serial.parseInt();
- int b2 = Serial.parseInt();
- Serial.println(b1);
- Serial.println(b2);
- switch(b1) {
- case 1 : analogWrite(led1, b2);
- break;
- case 2 : analogWrite(led2, b2);
- break;
- case 3 : analogWrite(led3, b2);
- break;
- default:
- break;
- }
- }
- }
- void loop()
- {
- digitalWrite(temperatureSensor,LOW);
- delay(30);
- digitalWrite(temperatureSensor, HIGH);
- delayMicroseconds(40);
- pinMode(temperatureSensor, INPUT);
- while(digitalRead(temperatureSensor) == LOW);
- delayMicroseconds(80);
- for (int i = 0; i < 4; i++)
- dat[i] = read_data();
- pinMode(temperatureSensor, OUTPUT);
- digitalWrite(temperatureSensor, HIGH);
- aJsonObject *msg = createMessage();
- aJson.print(msg, &serial_stream);
- Serial.println();
- checkLights();
- Serial.flush();
- delay(2000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement