首页 > 分享 > 智能温室大棚(花房)1

智能温室大棚(花房)1

(1)采集温度、湿度、光照度数据;
(2)将采集的数据在OLED上进行显示;
(3)超过阈值报警,LED报警,蜂鸣器报警;
(4)通过按键报警阈值可设;
(5)通过继电器控制环境状态的自动调节;
(6)将采集的数据远程上报OneNET平台,进行数据展示。

       OLED,即有机发光二极管( Organic Light Emitting Diode )。 OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。

        LCD 都需要背光,而 OLED 不需要,因为它是自发光的。这样同样的显示 OLED 效果要来得好一 些。以目前的技术,OLED 的尺寸还难以大型化,但是分辨率确可以做到很高。在此我们使用的 是0.96 寸 OLED 显示屏,该屏有以下特点:

GND 电源地

VCC 电源正( 3 ~ 5.5V )

SCL OLED 的 D0 脚,在 IIC 通信中为时钟管脚

SDA OLED 的 D1 脚,在 IIC 通信中为数据管脚

二、代码编写

1. oled.h

#ifndef __OLED_H

#define __OLED_H

#include "sys.h"

#include "stdlib.h"

#define Max_Column128

#define OLED_SCLK_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_6)

#define OLED_SCLK_Set() GPIO_SetBits(GPIOB,GPIO_Pin_6)

#define OLED_SDIN_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_7)

#define OLED_SDIN_Set() GPIO_SetBits(GPIOB,GPIO_Pin_7)

#define OLED_CMD 0

#define OLED_DATA 1

void OLED_WR_Byte(unsigned dat,unsigned cmd);

void OLED_Display_On(void);

void OLED_Display_Off(void);

void OLED_Init(void);

void OLED_Clear(void);

void OLED_DrawPoint(u8 x,u8 y,u8 t);

void OLED_Fill(u8 x1,u8 y1,u8 x2,u8 y2,u8 dot);

void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 Char_Size);

void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size);

void OLED_ShowString(u8 x,u8 y, u8 *p,u8 Char_Size);

void OLED_Set_Pos(unsigned char x, unsigned char y);

void OLED_ShowCHinese(u8 x,u8 y,u8 no);

void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[]);

void Delay_50ms(unsigned int Del_50ms);

void Delay_1ms(unsigned int Del_1ms);

void fill_picture(unsigned char fill_Data);

void Write_IIC_Command(unsigned char IIC_Command);

void Write_IIC_Data(unsigned char IIC_Data);

void Write_IIC_Byte(unsigned char IIC_Byte);

void OLED_Refresh_Gram(void);

#endif

 2. oled.c

IIC驱动相关代码:

void IIC_Start()

{

OLED_SCLK_Set() ;

OLED_SDIN_Set();

OLED_SDIN_Clr();

OLED_SCLK_Clr();

}

void IIC_Stop()

{

OLED_SCLK_Set() ;

OLED_SDIN_Clr();

OLED_SDIN_Set();

}

void IIC_Wait_Ack()

{

OLED_SCLK_Set() ;

OLED_SCLK_Clr();

}

void Write_IIC_Byte(unsigned char IIC_Byte)

{

unsigned char i;

unsigned char m,da;

da=IIC_Byte;

OLED_SCLK_Clr();

for(i=0;i<8;i++)

{

m=da;

m=m&0x80;

if(m==0x80)

{OLED_SDIN_Set();}

else OLED_SDIN_Clr();

da=da<<1;

OLED_SCLK_Set();

OLED_SCLK_Clr();

}

}

void Write_IIC_Command(unsigned char IIC_Command)

{

IIC_Start();

Write_IIC_Byte(0x78);

IIC_Wait_Ack();

Write_IIC_Byte(0x00);

IIC_Wait_Ack();

Write_IIC_Byte(IIC_Command);

IIC_Wait_Ack();

IIC_Stop();

}

void Write_IIC_Data(unsigned char IIC_Data)

{

IIC_Start();

Write_IIC_Byte(0x78);

IIC_Wait_Ack();

Write_IIC_Byte(0x40);

IIC_Wait_Ack();

Write_IIC_Byte(IIC_Data);

IIC_Wait_Ack();

IIC_Stop();

}

OLED相关功能函数:

/OLED WR_Byte

void OLED_WR_Byte(unsigned dat,unsigned cmd)

{

if(cmd)

{

Write_IIC_Data(dat);

}

else

{

Write_IIC_Command(dat);

}

}

void fill_picture(unsigned char fill_Data)

{

unsigned char m,n;

for(m=0;m<8;m++)

{

OLED_WR_Byte(0xb0+m,0);

OLED_WR_Byte(0x00,0);

OLED_WR_Byte(0x10,0);

for(n=0;n<128;n++)

{

OLED_WR_Byte(fill_Data,1);

}

}

}

void OLED_Refresh_Gram(void)

{

u8 i,n;

for(i=0;i<8;i++)

{

OLED_WR_Byte (0xb0+i,OLED_CMD);

OLED_WR_Byte (0x00,OLED_CMD);

OLED_WR_Byte (0x10,OLED_CMD);

for(n=0;n<128;n++)OLED_WR_Byte(OLED_GRAM[n][i],OLED_DATA);

}

}

void OLED_Set_Pos(unsigned char x, unsigned char y)

{

OLED_WR_Byte(0xb0+y,OLED_CMD);

OLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMD);

OLED_WR_Byte((x&0x0f),OLED_CMD);

}

void OLED_Display_On(void)

{

OLED_WR_Byte(0X8D,OLED_CMD);

OLED_WR_Byte(0X14,OLED_CMD);

OLED_WR_Byte(0XAF,OLED_CMD);

}

void OLED_Display_Off(void)

{

OLED_WR_Byte(0X8D,OLED_CMD);

OLED_WR_Byte(0X10,OLED_CMD);

OLED_WR_Byte(0XAE,OLED_CMD);

}

void OLED_Clear(void)

{

u8 i,n;

for(i=0;i<8;i++)

{

OLED_WR_Byte (0xb0+i,OLED_CMD);

OLED_WR_Byte (0x00,OLED_CMD);

OLED_WR_Byte (0x10,OLED_CMD);

for(n=0;n<128;n++)OLED_WR_Byte(0,OLED_DATA);

}

}

void OLED_On(void)

{

u8 i,n;

for(i=0;i<8;i++)

{

OLED_WR_Byte (0xb0+i,OLED_CMD);

OLED_WR_Byte (0x00,OLED_CMD);

OLED_WR_Byte (0x10,OLED_CMD);

for(n=0;n<128;n++)OLED_WR_Byte(1,OLED_DATA);

}

}

void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 Char_Size)

{

unsigned char c=0,i=0;

c=chr-' ';

if(x>Max_Column-1){x=0;y=y+2;}

if(Char_Size ==16)

{

OLED_Set_Pos(x,y);

for(i=0;i<8;i++)

OLED_WR_Byte(F8X16[c*16+i],OLED_DATA);

OLED_Set_Pos(x,y+1);

for(i=0;i<8;i++)

OLED_WR_Byte(F8X16[c*16+i+8],OLED_DATA);

}

else {

OLED_Set_Pos(x,y);

for(i=0;i<6;i++)

OLED_WR_Byte(F6x8[c][i],OLED_DATA);

}

}

u32 oled_pow(u8 m,u8 n)

{

u32 result=1;

while(n--)result*=m;

return result;

}

void OLED_ShowNum(u8 x,u8 y,u32 num,u8 len,u8 size2)

{

u8 t,temp;

u8 enshow=0;

for(t=0;t<len;t++)

{

temp=(num/oled_pow(10,len-t-1))%10;

if(enshow==0&&t<(len-1))

{

if(temp==0)

{

OLED_ShowChar(x+(size2/2)*t,y,' ',size2);

continue;

}else enshow=1;

}

OLED_ShowChar(x+(size2/2)*t,y,temp+'0',size2);

}

}

void OLED_ShowString(u8 x,u8 y,u8 *chr,u8 Char_Size)

{

unsigned char j=0;

while (chr[j]!='')

{OLED_ShowChar(x,y,chr[j],Char_Size);

x+=8;

if(x>120){x=0;y+=2;}

j++;

}

}

void OLED_ShowCHinese(u8 x,u8 y,u8 no)

{

u8 t,adder=0;

OLED_Set_Pos(x,y);

for(t=0;t<16;t++)

{

OLED_WR_Byte(Hzk[2*no][t],OLED_DATA);

adder+=1;

}

OLED_Set_Pos(x,y+1);

for(t=0;t<16;t++)

{

OLED_WR_Byte(Hzk[2*no+1][t],OLED_DATA);

adder+=1;

}

}

void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[])

{

unsigned int j=0;

unsigned char x,y;

if(y1%8==0) y=y1/8;

else y=y1/8+1;

for(y=y0;y<y1;y++)

{

OLED_Set_Pos(x0,y);

for(x=x0;x<x1;x++)

{

OLED_WR_Byte(BMP[j++],OLED_DATA);

}

}

}

void OLED_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_SetBits(GPIOB,GPIO_Pin_6|GPIO_Pin_7);

delay_ms(800);

OLED_WR_Byte(0xAE,OLED_CMD);

OLED_WR_Byte(0x00,OLED_CMD);

OLED_WR_Byte(0x10,OLED_CMD);

OLED_WR_Byte(0x40,OLED_CMD);

OLED_WR_Byte(0xB0,OLED_CMD);

OLED_WR_Byte(0x81,OLED_CMD);

OLED_WR_Byte(0xFF,OLED_CMD);

OLED_WR_Byte(0xA1,OLED_CMD);

OLED_WR_Byte(0xA6,OLED_CMD);

OLED_WR_Byte(0xA8,OLED_CMD);

OLED_WR_Byte(0x3F,OLED_CMD);

OLED_WR_Byte(0xC8,OLED_CMD);

OLED_WR_Byte(0xD3,OLED_CMD);

OLED_WR_Byte(0x00,OLED_CMD);

OLED_WR_Byte(0xD5,OLED_CMD);

OLED_WR_Byte(0x80,OLED_CMD);

OLED_WR_Byte(0xD8,OLED_CMD);

OLED_WR_Byte(0x05,OLED_CMD);

OLED_WR_Byte(0xD9,OLED_CMD);

OLED_WR_Byte(0xF1,OLED_CMD);

OLED_WR_Byte(0xDA,OLED_CMD);

OLED_WR_Byte(0x12,OLED_CMD);

OLED_WR_Byte(0xDB,OLED_CMD);

OLED_WR_Byte(0x30,OLED_CMD);

OLED_WR_Byte(0x8D,OLED_CMD);

OLED_WR_Byte(0x14,OLED_CMD);

OLED_WR_Byte(0xAF,OLED_CMD);

}

3. oledfont.h

库文件

#ifndef __OLEDFONT_H

#define __OLEDFONT_H

const unsigned char F6x8[][6] =

{

0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,

0x00, 0x00, 0x07, 0x00, 0x07, 0x00,

0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,

0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,

0x00, 0x62, 0x64, 0x08, 0x13, 0x23,

0x00, 0x36, 0x49, 0x55, 0x22, 0x50,

0x00, 0x00, 0x05, 0x03, 0x00, 0x00,

0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,

0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,

0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,

0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,

0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,

0x00, 0x08, 0x08, 0x08, 0x08, 0x08,

0x00, 0x00, 0x60, 0x60, 0x00, 0x00,

0x00, 0x20, 0x10, 0x08, 0x04, 0x02,

0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,

0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,

0x00, 0x42, 0x61, 0x51, 0x49, 0x46,

0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,

0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,

0x00, 0x27, 0x45, 0x45, 0x45, 0x39,

0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,

0x00, 0x01, 0x71, 0x09, 0x05, 0x03,

0x00, 0x36, 0x49, 0x49, 0x49, 0x36,

0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,

0x00, 0x00, 0x36, 0x36, 0x00, 0x00,

0x00, 0x00, 0x56, 0x36, 0x00, 0x00,

0x00, 0x08, 0x14, 0x22, 0x41, 0x00,

0x00, 0x14, 0x14, 0x14, 0x14, 0x14,

0x00, 0x00, 0x41, 0x22, 0x14, 0x08,

0x00, 0x02, 0x01, 0x51, 0x09, 0x06,

0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,

0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,

0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,

0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,

0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,

0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,

0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,

0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,

0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,

0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,

0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,

0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,

0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,

0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,

0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,

0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,

0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,

0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,

0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,

0x00, 0x46, 0x49, 0x49, 0x49, 0x31,

0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,

0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,

0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,

0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,

0x00, 0x63, 0x14, 0x08, 0x14, 0x63,

0x00, 0x07, 0x08, 0x70, 0x08, 0x07,

0x00, 0x61, 0x51, 0x49, 0x45, 0x43,

0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,

0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,

0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,

0x00, 0x04, 0x02, 0x01, 0x02, 0x04,

0x00, 0x40, 0x40, 0x40, 0x40, 0x40,

0x00, 0x00, 0x01, 0x02, 0x04, 0x00,

0x00, 0x20, 0x54, 0x54, 0x54, 0x78,

0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,

0x00, 0x38, 0x44, 0x44, 0x44, 0x20,

0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,

0x00, 0x38, 0x54, 0x54, 0x54, 0x18,

0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,

0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,

0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,

0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,

0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,

0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,

0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,

0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,

0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,

0x00, 0x38, 0x44, 0x44, 0x44, 0x38,

0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,

0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,

0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,

0x00, 0x48, 0x54, 0x54, 0x54, 0x20,

0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,

0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,

0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,

0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,

0x00, 0x44, 0x28, 0x10, 0x28, 0x44,

0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,

0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,

0x14, 0x14, 0x14, 0x14, 0x14, 0x14,

};

const unsigned char F8X16[]=

{

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,

0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,

0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,

0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,

0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,

0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,

0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,

0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,

0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,

0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,

0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,

0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,

0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,

0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,

0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,

0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,

0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,

0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,

0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,

0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,

0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,

0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,

0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,

0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,

0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,

0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,

0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,

0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,

0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,

0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,

0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,

0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,

0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,

0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,

0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,

0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,

0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,

0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,

0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,

0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,

0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,

0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,

0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,

0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,

0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,

0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,

0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,

0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,

0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,

0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,

0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,

0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,

0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,

0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,

0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,

0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,

0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,

0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,

0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,

0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,

0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,

0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,

0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,

0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,

0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,

0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,

0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,

0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,

0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,

0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,

0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,

0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,

0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,

0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,

0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,

0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,

0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,

0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,

0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,

0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,

0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,

0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,

0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,

0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,

0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,

0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};

char Hzk[][32]={

{0x10,0x94,0x53,0x32,0x1E,0x32,0x52,0x10,0x00,0x7E,0x42,0x42,0x42,0x7E,0x00,0x00},

{0x00,0x00,0x00,0xFF,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0xFF,0x00,0x00,0x00,0x00},

{0x08,0xCC,0x4A,0x49,0x48,0x4A,0xCC,0x18,0x00,0x7F,0x88,0x88,0x84,0x82,0xE0,0x00},

{0x00,0xFF,0x12,0x12,0x52,0x92,0x7F,0x00,0x00,0x7E,0x88,0x88,0x84,0x82,0xE0,0x00},

{0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00},

{0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00},

{0x10,0x10,0xD0,0xFF,0x90,0x10,0xFE,0x22,0x22,0xFE,0x00,0xFE,0x22,0x22,0xFE,0x00},

{0x04,0x03,0x00,0xFF,0x80,0x41,0x3F,0x42,0x82,0x7F,0x80,0x7F,0x02,0x82,0xFF,0x00},

{0x10,0x60,0x02,0x8C,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00},

{0x04,0x04,0x7E,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00},

{0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00},

{0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00},

{0x10,0x60,0x02,0x8C,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00},

{0x04,0x04,0x7E,0x01,0x44,0x48,0x50,0x7F,0x40,0x40,0x7F,0x50,0x48,0x44,0x40,0x00},

{0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00},

{0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00},

{0x40,0x40,0x42,0x44,0x58,0xC0,0x40,0x7F,0x40,0xC0,0x50,0x48,0x46,0x40,0x40,0x00},

{0x80,0x80,0x40,0x20,0x18,0x07,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x78,0x00},

{0x02,0xE2,0x22,0x22,0x3E,0x00,0x80,0x9E,0x92,0x92,0xF2,0x92,0x92,0x9E,0x80,0x00},

{0x00,0x43,0x82,0x42,0x3E,0x40,0x47,0x44,0x44,0x44,0x7F,0x44,0x44,0x54,0xE7,0x00},

};

#endif

4 main.c主函数

显示出温度、湿度、光照字符及其数值。

#include "delay.h"

#include "sys.h"

#include "oled.h"

#include "led.h"

#include "usart.h"

int temp = 25;

int humid = 70;

int light = 200;

void display0()

{

OLED_ShowCHinese(28,0,0);

OLED_ShowCHinese(46,0,1);

OLED_ShowCHinese(64,0,2);

OLED_ShowCHinese(82,0,3);

}

void display1()

{

OLED_ShowCHinese(0,0,4);

OLED_ShowCHinese(18,0,5);

OLED_ShowString(36,0,":",16);

OLED_ShowCHinese(0,3,6);

OLED_ShowCHinese(18,3,7);

OLED_ShowString(36,3,":",16);

OLED_ShowCHinese(0,6,8);

OLED_ShowCHinese(18,6,9);

OLED_ShowString(36,6,":",16);

OLED_ShowNum(40,0,temp,3,16);

OLED_ShowNum(40,3,humid,3,16);

OLED_ShowNum(48,6,light,3,16);

}

int main(void)

{

delay_init();

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

uart_init(9600);

LED_Init();

OLED_Init();

OLED_Clear();

display0();

delay_ms(1500);

OLED_Clear();

display1();

LED = 1;

while(1)

{

}

}

5. 取模工具的使用

使用PCtoLCD2002取模软件:

阴码、逆向、列行式、16*16,C51

{0x10,0x60,0x02,0x8C,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00},
{0x04,0x04,0x7E,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00},/*"温",0*/
{0x00,0x00,0xFC,0x24,0x24,0x24,0xFC,0x25,0x26,0x24,0xFC,0x24,0x24,0x24,0x04,0x00},
{0x40,0x30,0x8F,0x80,0x84,0x4C,0x55,0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,0x00},/*"度",1*/

相关知识

太阳能温室智能花房亮相南京
【温室花卉大棚设备】
智能温室大棚租赁
智能温室大棚大棚自动化 温室控制系统
智能温室大棚自动控制系统
【智能温室花卉大棚】
智能温室大棚
家用温室花房家庭阳台保温花暖房多肉绿植防冻棚温室大棚
蔬菜连栋智能温室大棚智能温室大棚简介
【定制全自动智能连动薄膜温室蔬菜大棚 花房草莓智能种植连体大棚】批发

网址: 智能温室大棚(花房)1 https://m.huajiangbk.com/newsview1617770.html

所属分类:花卉
上一篇: 温室大棚智能管理系统下的蔬菜种植
下一篇: 什么是智能温室大棚