在物联网(IoT)快速发展的今天,温湿度传感器作为环境监测的重要设备,被广泛应用于农业、工业、智慧城市等领域。本文将详细介绍如何使用低功耗4G模组Air780E采集温湿度传感器数据并实现网页查看,帮助初学者快速上手。
一、硬件装备
1.1 硬件连接
使用跳线帽将IO_SEL连接3.3V,给引脚供3.3V的电。dht11模块的out引脚连接780E开发板的一个引脚,具体哪个可以自己更改,这个demo中使用的是7号引脚。具体实物图如下:
二、编写脚本
2.1 实现流程图
2.2 程序详解
第一步:等待联网
sys.waitUntil("IP_READY")
第二步:联网成功后,创建socket
-- 申请一个socket_ctrl
--[[
@param1 适配的网卡,nil为采用默认网卡
@param2 消息通知的taskName,此处先随意填一个即可
]]
local netc = socket.create(nil,"MySocket")
第三步:配置network信息
local host = "netlab.luatos.com" -- 服务器ip或者域名, 都可以的
local is_udp = true -- 如果是UDP, 要改成true, false就是TCP
local is_tls = false -- 加密与否, 要看服务器的实际情况
--[[配置network一些信息
@param1 socket_ctrl
@param2 本地端口号,不写会自动分配一个
@parma3 是否是UDP
@param4 是否是加密传输
]]
socket.config(netc, nil, is_udp, is_tls)
第四步:连接服务器。
local port = 47966 -- 服务器端口号
--[[
@param1 socket_ctrl
@param2 ip地址
@parma3 端口号
]]
local result = socket.connect(netc, host, port)
第五步:调用dht11接口读取温湿度的值。
--[[读取dht11传感器的数值
@param1 dht11的out引脚连接780E开发板的引脚号
@param2 是否校验读取到的值,true为校验
@return1 湿度值,单位为0.01%
@return2 温度值 单位为0.01%
@return 成功返回true,失败返回false
]]
local h,t,r = sensor.dht1x(dht11_pin, true)
第六步:将温湿度数据上报。
--[[将温湿度的数据上传到web服务器
@param1 socket.create()创建的socket_ctrl
@param2 要发送的温湿度数据
]]
local succ,full,result = socket.tx(netc,data)
三、烧录代码到硬件
3.1 正确连接电脑和4G模组电路板
使用带有数据通信功能的数据线,不要使用仅有充电功能的数据线;
3.2 识别4G模组的boot引脚
在下载之前,要用模组的boot引脚触发下载, 也就是说,要把4G模组的boot引脚拉到 1.8v,或者直接把boot引脚和VDD_EXT引脚相连。我们要在按下BOOT按键时让模块开机,就可以进入下载模式了。
具体到 Air780E开发板,
3.2.1 当我们模块没开机时,按着BOOT键然后长按PWR开机。
3.2.2 当我们模块开机时,按着BOOT键然后点按重启键即可。
3.3 识别电脑的正确端口
判断是否进入BOOT模式:模块上电,此时在电脑的设备管理器中,查看串口设备, 会出现一个端口表示进入了boot下载模式,如下图所示:
当设备管理器出现了3个连续数字的com端口,并且每个数字都大于4,这时候, 硬件连接上就绪状态,恭喜你,可以进行烧录了!
3.4 新建项目
首先,确保你的 LuaTools 的版本,上大于 2.2.13 版本的。
在 LuaTools 的左上角上有版本显示的,如图所示:
LuaTools 版本没问题的话, 就点击 LuaTOols 右上角的“项目管理测试”按钮,如下图所示:
这时会弹出项目管理和烧录管理的对话框,如下图:
新建一个项目
注意:这里截图使用的hello world项目的烧录教程图片,烧录的时候要将脚本换成本次demo的。
3.5 开始烧录
选择780E板子对应的底层core和刚改的main.lua脚本文件。下载到板子中。
点击下载后,我们需要进入boot模式才能正常下载,在(3)(4)小节已经介绍了如何进入boot模式。
四、验证功能
1. 连接服务器
2. 更改端口号
3. 效果展示
五、扩展
使用TCP连接服务器传输数据。只需要在网页端打开TCP连接,然后在程序中将is_udp改为false。
本章节实现了使用开发板采集DHT1x的的数据,然后将数据上传到网页,通过网页查看,你学会了吗?