极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11634|回复: 5

好累的代码,第一次编写

[复制链接]
发表于 2014-11-29 14:04:55 | 显示全部楼层 |阅读模式
#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;
}
};
回复

使用道具 举报

发表于 2014-11-29 15:42:22 | 显示全部楼层
辛苦、辛苦~~~~
回复 支持 反对

使用道具 举报

发表于 2014-11-29 18:06:23 来自手机 | 显示全部楼层
好长的代码
回复 支持 反对

使用道具 举报

发表于 2014-11-29 19:27:07 | 显示全部楼层
不简单啊!第一次就是这么长的代码!!!
回复 支持 反对

使用道具 举报

发表于 2014-11-29 23:43:32 | 显示全部楼层
这代码是干啥用的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-30 00:25:06 | 显示全部楼层
ibopo 发表于 2014-11-29 23:43
这代码是干啥用的

学校的比赛用的,其实我是想看下行数
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 17:17 , Processed in 0.034677 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表