您当前位置: Arduino >  Arduino及OLED做的一个温湿度烟雾检测装置

扫描二维码,快速下载本应用说明文档(免费)

Arduino及OLED做的一个温湿度烟雾检测装置      

下载: 6  点击: 3730


大小:892.73KB 价格:0.00元 更新日期:2017-09-11 开发者:小R科技
  

Arduino及OLED做的一个温湿度烟雾检测装置
    • 应用名称
    • 所属分类
    • 更新时间
    • 立即下载
    • Arduino及OLED做的一个温湿度烟雾检测装置
    • Arduino
    • 2017-09-11
【Arduino及OLED做的一个温湿度烟雾检测装置】 应用介绍

Arduino及OLED做的一个温湿度烟雾检测装置

概述
   OLED这款屏幕模块尺寸约为0.96英寸,主要由裸屏和底板PCB组成,裸屏由SSD1306驱动,这也是一种较为广泛使用的led驱动芯片。 



 
              

 
 


显示原理

    关于这个模块要注意的是:
* ssd1306本身支持多种总线驱动方式包括SPI以及并口等,通过芯片的相应IO口拉低拉高来选择哪一种接口,本例中模块通过电阻将相应IO口配置固化使用了I2C接口方

* 使用I2C接口时,SSD1306允许有最多两个7位的I2C地址,同样通过相应的IO口拉低拉高来切换,一般默认是0x3c,在屏幕模块的背面,可以看到一个I2C地址切换提示,需要改变模块I2C地址时,只需要把提示位置的电阻取下焊接到另外一端即可。要注意的是板上的I2C地址是加上了第零位读写位后的数值,即0x78 = 0x3c<<1 0x7A = 0x3d<<1

                  

      
 
 

实验步骤

    本实验采用的是Arduino Mini主板作为驱动板,芯片型号是Atmega328p-au,和Arduino UNO使用的是同一种芯片,本程序实则和ArduinoUNO通用,接法正确即可。
 

 
 

 
 
 
 
 
 
 
代码解析
    本实验需要用到俩个库文件,DHT11以及U8glib。DH11库获取温湿度,   而u8g2是一个非常强大的8位屏幕显示库,兼容性很强,不仅支持数十种驱动芯片,其强大之处还在于有丰富的字体可供选择,而且字体的大小间距都可以细致调节,也可以实现比较复杂的图形动态显示 。
#define DHT11PIN 2  定义DHT11的引脚为2号引脚

int MQ = A0; 定义MQ烟雾的引脚为A0号引脚,需要读取模拟量

u8g.setFont(u8g_font_8x13); //使用8x13大小的字符

u8g.setPrintPos(0, 20); // 锁定光标的位置,对应 x,y 轴值

u8g.print("HUMI(%) :");//显示字符等等,双引号内容可自行修改

pinMode(MQ,INPUT);设置MQ的引脚为输入模式

int chk = DHT11.read(DHT11PIN);获取DHT11的状态, 当检测到OK状态时候才有数据

u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );进行OLED显示屏图形绘制
 
 


实验现象
    打开电源开关可以看到OLED显示屏,第一行显示HUMI(%) :60湿度的数据,第二行TEMP(oC):30温度的数据,第三行MQ-2: 55 烟雾传感器的数据,并不断的进行刷新!


 


实验小结
  本节内容教大家用Aduino驱动OLED做一个温湿度及烟雾检检测的小实验,通过这个实验可以看到,用小传感器和一个单片机组合也可以做出这样一个有意思的东西,不仅如此,OLED还可以通过取模软件将图片显示其中,我们可以做一个动态的图像展示玩偶,非常有意思!

网友评论仅供网友表达个人看法,并不表明 小R科技 Robots-Store机器人应用商城 同意其观点或证实其描述
昵称: 验证码: