首页 > 分享 > Arduino程序设计(三) 光照采集 + 温度采集

Arduino程序设计(三) 光照采集 + 温度采集

最新推荐文章于 2024-06-27 14:55:00 发布

Alice的博客 于 2022-11-17 10:37:26 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

前言

本文主要介绍两种常见的传感器采集环境参数,即光照传感器和温度传感器。光照传感器采用光敏电阻GL3516(5-10K)检测环境光。温度传感器采用DS18B20检测环境温度。

一、光敏电阻检测环境光

光敏电阻:一种电阻值随照射光强度增加而下降的电阻。光敏电阻的使用方法:将其作为一个电阻接入电路中,然后使用analogRead() 读取电压。ESP8266EX有1个多通道的 10 bit 模拟数字转换器A0 ,输入电压 0-1V 对应 0-1023 的整数值,模拟输入函数为:

analogRead(pin) 1 实验采用ESP8266EX裸芯片,通过自主搭建电路的方式,实现预设功能。光敏电阻检测环境光的电路图,如下图所示:
在这里插入图片描述注意:① TOUT为ESP8266EX的引脚6,采集TOUT的ADC值;② TOUT对应的模拟量输入引脚为A0;③ 通过模拟输入口A0,读取分压后得到的电压。

代码实现:

//光敏电阻检测环境光 int light_value = 0; //定义光照强度变量light_value,置初始值为0 void setup() { Serial.begin(9600); //设置串口通信波特率为9600 } void loop() { light_value = analogRead(A0); // 读出当前光线强度 Serial.println(light_value); //输出到串口显示 delay(1000); //间隔1s读取1次光线强度值 } 12345678910111213

二、DS18B20检测环境温度

DS18B20数字温度传感器是美国DALLAS公司生产的单总线数字温度传感器。DSl820数字温度计提供 9 位(二进制)温度读数指示器件的温度信息经过单线接口送入 DSl8B20 或从 DSl8B20 送出,因此从主机 CPU 到DSl820 仅需一条线(和地线) DSl820 的电源可以由数据线本身提供而不需要外部电源 。DS18B20测温原理:把芯片把感知到的温度换成数值放在数据寄存器里面,要想得到寄存器里面的数据,只有按照DALLAS规定的一种时序才能正确传出数据,这种时序被称为单总线,cpu就可通过单总线协议,取得DS18B20里面的温度值。DS18B20采集环境温度需要加载OneWire和DallasTemperature两个程序库,调用库函数,极大地简化了温度采集程序的编写。实验采用ESP8266EX裸芯片,通过自主搭建电路的方式,实现预设功能。DS18B20检测环境光的电路图,如下图所示:
在这里插入图片描述

代码实现:

//DS18B20采集环境温度 #include <OneWire.h> //加载单总线库函数 #include <DallasTemperature.h> //加载DS18B20温度采集库函数 #define ONE_WIRE_BUS 5 //定义DS18B20数据口连接ESP8266的5号IO上 OneWire oneWire(ONE_WIRE_BUS); //初始化连接在单总线上的单总线设备 DallasTemperature sensors(&oneWire); void setup(void) { Serial.begin(9600); //设置串口通信波特率为9600 Serial.println("Dallas Temperature IC Control Library Demo"); sensors.begin(); //初始化库 } void loop(void) { Serial.print(" Requesting temperatures..."); //打印Requesting temperatures... sensors.requestTemperatures(); //发送命令获取温度 Serial.println("DONE"); //打印DONE,再换行 Serial.print("Temperature for Device1 is: "); //打印Temperature for Device1 is: Serial.print(sensors.getTempCByIndex(0)); //打印传感器的温度值 delay(500); //间隔500ms,获取1次温度值 }

123456789101112131415161718192021222324252627 运行以上程序,打开串口监视器,Arduino通过串口输出了当前从温度采集电路读到的模拟值,串口显示界面如下:
在这里插入图片描述注释:串口打印的第一行中数字22.5,显示当前环境温度为22.5℃。以此类推,得到其余行显示的环境温度值。

总结

本文主要介绍了采用光敏电阻和DS18B20,进行环境光检测和环境温度检测,采用自主搭建电路的形式,实现目标功能,体现了软硬件结合的思想。

参考文献

参考文献1: 光敏电阻检测环境光实验
参考文献2: Arduino教程——DS18B20温度传感器

相关知识

高中信息技术沪科版必修2项目七第二课时采集花卉种植环璋数据.pptx
ad574程序,高精度数据采集程序资源
基于Arduino的土壤湿度检测
花粉的采集与烘干
基于51单片机智能浇花控制系统 土壤湿度计设计 自动灌溉 大棚土壤湿度采集 光照采集 光照补偿 智能花卉 成品 套件 DIY设计 实物+源程序+原理图+仿真+其它资料
草履虫的采集、培养和观察
花瓣采集工具
【花卉采集机械】
植物材料的采集、处理与保存
植物标本采集方法,制作方法

网址: Arduino程序设计(三) 光照采集 + 温度采集 https://m.huajiangbk.com/newsview620938.html

所属分类:花卉
上一篇: 非洲紫罗兰养护指南,让它经常开花
下一篇: 环境监测+oled显示+STM3