#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DS3231.h>
#include <dht11.h>
#include <SoftwareSerial.h>
//SoftwareSerial mySerial(0, 1); // RX, TX
int Glight = A0; //定义变量光敏电阻AO=Analog in 0为电压读取端口。
int JDQLIGHT = 8; //定义变量继电器X控制脚 PWM2电平输出端口
#define DHT11PIN 22//DHT11 PIN 3 连接PWM 3
int ASignal = A1;
int JDQSOIL = 10;
int soilval = 900;
int Alight=0;
//time = millis();//单片机运行时间
/*int x=0;//补光开始时间
int t=0;//日照时间
int lightTH=12;//光照时间Hour定义
int lightTM=0;//光照时间Minute定义
//int lightT;//光照时间
//int BGT;//补光时间
int L2=1;
int lightT = lightTH*3600+lightTM*60;//光照时间=日照时间+补光时间
int BGT=lightT-t;//补光时间=光照时间-日照时间*/
dht11 DHT11;
DS3231 Clock;//time
bool Century=false;
bool h12;
bool PM;
byte ADay, AHour, AMinute, ASecond, ABits;
bool ADy, A12h, Apm;
int second,minute,hour,date,DoW,month,year,temperature;
#define MenuPage 3//OLED
#define OLED_DC 7 //AO
#define OLED_CS 5 //CS
#define OLED_CLK 4 //D0 SC
#define OLED_MOSI 3 //D1 DI
#define OLED_RESET 6 //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
void setup(void)
{
oled.begin(SSD1306_SWITCHCAPVCC);
oled.clearDisplay();
oled.setTextColor(WHITE);
aa();
oled.clearDisplay();
Wire.begin();
/* Clock.setYear(14);//时间校准
Clock.setMonth(11);//时间校准
Clock.setDate(28);//时间校准
Clock.setHour(19);//时间校准
Clock.setMinute(07);//时间校准
Clock.setSecond(30);//时间校准*/
Clock.setClockMode(true);
pinMode(JDQSOIL, OUTPUT);
digitalWrite(JDQSOIL,LOW);
pinMode(JDQLIGHT, OUTPUT);
digitalWrite(JDQLIGHT,LOW);
Serial.begin(9600);
}
void loop(void) {
Soil();
LIGHT();
DisplayTIME();
//delay(1000);
}
void Soil()
{ int sensorValue = analogRead(ASignal);
/*Serial.print("soil.humidity");
Serial.print(sensorValue);*/
sensorValue = map(sensorValue,0,1023,100,0);
/*Serial.print(' ');
Serial.print(' ');
Serial.print(' ');
Serial.print(sensorValue);
Serial.println("%");*/
if(analogRead(ASignal) > soilval)
{
digitalWrite(JDQSOIL, HIGH);
//delay(3000);
//digitalWrite(JDQSOIL, LOW);
//delay(300);
}
else
{
digitalWrite(JDQSOIL,LOW);
//delay(300);
}
}
void DisplayTIME()
{int chk = DHT11.read(DHT11PIN);
int second,minute,hour,date,dow,month,year,temperature;
int sensorValue = analogRead(ASignal);
sensorValue = map(sensorValue,0,1023,100,0);
second=Clock.getSecond();
minute=Clock.getMinute();
hour=Clock.getHour(h12,PM);
date=Clock.getDate();
dow=Clock.getDoW();
month=Clock.getMonth(Century);
year=Clock.getYear();
temperature=Clock.getTemperature();
/* Serial.print(dow,DEC);
Serial.print("20");
Serial.print(year,DEC);
Serial.print('-');
Serial.print(month,DEC);
Serial.print('-');
Serial.print(date,DEC);
Serial.print(' ');
if(PM==0) //判断变量PM返回值 0就显示AM 1就显示PM
{ Serial.print("AM");}
else
{Serial.print("PM");}
Serial.print(hour,DEC);
Serial.print(':');
Serial.print(minute,DEC);
Serial.print(':');
Serial.print(second,DEC);
Serial.print('\n');
Serial.print("Temperature=");
Serial.print(temperature);
Serial.print('\n');*/
oled.setTextColor(WHITE);
oled.setTextSize(1);
oled.setCursor(0,0);
oled.print("20");
oled.print(year,DEC);
oled.print('-');
oled.print(month,DEC);
oled.print('-');
oled.print(date,DEC);
oled.print(' ');
oled.setTextSize(1);
if(PM==0) //判断变量PM返回值 0就显示AM 1就显示PM
{ oled.print("AM");}
else
{oled.print("PM");}
oled.print(hour,DEC);
oled.print(':');
oled.print(minute,DEC);
oled.print(':');
oled.setTextSize(1);
oled.print(second,DEC);
oled.setTextSize(1);
oled.setCursor(0,8);
switch(dow)
{
case 1: {oled.print("Monday");}
break;
case 2: {oled.print("Tuesday");}
break;
case 3: {oled.print("Wednesday");}
break;
case 4: {oled.print("Thursday");}
break;
case 5: {oled.print("Friday");}
break;
case 6: {oled.print("Saturday");}
break;
case 7: {oled.print("Sunday");}
break;
}
oled.setTextSize(1);
oled.setCursor(0,8);
static unsigned char PROGMEM bmp2[] ={
0x00,0x00,0xE0,0xA0,0x40,0x80,0xE0,0x00,/*"2",0*/
};
static unsigned char PROGMEM bmpMH[] ={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,
0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,/*":",0*/
};
static unsigned char PROGMEM bmpN[] ={
0x01,0x00,0x81,0x00,0x5F,0xE0,0x12,0x20,0x02,0x00,0x85,0x20,0x4D,0x40,0x14,0x80,
0x04,0x80,0x44,0x40,0x86,0x20,0x04,0x00,/*"浓",0*/
};
static unsigned char PROGMEM bmpD[] ={
0x02,0x00,0x7F,0xE0,0x48,0x80,0x7F,0xE0,0x48,0x80,0x4F,0x80,0x40,0x00,0x5F,0xC0,
0x48,0x40,0x44,0x80,0x43,0x00,0x9C,0xE0,/*"度",1*/
};
static unsigned char PROGMEM bmpS[] ={
0x80,0x00,0x5F,0xC0,0x10,0x40,0x1F,0xC0,0x90,0x40,0x5F,0xC0,0x05,0x00,0x25,0x20,
0x15,0x40,0x45,0x00,0x85,0x00,0x3F,0xE0,/*"湿",0*/
};
static unsigned char PROGMEM bmpW[] ={
0x0F,0x80,0x88,0x80,0x4F,0x80,0x08,0x80,0x0F,0x80,0x80,0x00,0x5F,0xC0,0x15,0x40,
0x35,0x40,0x55,0x40,0x95,0x40,0x3F,0xE0,/*"温",0*/
};
static unsigned char PROGMEM bmpK[] ={
0x08,0x00,0x04,0x00,0xFF,0xE0,0x91,0x20,0x20,0x80,0x40,0x40,0x00,0x00,0x7F,0xC0,
0x04,0x00,0x04,0x00,0x04,0x00,0xFF,0xE0,/*"空",0*/
};
static unsigned char PROGMEM bmpQ[] ={
0x20,0x00,0x3F,0xE0,0x40,0x00,0xBF,0xC0,0x00,0x00,0x7F,0x80,0x00,0x80,0x00,0x80,
0x00,0x80,0x00,0xA0,0x00,0x60,0x00,0x20,/*"气",0*/
};
static unsigned char PROGMEM bmpT[] ={
0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x7F,0xC0,0x04,0x00,0x04,0x00,0x04,0x00,
0x04,0x00,0x04,0x00,0x04,0x00,0xFF,0xE0,/*"土",0*/
};
static unsigned char PROGMEM bmpR[] ={
0x41,0x00,0x4F,0xE0,0x40,0x00,0x4E,0xE0,0xEA,0xA0,0x4E,0xE0,0x42,0x80,0x4F,0xE0,
0x42,0x80,0x6F,0xE0,0xC6,0x40,0x0B,0x20,/*"壤",0*/
};
static unsigned char PROGMEM bmpBFH[] ={
0x00,0x00,0x48,0xA8,0xB0,0x50,0x28,0x34,0x54,0x48,0x00,0x00,/*"%",0*/
};
static unsigned char PROGMEM bmpSSD[] ={
0x00,0x00,0x00,0x00,0x6F,0x80,0x10,0x80,0x10,0x00,0x10,0x00,0x10,0x00,0x11,0x00,
0x0E,0x00,0x00,0x00,/*"℃",0*/
};
static unsigned char PROGMEM bmpYD[]={
0x03,0x00,0x03,0x00,0x03,0x00,0x07,0x80,0x07,0x80,0x0F,0xC0,0x1F,0xE0,0x1F,0xE0,
0x1F,0xE0,0x1F,0xE0,0x1F,0xE0,0x0F,0xC0,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00};
static unsigned char PROGMEM bmpYD2[]={0x03,0x00,0x03,0x00,0x03,0x00,0x04,0x80,0x04,0x80,0x08,0x40,0x10,0x20,0x10,0x20,
0x10,0x20,0x10,0x20,0x10,0x20,0x08,0x40,0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x00,};
oled.setTextSize(1);
oled.setCursor(0,20);
oled.print("CO");
oled.drawBitmap(12, 20, bmp2, 8,8, 1);
oled.drawBitmap(16, 16, bmpN, 12,12, 1);
oled.drawBitmap(28, 16, bmpD, 12,12, 1);
oled.drawBitmap(40, 16, bmpMH,12,12, 1);
oled.setTextSize(1);
oled.setCursor(46,20);
oled.print(10000);
oled.print("ppm");
oled.drawBitmap(0, 30, bmpK, 12,12, 1);
oled.drawBitmap(12, 30, bmpQ, 12,12, 1);
oled.drawBitmap(24, 30, bmpW, 12,12, 1);
oled.drawBitmap(36, 30, bmpD, 12,12, 1);
oled.drawBitmap(49, 30, bmpMH, 12,12, 1);
oled.setTextSize(1);
oled.setCursor(55,34);
// Serial.print("air.temperture");
// Serial.print((int)DHT11.temperature-2);
oled.print((int)DHT11.temperature-2, 1);
//oled.print("C");
oled.drawBitmap(66, 32, bmpSSD, 10,10, 1);
oled.drawBitmap(78, 30, bmpS, 12,12, 1);
oled.drawBitmap(92, 30, bmpD, 12,12, 1);
oled.drawBitmap(104, 30, bmpMH, 12,12, 1);
oled.setTextSize(1);
oled.setCursor(110,34);
oled.print((int)DHT11.humidity,1);
//Serial.print("air.humidity");
//Serial.print((int)DHT11.humidity, 1);
oled.print("%");
oled.drawBitmap(0, 43, bmpT, 12,12, 1);
oled.drawBitmap(12, 43, bmpR, 12,12, 1);
oled.drawBitmap(24, 43, bmpS, 12,12, 1);
oled.drawBitmap(36, 43, bmpD, 12,12, 1);
oled.drawBitmap(48, 43, bmpMH,12,12, 1);
oled.setTextSize(1);
oled.setCursor(54,48);
oled.print(sensorValue);
//Serial.print("soil.humidity");
//Serial.println(sensorValue);
oled.print("%");
//土壤湿度不同时进行不同的水滴动画
int s = second;
//Serial.println(s);
// Serial.println((int)sensorValue/20);
switch ((int)sensorValue/20)
{
case 0: {oled.drawBitmap(72, 44, bmpYD2, 16,16, 1);
oled.drawBitmap(84, 48, bmpYD2, 16,16, 1);
oled.drawBitmap(96, 45, bmpYD2, 16,16, 1);
oled.drawBitmap(108, 47, bmpYD2, 16,16, 1);}
break;
case 3: {switch (s%6)
{
case 0:{oled.drawBitmap(72, 44, bmpYD2, 16,16, 1);
oled.drawBitmap(84, 48, bmpYD, 16,16, 1);
oled.drawBitmap(96, 45, bmpYD, 16,16, 1);
oled.drawBitmap(108, 47, bmpYD, 16,16, 1);}
break;
case 1:
case 5:{oled.drawBitmap(72, 44, bmpYD, 16,16, 1);
oled.drawBitmap(84, 48, bmpYD2, 16,16, 1);
oled.drawBitmap(96, 45, bmpYD, 16,16, 1);
oled.drawBitmap(108, 47, bmpYD, 16,16, 1);}
break;
case 2:
case 4:{oled.drawBitmap(72, 44, bmpYD, 16,16, 1);
oled.drawBitmap(84, 48, bmpYD, 16,16, 1);
oled.drawBitmap(96, 45, bmpYD2, 16,16, 1);
oled.drawBitmap(108, 47, bmpYD, 16,16, 1);}
break;
case 3:{oled.drawBitmap(72, 44, bmpYD, 16,16, 1);
oled.drawBitmap(84, 48, bmpYD, 16,16, 1);
oled.drawBitmap(96, 45, bmpYD, 16,16, 1);
oled.drawBitmap(108, 47, bmpYD2, 16,16, 1);
break;} }}
break;
case 2: {switch (s%2)
{
case 0:{oled.drawBitmap(72, 44, bmpYD, 16,16, 1);
oled.drawBitmap(84, 48, bmpYD2, 16,16, 1);
oled.drawBitmap(96, 45, bmpYD, 16,16, 1);
oled.drawBitmap(108, 47, bmpYD2, 16,16, 1);}
break;
case 1:{oled.drawBitmap(72, 44, bmpYD2, 16,16, 1);
oled.drawBitmap(84, 48, bmpYD, 16,16, 1);
oled.drawBitmap(96, 45, bmpYD2, 16,16, 1);
oled.drawBitmap(108, 47, bmpYD, 16,16, 1);}
break;
}}
break;
case 1: {switch (s%6)
{
case 0:{oled.drawBitmap(72, 44, bmpYD, 16,16, 1);
oled.drawBitmap(84, 48, bmpYD2, 16,16, 1);
oled.drawBitmap(96, 45, bmpYD2, 16,16, 1);
oled.drawBitmap(108, 47, bmpYD2, 16,16, 1);}
break;
case 1:
case 5:{oled.drawBitmap(72, 44, bmpYD2, 16,16, 1);
oled.drawBitmap(84, 48, bmpYD, 16,16, 1);
oled.drawBitmap(96, 45, bmpYD2, 16,16, 1);
oled.drawBitmap(108, 47, bmpYD2, 16,16, 1);}
break;
case 2:
case 4:{oled.drawBitmap(72, 44, bmpYD2, 16,16, 1);
oled.drawBitmap(84, 48, bmpYD2, 16,16, 1);
oled.drawBitmap(96, 45, bmpYD, 16,16, 1);
oled.drawBitmap(108, 47, bmpYD2, 16,16, 1);}
break;
case 3:{oled.drawBitmap(72, 44, bmpYD2, 16,16, 1);
oled.drawBitmap(84, 48, bmpYD2, 16,16, 1);
oled.drawBitmap(96, 45, bmpYD2, 16,16, 1);
oled.drawBitmap(108, 47, bmpYD, 16,16, 1);
break;} }}
break;
case 4: {oled.drawBitmap(72, 44, bmpYD, 16,16, 1);
oled.drawBitmap(84, 48, bmpYD, 16,16, 1);
oled.drawBitmap(96, 45, bmpYD, 16,16, 1);
oled.drawBitmap(108, 47, bmpYD, 16,16, 1);}
break;
}
/* int s = second%10;
if (s==1||s==4||s==3||s==5||s==7||s==9)
{
oled.drawBitmap(72, 44, bmpYD, 16,16, 1);
oled.drawBitmap(84, 48, bmpYD2, 16,16, 1);
oled.drawBitmap(96, 45, bmpYD, 16,16, 1);
oled.drawBitmap(108, 47, bmpYD2, 16,16, 1);}
else
{oled.drawBitmap(72, 44, bmpYD2, 16,16, 1);
oled.drawBitmap(84, 48, bmpYD, 16,16, 1);
oled.drawBitmap(96, 45, bmpYD2, 16,16, 1);
oled.drawBitmap(108, 47, bmpYD, 16,16, 1);};*/
oled.display();
delay(50);
oled.clearDisplay();
}
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();
}
void LIGHT(void)
{ int chk = DHT11.read(DHT11PIN);
int sensorValue = analogRead(ASignal);
sensorValue = map(sensorValue,0,1023,100,0);
int lightval=300;//日照强度判断值
int second,minute,hour,date,dow,month,year,temperature,T,L1,L2,t1,ZYT1,ZYT2,H;
ZYT1=0;//专用时间1
second=Clock.getSecond();
minute=Clock.getMinute();
hour=Clock.getHour(h12,PM);
date=Clock.getDate();
dow=Clock.getDoW();
month=Clock.getMonth(Century);
year=Clock.getYear();
if(PM==0) //判断变量PM返回值 0就显示AM 1就显示PM
{ H=hour;}//moring Buguang
else
{H=12+hour;//afternoon}
};
Alight=analogRead(Glight);
//Serial.print("Alight=");
//Serial.println(Alight);
//蓝牙定时补光控制
if (ZYT1=ZYT2)
{if(H=ZYT1)
digitalWrite(JDQLIGHT, HIGH);
else
digitalWrite(JDQLIGHT, LOW);}
else
{if(H>ZYT1&&H<ZYT2)
digitalWrite(JDQLIGHT, HIGH);
else
digitalWrite(JDQLIGHT, LOW);}
/*else//自动补光
{
L1=Alight/lightval;
Serial.print("L1=");
Serial.println(L1);
Serial.print("t=");
Serial.println(t);
if(L1==0)
{if(L1<L2)
t=T-t1+t;
else;}
else{if(L1>L2)
t1=T;
else;}
L2=Alight/lightval;
if(T<x+60)
{if (t<lightT&&T<x+BGT)
{digitalWrite(JDQLIGHT, HIGH); }
else
{digitalWrite(JDQLIGHT, LOW);
}}
else
{digitalWrite(JDQLIGHT, LOW);}
}*/
char C=Serial.read();
int N=0;
if(C=='A')
{Serial.print(100);}
switch(C)
{case 'A':Serial.print('C');
break;
case 'B':N=27;
break;
case ' ':Serial.print('B');
break;
};
if(N<25)
{ZYT1=N;}
if(N>29)
{ZYT2=N-30;}//用户自己设置补光时间
switch(N)
{case 25:digitalWrite(JDQSOIL,HIGH);
break;//开电磁阀
case 26:digitalWrite(JDQLIGHT,HIGH);
break;//开LED
case 27:{ Serial.print("20");//一件收发信息
Serial.print(year,DEC);
Serial.print('-');
Serial.print(month,DEC);
Serial.print('-');
Serial.print(date,DEC);
Serial.print(' ');
if(PM==0) //判断变量PM返回值 0就显示AM 1就显示PM
{ Serial.print("AM");}
else
{Serial.print("PM");}
Serial.print(hour,DEC);
Serial.print(':');
Serial.print(minute,DEC);
Serial.print(':');
Serial.print(second,DEC);
Serial.print('\n');
Serial.print("Temperature=");
Serial.print(' ');
Serial.print(' ');
Serial.print(temperature);
Serial.print("C");
Serial.print('\n');
Serial.print("air.humidity=");
Serial.print(' ');
Serial.print(' ');
Serial.print((int)DHT11.humidity, 1);
Serial.print("%");
Serial.print('\n');
Serial.print("plant.soil.humidity");
Serial.print(' ');
Serial.print(' ');
Serial.println(sensorValue);
Serial.print("%");
Serial.print('\n');
Serial.print("CO2");
Serial.print(":");
Serial.print(' ');
//Serial.println(sensorValue);
Serial.print("ppm");
Serial.print('\n');}
break;
}
};
|