1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| int lightState = 0;
bool TemperatureBool = false;
bool HumidityBool = false;
bool illuminationBool = false;
bool illuminationState = false;
uint8_t TemperatureValueInteger = 0;
uint8_t TemperatureValueDecimal = 0;
uint8_t TemperatureValue = 0;
uint8_t HumidityValue = 0;
uint8_t illuminationValue = 0;
uint8_t TemperatureOutput[8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, 0x10, 0x00, 0x00}; //A5 5A 06 83 00 0A 01 00 02
uint8_t HumidityOutput[8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, 0x15, 0x00, 0x00}; //A5 5A 06 83 00 14 01 00 05
uint8_t illuminationOutput[8] = {0xA5, 0x5A, 0x05, 0x82, 0x00, 0x20, 0x00, 0x00}; //A5 5A 06 83 00 18 01 00 08
uint32_t cout_i;
uint8_t RecievedTemp[40];
#include "dht11.h"
dht11 DHT;
#define DHT11_PIN 5
#define PIN_A 3
void setup() {
Serial.begin(115200);
}
void loop() {
DHT.read(DHT11_PIN);
if(Serial.available() != 0)
{
for(cout_i = 0; cout_i < 9; cout_i ++)
{
RecievedTemp[cout_i] = Serial.read();
}
switch(RecievedTemp[5])
{
case 0x0A://Temperature start
TemperatureBool = true;
break;
case 0x0C://Temperature stop
TemperatureBool = false;
TemperatureValue = DHT.temperature;
TemperatureOutput[7] = TemperatureValue;
Serial.write(TemperatureOutput, 8);
break;
case 0x0E://Temperature back
TemperatureBool = false;
break;
case 0x14://Humidity start
HumidityBool = true;
break;
case 0x16://Humidity stop
HumidityBool = false;
HumidityValue = DHT.humidity;
HumidityOutput[7] = HumidityValue;
Serial.write(HumidityOutput, 8);
break;
case 0x13://Humidity back
HumidityBool = false;
break;
case 0x18://illumination start
illuminationBool = true;
illuminationState = false;
break;
case 0x19://illumination stop
illuminationBool = false;
illuminationValue = analogRead(PIN_A);
illuminationOutput[7] = illuminationValue;
Serial.write(illuminationOutput, 8);
break;
case 0x17://illumination back
illuminationValue = 0;
illuminationBool = false;
break;
default:
break;
}
}
} |
Partager