- #include <dht11.h>
- #include <Wire.h>
- #include <Adafruit_GFX.h>
- #include <Adafruit_SSD1306.h>
- #include <SHT1x.h>
- int Alight = A0; //定义变量光敏电阻AO=Analog in 0为电压读取端口。
- int JDQX = 2; //定义变量继电器X控制脚 PWM2电平输出端口
- int DHT11PIN = 3;//DHT11 PIN 3 连接PWM 3
- int JDQY = 4;
- int Asoil = A1;
- int JDQZ = 6;
- int soilval = 900;
- dht11 DHT11;
- #define MenuPage 12
-
- #define OLED_DC 7 //AO
- #define OLED_CS 9 //CS
- #define OLED_CLK 10 //D0 SC
- #define OLED_MOSI 11 //D1 DI
- #define OLED_RESET 8 //RES
-
- Adafruit_SSD1306 oled(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
-
- #if (SSD1306_LCDHEIGHT != 64)
- #error("Height incorrect, please fix Adafruit_SSD1306.h!");
- #endif
-
- #define dataPin 14
- #define clockPin 15
- SHT1x sht1x(dataPin, clockPin);
- void setup() {
- pinMode(JDQZ, OUTPUT);
- pinMode(Asoil, INPUT);
- digitalWrite(JDQZ,LOW);
- pinMode(JDQX, OUTPUT);
- Serial.begin(9600);
- Serial1.begin(115200);
- Serial1.println("DHT11 TEST PROGRAM ");
- Serial1.print("LIBRARY VERSION: ");
- Serial1.println(DHT11LIB_VERSION);
- Serial1.println();
- oled.begin(SSD1306_SWITCHCAPVCC);
- oled.clearDisplay();
- oled.setTextColor(WHITE);
- aa();
- oled.clearDisplay();
-
- }
-
-
- void loop()
- {
- int sensorValue = analogRead(Asoil);
- Serial.println(sensorValue);
- if(analogRead(Asoil) > soilval)
- {
-
- digitalWrite(JDQZ, HIGH);
- delay(3000);
- digitalWrite(JDQZ, LOW);
- //delay(300);
- }
- else
- {
- digitalWrite(JDQZ,LOW);
- //delay(300);
- }
-
- int lightval = analogRead(Alight); //从传感器读取值
- Serial.println(lightval); //输出距离值
- delay(1000);
- if(lightval<=500){ //512=2.5V,想让传感器敏感一些的时候,把数值调高,想让传感器迟钝的时候把数值调低。
- digitalWrite(JDQX, HIGH); //当val小于512(2.5V)的时候,led亮。
- }
- else{
- digitalWrite(JDQX, LOW);
- }
-
-
-
- Serial1.println("\n");
-
- int chk = DHT11.read(DHT11PIN);
-
- Serial1.print("Read sensor: ");
- switch (chk)
- {
- case DHTLIB_OK:
- Serial1.println("OK");
- break;
- case DHTLIB_ERROR_CHECKSUM:
- Serial1.println("Checksum error");
- break;
- case DHTLIB_ERROR_TIMEOUT:
- Serial1.println("Time out error");
- break;
- default:
- Serial1.println("Unknown error");
- break;
- }
- Serial1.print("Humidity (%): ");
- Serial1.println((float)DHT11.humidity, 2);
- Serial1.print("Temperature (oC): ");
- Serial1.println((float)DHT11.temperature-2, 2);
- //delay(2000);
-
-
-
- DisplaySHT71();
- }
- /*
- //light
- //void setup() {
- // Serial.begin(9600);
- //pinMode(JDQX, OUTPUT); //使ledPin为输出模式
- //}
- void loop() {
- int lightval = analogRead(Alight); //从传感器读取值
- Serial.println(lightval); //输出距离值
- delay(1000);
- if(lightval<=500){ //512=2.5V,想让传感器敏感一些的时候,把数值调高,想让传感器迟钝的时候把数值调低。
- digitalWrite(JDQX, HIGH); //当val小于512(2.5V)的时候,led亮。
- }
- else{
- digitalWrite(JDQX, LOW);
- }
- }
- //temperature
- //void setup()
- //{
- // Serial1.begin(115200);
- // Serial1.println("DHT11 TEST PROGRAM ");
- // //Serial1.print("LIBRARY VERSION: ");
- // Serial1.println(DHT11LIB_VERSION);
- // Serial1.println();
- //}
-
- void loop()
- {
- Serial1.println("\n");
-
- int chk = DHT11.read(DHT11PIN);
-
- Serial1.print("Read sensor: ");
- switch (chk)
- {
- case DHTLIB_OK:
- Serial1.println("OK");
- break;
- case DHTLIB_ERROR_CHECKSUM:
- Serial1.println("Checksum error");
- break;
- case DHTLIB_ERROR_TIMEOUT:
- Serial1.println("Time out error");
- break;
- default:
- Serial1.println("Unknown error");
- break;
- }
- Serial1.print("Humidity (%): ");
- Serial1.println((float)DHT11.humidity, 2);
- Serial1.print("Temperature (oC): ");
- Serial1.println((float)DHT11.temperature-2, 2);
- //delay(2000);
- }
- */
- void DisplaySHT71(void)
- {
- float temp_c;
- float temp_f;
- float humidity;
- static unsigned char PROGMEM bmp1[] =
- {
- 0x00,0x00,0x04,0x00,0x37,0xE0,0x0C,0x20,0x17,0xE0,0x54,0x20,0x14,0x20,0x17,0xE0,
- 0x28,0x10,0x2F,0xF0,0x6A,0x50,0x2A,0x50,0x2A,0x50,0x3F,0xF8,0x00,0x00,
- };
- static unsigned char PROGMEM bmp2[] =
- {
- 0x00,0x00,0x01,0x00,0x21,0x18,0x3E,0xE0,0x24,0x40,0x3F,0xF8,0x24,0x40,0x23,0xC0,
- 0x20,0x20,0x27,0xE0,0x42,0x40,0x41,0x80,0x41,0x80,0x9E,0x78,0x00,0x00,/*"度",1*/
- };
- static unsigned char PROGMEM bmp3[] =
- {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x30,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x30,0x00,0x00,0x00,0x00,0x00,/*":",2*/
- };
- static unsigned char PROGMEM bmp4[] =
- {
- 0x00,0x00,0x04,0x10,0x27,0xF0,0x1C,0x10,0x17,0xF0,0x54,0x10,0x37,0xF0,0x21,0x40,
- 0x29,0x48,0x25,0x50,0x25,0x60,0x25,0x40,0x61,0x40,0x3F,0xF8,0x00,0x00,/*"湿",0*/
- };
- static unsigned char PROGMEM bmp5[] =
- {
- 0x00,0x00,0x01,0x00,0x21,0x18,0x3E,0xE0,0x24,0x40,0x3F,0xF8,0x24,0x40,0x23,0xC0,
- 0x20,0x20,0x27,0xE0,0x42,0x40,0x41,0x80,0x41,0x80,0x9E,0x78,0x00,0x00,/*"度",1*/
- };
- static unsigned char PROGMEM bmp6[] =
- {
- 0x00,0x00,0x00,0x00,0x31,0xC0,0x32,0x20,0x24,0x10,0x08,0x00,0x08,0x00,0x08,0x00,
- 0x08,0x00,0x08,0x00,0x04,0x00,0x06,0x30,0x03,0xC0,0x00,0x00,0x00,0x00,/*"℃",0*/
- };
- static unsigned char PROGMEM bmp9[] =
- {
- 0x00,0x00,0x03,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x3F,0xF0,0x02,0x00,
- 0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,/*"土",0*/
- };
- static unsigned char PROGMEM bmp10[] =
- {
- 0x00,0x00,0x10,0x80,0x2F,0xF8,0x25,0x50,0x27,0xF0,0x73,0x70,0x21,0x20,0x27,0xF8,
- 0x21,0x50,0x2F,0xF0,0x71,0x90,0x02,0x60,0x06,0xA0,0x19,0x18,0x00,0x00,/*"壤",1*/
- };
- static unsigned char PROGMEM bmp7[] =
- {
- 0x08,0x00,0x0B,0xF8,0x12,0x08,0x22,0x08,0x4B,0xF8,0x0A,0x08,0x12,0x08,0x33,0xF8,
- 0x52,0x44,0x92,0x48,0x12,0x30,0x12,0x20,0x12,0x10,0x12,0x88,0x13,0x06,0x12,0x00,/*"很",4*/
- 0x00,0x00,0x7F,0xFC,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0xFF,0xFE,
- 0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x10,0x20,0x10,0x20,0x20,0x20,0x40,0x20,/*"开",5*/
- 0x00,0x00,0x02,0x00,0x01,0x00,0x00,0x80,0x00,0x80,0x04,0x00,0x04,0x08,0x24,0x04,
- 0x24,0x04,0x24,0x02,0x44,0x02,0x44,0x12,0x84,0x10,0x04,0x10,0x03,0xF0,0x00,0x00,/*"心",6*/
- 0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,
- 0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,/*"!",7*/
- };
- static unsigned char PROGMEM bmp8[] =
- {
- 0x01,0x00,0x01,0x00,0x02,0x80,0x04,0x40,0x08,0x20,0x12,0x10,0x21,0x08,0xC1,0x06,
- 0x00,0x00,0x1F,0xF0,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x80,0x01,0x00,/*"今",0*/
- 0x00,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,
- 0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x10,0x10,0x20,0x08,0xC0,0x06,/*"天",1*/
- 0x08,0x00,0x08,0x10,0x08,0x20,0x08,0x40,0x08,0x80,0x09,0x00,0x08,0x00,0xFF,0xFE,
- 0x0A,0x00,0x09,0x00,0x08,0x80,0x08,0x40,0x09,0x20,0x0A,0x18,0x0C,0x06,0x08,0x00,/*"长",2*/
- 0x08,0x00,0x0B,0xF8,0x12,0x08,0x23,0xF8,0x4A,0x08,0x0B,0xF8,0x10,0x00,0x33,0xFC,
- 0x50,0x10,0x97,0xFE,0x10,0x10,0x12,0x10,0x11,0x10,0x10,0x10,0x10,0x50,0x10,0x20,/*"得",3*/
- };
- // Read values from the sensor
- temp_c = (float)DHT11.humidity;//sht1x.readTemperatureC();
- //temp_f = sht1x.readTemperatureF();
- humidity = (float)DHT11.temperature-2;//sht1x.readHumidity();
-
- //oled.setTextSize(1);
- oled.setTextColor(WHITE);
- //oled.setCursor(0,8);
- //oled.print("Temperature:");
- oled.drawBitmap(40, 0, bmp1, 16,16, 1);
- oled.drawBitmap(56, 0, bmp2, 16,16, 1);
- oled.drawBitmap(72, 0, bmp3, 16,16, 1);
- oled.setTextSize(2);
- oled.setCursor(40,16);
- oled.print(temp_c);
- //oled.setTextSize(2);
- //oled.setCursor(115,16);
- //oled.print("C");
- oled.drawBitmap(115, 16, bmp6, 16,16, 1);
- //oled.setCursor(78,16);
- //oled.print(temp_f);
- //oled.setCursor(108,16);
- //oled.print("F");
-
- oled.drawBitmap(40, 32, bmp9, 16,16, 1);
- oled.drawBitmap(56, 32, bmp10, 16,16, 1);
- oled.drawBitmap(72, 32, bmp4, 16,16, 1);
- oled.drawBitmap(88, 32, bmp5, 16,16, 1);
- oled.drawBitmap(104, 32, bmp3, 16,16, 1);
- oled.setTextSize(2);
- oled.setCursor(40,48);
- oled.println(humidity);
- oled.setCursor(115,48);
- oled.print("%");
-
- oled.drawBitmap(0, 0, bmp8, 16,64, 1);
- oled.drawBitmap(16, 0, bmp7, 16,64, 1);
-
- oled.display();
- delay(50);
- oled.clearDisplay();
-
- }
-
- /*void setup()
- {
- oled.begin(SSD1306_SWITCHCAPVCC);
- oled.clearDisplay();
- oled.setTextColor(WHITE);
- aa();
- oled.clearDisplay();
-
- }
-
- void loop()
- {
- //aa();
- //delay(1000);
- //oled.clearDisplay();
- DisplaySHT71();
- }*/
- void aa()
- {static unsigned char PROGMEM bmp11[] =
- { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x21,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x80,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x70,0x80,0x41,0x80,0x00,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,0x00,
- 0x00,0x01,0x88,0x80,0x06,0x20,0x00,0x00,0x00,0x00,0x08,0xC1,0xF8,0x00,0x00,0x00,
- 0x00,0x02,0x04,0x80,0x08,0x10,0x00,0x00,0x00,0x00,0x10,0x43,0x0C,0x00,0x00,0x00,
- 0x00,0x04,0x02,0x80,0x58,0x08,0x00,0x00,0x00,0x18,0x10,0x44,0x04,0x00,0x00,0x00,
- 0x00,0x04,0x00,0x80,0x50,0x08,0x00,0x00,0x00,0x3E,0x30,0x48,0x04,0x00,0x00,0x00,
- 0x00,0x04,0x01,0x80,0x60,0x04,0x00,0x00,0x00,0x61,0x20,0x50,0x08,0x00,0x00,0x00,
- 0x00,0x04,0x00,0x80,0x60,0x04,0x00,0x00,0x00,0x60,0xA0,0x50,0x08,0x00,0x00,0x00,
- 0x00,0x04,0x00,0xC0,0x40,0x08,0x00,0x00,0x00,0x20,0x60,0x60,0x10,0x00,0x00,0x00,
- 0x00,0x06,0x00,0x40,0xC0,0x08,0x00,0x00,0x00,0x20,0x20,0x40,0x20,0x00,0x00,0x00,
- 0x00,0x02,0x00,0x40,0x80,0x10,0x00,0x00,0x00,0x30,0x20,0xC0,0x40,0x00,0x00,0x00,
- 0x00,0x01,0x00,0x60,0x80,0x20,0x00,0x00,0x00,0x10,0x10,0xC0,0xC7,0x00,0x00,0x00,
- 0x00,0x3C,0x80,0x21,0x80,0x4F,0x80,0x00,0x00,0x18,0x10,0x81,0xB8,0xC0,0x00,0x00,
- 0x00,0xC1,0xE0,0x21,0x00,0xE0,0x40,0x00,0x00,0x08,0x10,0x83,0xC0,0x60,0x00,0x00,
- 0x00,0x80,0x70,0x3F,0x83,0x80,0x20,0x00,0x00,0xC4,0x00,0x07,0x00,0x20,0x00,0x00,
- 0x01,0x00,0x1C,0xC0,0x66,0x00,0x20,0x00,0x0C,0x1E,0x1D,0xCC,0x00,0x20,0x00,0x00,
- 0x01,0x00,0x07,0x80,0x38,0x00,0x20,0x00,0x10,0x01,0x40,0x28,0x00,0x60,0x00,0x00,
- 0x01,0x00,0x03,0x31,0x90,0x00,0x20,0x00,0x20,0x00,0x80,0x10,0x00,0xC0,0x00,0x00,
- 0x01,0x00,0x02,0x31,0x88,0x00,0x20,0x00,0x20,0x01,0x33,0x10,0x03,0x80,0x00,0x00,
- 0x01,0x00,0x02,0x20,0x08,0x00,0x20,0x00,0x20,0x02,0x33,0x00,0x1C,0x00,0x00,0x00,
- 0x00,0x80,0x02,0x00,0x08,0x00,0x20,0x00,0x30,0x02,0x00,0x01,0xFC,0x00,0x00,0x00,
- 0x00,0x40,0x06,0x00,0x08,0x00,0xC0,0x00,0x0F,0xFC,0x00,0x0C,0x03,0x80,0x00,0x00,
- 0x00,0x3F,0xFE,0xC0,0x4F,0xFF,0x00,0x00,0x00,0xC0,0x41,0x10,0x00,0x40,0x00,0x00,
- 0x00,0x03,0x82,0x40,0x58,0x70,0x00,0x00,0x03,0x00,0x73,0x10,0x00,0x20,0x00,0x00,
- 0x00,0x0C,0x01,0x3B,0x90,0x0C,0x00,0x00,0x06,0x02,0x3E,0x20,0x00,0x10,0x00,0x00,
- 0x00,0x10,0x01,0x8E,0x20,0x03,0x00,0x00,0x04,0x02,0x00,0x20,0x00,0x10,0x00,0x00,
- 0x00,0x20,0x00,0xC0,0xE0,0x01,0x80,0x00,0x08,0x02,0x00,0x50,0x00,0x20,0x00,0x00,
- 0x00,0x40,0x01,0x3F,0xB0,0x00,0x80,0x00,0x10,0x01,0x01,0x0C,0x00,0x60,0x00,0x00,
- 0x00,0x40,0x02,0x04,0x10,0x00,0x00,0x00,0x10,0x02,0xC6,0x07,0x01,0xC0,0x00,0x00,
- 0x00,0x40,0x06,0x04,0x08,0x00,0x00,0x00,0x20,0x0C,0x00,0x02,0xFF,0x00,0x00,0x00,
- 0x00,0x40,0x0C,0x04,0x0C,0x00,0x80,0x00,0x20,0x3C,0x06,0x02,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x18,0x04,0x06,0x00,0x80,0x00,0x20,0x68,0x06,0x01,0x80,0x00,0x00,0x00,
- 0x00,0x20,0x28,0x04,0x03,0x01,0x00,0x00,0x10,0x88,0x06,0x01,0x40,0x00,0x00,0x00,
- 0x00,0x10,0xD0,0x04,0x02,0xC1,0x00,0x00,0x1F,0x08,0x06,0x01,0x40,0x00,0x00,0x00,
- 0x00,0x0F,0x10,0x0C,0x01,0x3C,0x00,0x00,0x00,0x08,0x09,0x01,0x40,0x00,0x00,0x00,
- 0x00,0x00,0x20,0x0C,0x01,0x00,0x00,0x00,0x00,0x08,0x09,0x01,0x40,0x00,0x00,0x00,
- 0x00,0x00,0x20,0x0C,0x01,0x00,0x00,0x00,0x00,0x08,0x18,0x81,0x40,0x00,0x00,0x00,
- 0x00,0x00,0x20,0x08,0x00,0x00,0x00,0x00,0x00,0x0C,0x10,0x42,0x40,0x00,0x00,0x00,
- 0x00,0x00,0x20,0x0A,0x01,0x00,0x00,0x00,0x00,0x04,0x20,0x36,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x20,0x1A,0x01,0x00,0x00,0x00,0x00,0x03,0xC0,0x0C,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x10,0x1B,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x0C,0x6A,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x80,0x00,0x00,0x00,
- 0x00,0x00,0x03,0x8A,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x3F,0xC0,0x00,0x00,
- 0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0xC4,0x70,0x00,0x00,
- 0x00,0x40,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x1F,0x68,0x00,0x00,
- 0x00,0x60,0x00,0x0A,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x27,0x31,0xE4,0x00,0x00,
- 0x00,0x5C,0x00,0x0A,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x24,0xC0,0x62,0x00,0x00,
- 0x00,0x41,0x80,0x0A,0x00,0x1C,0x40,0x00,0x00,0x00,0x00,0x4C,0x41,0xD3,0x00,0x00,
- 0x00,0x40,0x30,0x0A,0x00,0xE0,0x40,0x00,0x00,0x00,0x00,0x48,0x6F,0x0C,0x80,0x00,
- 0x00,0x40,0x0C,0x0A,0x03,0x00,0x40,0x00,0x00,0x00,0x00,0x90,0x38,0x0E,0x40,0x00,
- 0x00,0x40,0x03,0x0A,0x0C,0x00,0x40,0x00,0x00,0x00,0x00,0x90,0x10,0x3B,0x60,0x00,
- 0x00,0x00,0x00,0xCA,0x30,0x00,0x40,0x00,0x00,0x00,0x01,0x20,0x08,0xF0,0x70,0x00,
- 0x00,0x20,0x00,0x2A,0xC0,0x00,0x00,0x00,0x00,0x00,0x01,0x20,0x0F,0xC0,0xC0,0x00,
- 0x00,0x20,0x00,0x1B,0x00,0x00,0x80,0x00,0x00,0x00,0x03,0x40,0x03,0x0F,0x00,0x00,
- 0x00,0x20,0x00,0x0A,0x00,0x00,0x80,0x00,0x00,0x00,0x02,0x40,0x00,0x70,0x00,0x00,
- 0x00,0x10,0x00,0x06,0x00,0x00,0x80,0x00,0x00,0x00,0x02,0x80,0x00,0x00,0x00,0x00,
- 0x00,0x08,0x00,0x04,0x00,0x01,0x00,0x00,0x00,0x00,0x04,0x80,0x00,0x00,0x00,0x00,
- 0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x00,0x00,0x00,0x04,0x80,0x00,0x00,0x00,0x00,
- 0x00,0x03,0x00,0x0A,0x00,0x0C,0x00,0x00,0x00,0x00,0x04,0x80,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"C:\Users\Vincent\Desktop\22.bmp",0*/
- };
- oled.drawBitmap(0, 0, bmp11, 128,64, 1);
- oled.display();
- }
复制代码 |