请问用呋喃丹毒杀老鼠有效果吗? 呋喃丹中毒
2023-07-04
很多朋友对自制测试仪的介绍,制作一个PM2.5测试仪不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。
雾霾已经成为常态,DIY一个PM2.5检测仪很有必要。利用零基础开发板Arduino UNO R3,用非常简单的电路和很少的代码就可以自己做一个PM2.5检测仪。为了保证测量精度,选用激光粉尘传感器检测空气中的雾霾污染程度,选用DHT11检测环境温度和湿度,非常适合中小学生练习。一、制作PM2.5探测器所需材料Arduino UNO R3开发板,一个激光PM2.5传感器,一个。
1.3寸有机发光二极管屏,1个温湿度传感器DHT11,1个面包板,1根杜邦线,几个电阻,阻值5k左右。1二、元件介绍1、Arduino UNO R3开发板。
Arduino是一个开源设计平台,由硬件Arduino板和软件Arduino IDE集成开发环境组成。Arduino板卡是以AVR微控制器为核心的开源硬件平台,有很多型号和配套资源,其中Arduino UNO R3板卡是最基本最常用的板卡,价格低廉,23元左右,体积小巧,使用方便。Arduino IDE是一个优秀的软件开发平台,界面简单友好,启动快捷,跨平台性好。
Arduino编程基于入门级C语言,门槛较低。最重要的是,在Arduino环境下,很多函数都被封装成了函数,可以直接调用来完成相应的功能,大大降低了编程的复杂度。学生可以在没有太多单片机知识的情况下,使用Arduino板连接各种传感器和电子元器件,快速搭建各种有趣实用的电路,实现丰富的功能。Arduino还支持第三方库和硬件,具有灵活性和可扩展性。2、激光PM2.5传感器
为了保证测试精度,选用了激光PM2.5传感器。缺点是价格离谱,这个东西成本不高。但由于缺乏竞争,价格一直居高不下。传感器接口有六个引脚,但实际上只使用了四个引脚,每个引脚定义如下。
传感器采用异步串行通信(UART ),以帧为单位进行通信。帧格式固定,每帧由9个字节组成,分为命令帧和响应帧。当外部设备向传感器发送命令帧时,传感器将回复外部设备的相应响应帧。波特率:9600;校验位:无;停止位:1位;数据位:8;3、OLED屏幕有机发光二极管显示器采用有机发光二极管,不需要背光。它是一种相对较新的显示器,但其价格较高,寿命不如LCD长。
有机发光显示技术由非常薄的有机材料涂层和玻璃基板组成。当电荷通过这些有机材料时,它们就会发光。有机发光二极管的发光颜色取决于有机发光层的材料,因此制造商可以通过改变发光层的材料来获得所需的颜色。有源阵列有机发光显示屏内置电子电路系统,每个像素由相应的电路独立驱动。
有机发光二极管具有结构简单、无背光自发光、对比度高、厚度薄、视角宽、反应速度快、可用于柔性面板、温度范围宽等优点。
该程序使用128x64的1.3英寸有机发光二极管单色显示屏。连接IIC接口时,请仔细检查电源和地线,不要接反。4、温度和湿度传感器
DHT11是一种廉价的温度和湿度传感器。湿度由湿敏电阻测量,温度由数字温度传感器测量。经单片机处理后,采用串行输出。DHT11大概4块钱,但是有点丑。DHT22价格15元左右。虽然颜色变白了,但是颜值还是很低。两者的引脚定义相同,但操作时序不同,应用时需要注意。在这里,我们选择DTH11型号。DHT11的硬件连接非常简单,原理图如下三、软件环境配置和安装。
双击arduino-1.8.3-windows.exe,安装指南将出现。依次确认,默认安装。安装完成后,桌面上会出现Arduino软件的logo。下次双击它。配置开发环境,插入Arduino UNO R3开发板,系统自动安装USB驱动。选择相应的板卡选择端口,通过设备管理器查看设备对应的端口情况。这台机器相当于COM5。验证打开的文件,例如,找到闪烁程序。
点击勾号,验证程序是否可以编译,如果一切正常;点击右边的箭头,将编译好的程序上传到Arduino UNO R3的AVR微控制器;也可以直接点击箭头,IDE会先进行验证,验证通过后直接上传。如果你看到LED闪烁,这意味着一切正常。恭喜安装成功,板卡正常。添加第三方库启动Adruino IDE项目——“加载库——”管理库,搜索DHT,安装DHT传感器库,支持DHT11。
项目-加载库-管理库,搜索U8GLIB,安装U8GLIB支持有机发光二极管四、开始动手操作温湿度传感器1、先将Arduino UNO R3板上的电源和地引到面包板上2、连接温湿度传感器,传感器的数据输出SDA接到Arduino板的A0口,温湿度的连接方式很简单。如本文前面的原理图所示,除了电源和地,只有一条SDA线通过一个5-10k的电阻上拉至5V,同时连接到Arduino板卡的A0口。
3、调用例程文件-“示例-“DHT传感器库-”DHT测试仪4、修改数据输入#定义DHT管脚A0//我们重新连接到什么数字管脚5、修改例程以支持DHT11。去掉这行前面的//# define DHT type DHT 11//DHT 116、上传程序,打开串口监视器,设置波特率为9600,观察环境温度和湿度。有机发光二极管屏操作1、断开Arduino UNO R3板卡电源。
2、把OLED屏连接好,由于是IIC接口,电路连接很简单,OLED屏除了连接好电源和地,只需将SCL接Arduino板的A5端,SDA接Arduino板的A4端即可。
3、调入例程
文件-》示例-》U8glib -》helloword
4、修改例程,支持OLED,去掉该行前面的//
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);//I2C/TWI
5、上传程序,观察OLED屏的显示是否正确。
操作PM2.5传感器
该传感器是一款激光数字式PM2.5传感器,内置激光器和光电接收组件,采用光散射原理,激光在颗粒物上产生散射光,由光电接收器转变为电信号,再通过特定算法计算出PM2.5值和PM10值。
该传感器采用串口输出,除了1脚接地,2脚接电源,再将3脚TXD和4脚RXD分别接Arduino板的D5、D6端口,当然,您也可以接别的端口,只要程序做相应的修改即可。
常用指令只需要三条,分别是开机指令、读取PM2.5值指令和关机指令,不妨根据手册自己编写试试,简单起见,可以用串口监视器显示结果。
五、编写程序,实现PM2.5检测仪由于硬件电路已经逐步连接完毕,下面可以针对整个电路编写程序了,把各部分功能统一起来,软件示例代码如下:
#include 《DHT.h》
#include “U8glib.h”
#include 《SoftwareSerial.h》
//说明,这仅是一个简单的示例程序,目的是帮助初学者入门
#define DHTPIN A0 //接温湿度传感器的数据端
//选择合适的温湿度传感器型号
#define DHTTYPE DHT11 //DHT 11
//#define DHTTYPE DHT22 //DHT 22 (AM2302), AM2321
uint8_t PM25_OPEN={0xAA,0x01,0x00,0x00,0x00,0x00,0x01,0x66,0xBB}; //开机指令
uint8_t PM25_CLOSE={0xAA,0x03,0x00,0x00,0x00,0x00,0x01,0x68,0xBB}; //关机指令
uint8_t PM25_DATA={0xAA,0x02,0x00,0x00,0x00,0x00,0x01,0x67,0xBB}; //读数据指令
DHT dht(DHTPIN, DHTTYPE);
//软串口定义格式SoftwareSerial(rxPin, txPin, inverse_logic)
SoftwareSerial mySerial(5, 6); //定义软串口,D5、D6分别连接PM2.5传感器的3(TXD)、4(RXD)
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE); //I2C/TWI OLED屏定义
uint16_t pm25, pm10;
float h, t, hic;
void setup() {
mySerial.begin(9600); //设置软串口波特率与PM2.5传感器一致
if ( u8g.getMode()==U8G_MODE_R3G3B2 ) {
u8g.setColorIndex(255); //white
}
else if ( u8g.getMode()==U8G_MODE_GRAY2BIT ) {
u8g.setColorIndex(3); //max intensity
}
else if ( u8g.getMode()==U8G_MODE_BW ) {
u8g.setColorIndex(1); //pixel on
}
else if ( u8g.getMode()==U8G_MODE_HICOLOR ) {
u8g.setHiColorByRGB(255,255,255);
}
pmOn();
delay(2000);
}
int i=0;
void loop() {
u8g.firstPage();
if (i==0) pmRead();
if(i》=5) i=0;else i++;
dhtRead();
do {
draw();
} while( u8g.nextPage() );
delay(500);
}
void pmOn(){
mySerial.write(PM25_OPEN,9);
}
void pmOff(){
mySerial.write(PM25_CLOSE,9);
}
void pmRead(){
uint8_t data9;
//while(mySerial.available());
mySerial.write(PM25_DATA,9);
delay(100);
for(int i=0;i《9;i++){
if (mySerial.available()) {
datai=mySerial.read();
}
}
if(data0==0xAA data8==0xBB){
pm25=data4*256 + data5;
pm10=data2*256 + data3;
}
}
void dhtRead(){
//Reading temperature or humidity takes about 250 milliseconds!
//Sensor readings may also be up to 2 seconds ‘old’ (its a very slow sensor)
h=dht.readHumidity();
//Read temperature as Celsius (the default)
t=dht.readTemperature();
//Compute heat index in Celsius (isFahreheit=false)
hic=dht.computeHeatIndex(t, h, false);
}
void draw(void) {
//graphic commands to redraw the complete screen should be placed here
char sendBuff20;
u8g.setFont(u8g_font_unifont_78_79);
sprintf(sendBuff,“%c”,14);
u8g.drawStr( 0, 18, sendBuff);
u8g.setFont(u8g_font_unifont);
sprintf(sendBuff,“H:%2d%% T:%2d%cC”,(int)h,(int)t,0xB0);
u8g.drawStr( 20, 18, sendBuff);
u8g.setFont(u8g_font_profont22);
sprintf(sendBuff,“PM2.5:%4d”,pm25);
u8g.drawStr( 6, 42, sendBuff);
sprintf(sendBuff,“PM 10:%4d”,pm10);
u8g.drawStr( 6, 64, sendBuff);
}
运行结果
六、工匠精神为使这款PM2.5检测仪更具有实用性,你也可以动手制作印刷电路板,为便于初学者使用,主控芯片可以采用与Arduino UNO R3板子一样的CPU。
以上知识分享希望能够帮助到大家!
版权声明:本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们
推荐阅读
2023-07-04
2023-07-04
2023-07-04
2023-07-04
2023-07-04
2023-07-04
2023-07-04
2023-07-04
2023-07-04
2023-07-04
2023-07-04
2023-07-04
2023-07-04
2023-07-04
栏目热点
请问用呋喃丹毒杀老鼠有效果吗? 呋喃丹中毒
LilyGoT手表键盘C3迷你电脑套件
索泰ZBOXEdgeCI342迷你电脑正式上市
谷歌在最新的视频预告片中展示了PixelWatch的独特设计
三星与设计师Juun.J合作推出限量版可折叠产品和配件
从2023年起Fitbit设备将需要Google帐户
TOKKCAMC2+智能WiFi独立日 夜视摄像头
三星正在与全球时尚品牌JUUN.J合作
OnePlusNordWatch的颜色选项通过泄露的渲染揭示
就在第一款Nothing手机发布之前一种新的TWS芽设计浮出水面