资讯详情

arduino读取水位传感器的数据显示在基于i2c的1602a上_构建Arduino的LoRa远程智能空气质量监测系统...

背景知识视频教程

Arduino分步指南:完整指南 - 国外课栈viadean.com
ad0f9edf02af13b3dba0d896d2839f5c.png
Arduino微控制器:学习Arduino制作项目 - 国外课栈viadean.com
通过构建实际应用程序来掌握Arduino - 国外课栈viadean.com

空气污染是当今世界上最大的环境和公共卫生挑战之一。 空气污染会对我们的健康、气候和生态系统产生不利影响。 监测空气质量对于了解和预防空气污染,评估排放源,保持更健康的空气状况,帮助对抗温室效应至关重要。

这个项目的目的是通过创建两个LoRa无线通信设备。 有许多传感器可以用来监测空气质量,但在这个项目中,我们将重点介绍两个DSM501A灰尘传感器和MQ臭氧气体传感器131。 这些传感器将通过Ra-02 LoRa模块作为客户端收发器连接到第一台设备。 将有第二个设备LoRa作为服务器收发器的屏蔽SIM800L作为ThingSpeak网关连接。

硬件

软件

库文件

介绍

Ra-02 SX1278 LoRa模块

Ra-02 LoRa模块可以兼容FSK(频移键控频通信采用远程调制和解调。 这为传统的无线设计提供了解决方案,具有距离覆盖范围、抗干扰性和低功耗。 Ra-02可广泛应用于自动抄表、房屋自动化、安全系统、远程灌溉系统等各种网络场合。

Dragino LoRa板

Dragino LoRa Shield是基于Arduino基于开源库的远程收发器屏蔽形式。 LoRa Shield允许用户以低数据速率发送数据并达到长范围。 它提供超远距离扩频通信和高抗干扰性,并将电流消耗降到最低。

他们怎么工作?

他们使用一种叫做扩频通信的技术。 在比必要宽得多的带宽上传输信息。 这增加了抵抗外部窄带干扰的强度。 任何发射信号的带宽越宽,干扰带宽一小部分的相对影响就越小。 同一带宽允许多种传输。 它们可以称为多址技术,因为多个用户可以共享相同的扩频带宽而不相互干扰。

SIM800L GSM / GPRS模块

SIM800L蜂窝模块可用于蜂窝模块GPRS数据传输、发送和接收SMS并拨打和接听语音电话。 板材尺寸紧凑,电流消耗低。 它甚至具有省电技术,不使用时可以将电流消耗限制在低至1 mA。 最重要的是,该模块支持四频GSM / GPRS这意味着它可以在世界上任何地方工作。

它是如何工作的

该模块旨在类似于带SIM操作卡蜂窝电话。 上电后,模块启动,搜索最近的蜂窝网络,并自动连接到网络。 板上的LED显示屏指示连接状态。 当没有网络覆盖时,它会迅速闪烁,但在连接时会缓慢闪烁。

DSM501A灰尘传感器

DSM501A灰尘传感器模块是一种低成本、紧凑的颗粒密度传感器。它可以测量小至1微米的颗粒

它是如何工作的

设备内部布置红外发光二极管和光电晶体管。 这样可以检测周围空气中灰尘的反射光。 空气净化器系统通常用于检测非常小的颗粒(如烟雾)。

MQ131臭氧气体传感器

顾名思义,MQ臭氧气体传感器131(O3)。 它对臭氧非常敏感,对臭氧也非常敏感CL2和NO2等强氧化物敏感。 它们广泛应用于空气质量监测泛应用于空气质量监测。

它是如何工作的

臭氧气体传感器的黑胶木是一种非常敏感的材料,称为三氧化钨(WO3)。 在干净的空气中,电导率很高,但当周围有臭氧气体时,电导率会降低。 用户可以将电导率的变化转换为与检测到的气体浓度对应的输出信号。

硬件设置

客户端(带传感器的客户端)Ra-02 LoRa模块)

Ra-02 LoRa模块连接

DSM501A连接灰尘传感器

MQ臭氧气体传感器连接

服务器(带SIM800L模块的Dragino LoRa Shield)

ThingSpeak设置

要设置ThingSpeak,首先,你必须在它的网站上https://thingspeak.com注册。如果您已经有帐户,请登录并单击Channel”。

这样做的时候,你应该定位到你的频道页面。点击新频道创建新频道。

加载后,设置显示频道。填写所需内容,然后检查两个字段,每个传感器读数显示一个字段。你只需要给它一个名字和描述;其余的都是不必要的。

完成后,只需滚动到页面底部,然后单击保存频道。之后,您可以单击顶部的私人视图选项卡,私下查看显示内容。您可以单击铅笔图标定义字段图。

您还需要获得Arduino代码的API密钥,以便SIM800L传输数据ThingSpeak。要检查您的API请单击顶部的密钥 API密钥标签

代码

客户端(带传感器的客户端)Ra-02 LoRa模块)

AQM_Client.ino代码

</>

服务器(带SIM800L模块的Dragino LoRa Shield)

AQM_Server.ino代码

</>

代码分解

客户端

预初始化

</>

在开始之前,我们必须包括在项目中使用的库。 RHReliableDatagram用于发送搜索地址、确认和重传数据报告,并在RH_RF95库中。 这两个库的功能取决于SPI(串行外围接口),所以也包括其中一个。

</>

之后,我们定义了客户端地址和服务器地址。 确保和LoRa防护罩一对一通信,而不是与附近的任何其他通信。 接下来,我们将创建驱动程序和客户端地址作为参数RF95驱动程序对象和数据报告管理器。

</>

接下来,我们将引脚分配给传感器。 对于DSM501,第一个参数分配给引脚6PM1.0.用于第二个参数PM2.5。 对于MQ第一个参数用于加热器,加热器已集成到模块中,因此您可以将其分配使用的任何引脚。

Void Setup()

</>

在setup()在函数中,我们将串行波特率设置为9600 bps,这是串行通信的默认值。 然后,我们放一个if通过在失败时打印一条信息检查可靠的数据报管理器是否已初始化。

Void Loop()

</>

在loop()函数内部,我们使用dsm501.update()获取灰尘传感器的读数,然后使用dsm501.getParticleWeight(1)获得2.5 μm上述颗粒的颗粒密度。 然后,我们必须将浮点值转换为字符串并使用它dtostrf()同时存储在变量中。

</>

然后可以使用manager.sendtoWait()将这些数据发送到服务器端。 这将发送消息(并重试)并等待确认。 收到确认后返回true,允许它使用manager.recvfromAckTimeout()打印确认答复。

</>

接下来,我们使用它o3sensor.begin()获取臭氧气体传感器的读数,然后使用o3sensor.getO3(UG_M3)获得以μg / m三是单位值。 在全球统计据报告中常用的十亿分之一可以使用o3sensor.getO3(PBB)代替。 类似于上面的灰尘传感器读数,然后我们必须读数float将值转换为字符串并使用dtostrf()同时存储在变量中。

这一部分与上面的部分类似,我们将传感器的读数发送到服务器端,但是这次是针对臭氧气体传感器的。

服务器

预初始化

</>

同样,我们必须包括在项目中使用的库。 SoftwareSerial库允许在Arduino其它数字引脚串行通信,使引脚2和3分别用作接收器和发送器。 这也使我们能够将其用作调试序列,并打印出以后收到的信息。

</>

之后,我们定义了客户端地址和服务器地址。 同样,这一点很重要,以确保您与Ra-02进行一对一的沟通,而不是与附近的其他人沟通,所以请确保它们与客户代码中的内容相同。 接下来,我们将创建驱动程序和服务器地址作为参数RF95驱动程序对象和数据报告管理器。

</>

在这里,我们创建了在服务器端收到消息时发送给客户端的消息,并初始化变量buf存储输入的传感器读取数据。 以后用索引来区分接收到的两个数据值。

Void Setup()

</>

在setup()在函数中,我们将串行波特率设置为9600 bps,这是串行通信的默认值,GSM串行波特率设置为4800 bps。 之后,我们放一个if在失败时打印一条信息,检查可靠的数据报管理器是否已初始化。

SIM800L AT发送数据的命令ThingSpeak

</>

AT(ATtention)命令是控制调制解调器的指令。 首先,AT CIPMODE = 0将TCPIP由于控制,应用模式被设置为正常模式SIM800L与nternet的连接是必需的。 其次,AT + CIPMUX = 0启动单个IP连接,AT + CGATT = 1将我们附加到GPRS服务。 第三,AT + CSTT =“ APN”启动任务并将访问点名称设置为指定的URL,然后AT + CIICR建立与GPRS的无线连接。 您可以找到用于在线拥有的SIM卡的APN。

Void Loop()

</>

在loop()函数中,我们检查是否通过manager.available()收到了一条消息,并且如果index为1,则表示它是第一个传感器的数据。 recvfromAck()将从缓冲区中获取数据并在串行监视器中打印。 完成后,它将调用gsmSend()函数,该函数包含所有AT命令,以将数据发送到ThingSpeak,然后将索引设置为2,以便知道第二个传感器的数据即将到来。

</>

这部分与上面的部分类似,我们将数据发送到ThingSpeak,但是这次是第二个接收到的数据,该数据来自第二个传感器。

参阅

构建Arduino的LoRa远程智能空气质量监测系统 - 国外课栈​viadean.com

标签: sx676a光电传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司