当前位置: 首页 > news >正文

制作网站软件不懂代码可以制作吗东莞seo管理

制作网站软件不懂代码可以制作吗,东莞seo管理,网页工具栏,做外包的网站有哪些问题前言 此篇为番外篇,是 ESP8266 入门的其他功能教程,包括但不限于 DHT11 驱动TCP 通信Thingsboard 平台的接入阿里云物联网云平台接入华为云平台接入 1. 小节目标 使用 Lua 驱动 DHT11 传感器,获取温湿度的值 2. 进入主题 NodeMCU 基于 LUA 相关资料 官方文档:…


前言

此篇为番外篇,是 ESP8266 入门的其他功能教程,包括但不限于

  1. DHT11 驱动
  2. TCP 通信
  3. Thingsboard 平台的接入
  4. 阿里云物联网云平台接入
  5. 华为云平台接入

1. 小节目标

使用 Lua 驱动 DHT11 传感器,获取温湿度的值

2. 进入主题

NodeMCU 基于 LUA 相关资料

官方文档:dht - NodeMCU Documentation

包括 dht 的固件:📎nodemcv_dht.zip

如果使用的是以下这一款硬件,就直接使用引脚4

2.1. 单独驱动温湿度传感器


dht11Pin = 4tmr.create():alarm(3000,tmr.ALARM_AUTO ,function()if conn_flag==1 thenstatus, temp, humi, temp_dec,humi_dec = dht.read(dht11Pin)if status == dht.OK then  --根据返回的状态dht11data=string.format("DHT Temperature:%d.%03d;Humidity:%d.%03d\r\n")-- 打印print(dht11data)-- 在这里直接发送到MQTT上else print("dht11 error")-- 下面这一行是上报到物联网云平台的,如果不想上报直接打印即可-- m:publish(pub_topic,"[dht11 error",0, 0, function(client) print("sent") end)endendend)

2.2. 完整代码

station_cfg = {}
station_cfg.ssid = "wifi_ssid"
station_cfg.pwd  = "wifi_pwd"station_cfg.auto = false
station_cfg.save = false-- MQTT配置
mqtt_cfg = {}
mqtt_cfg.host      = "broker.emqx.io"
mqtt_cfg.port      = 1883
mqtt_cfg.clientid  = "alro12345940"
mqtt_cfg.keepalive = 120
mqtt_cfg.username  = "AlvaRocha"
mqtt_cfg.password  = "aio_KO<safety edit>sXwbgtWCboCal"
sub_topic="/topic/ctiot/dht11/topic/c"
pub_topic="/topic/ctiot/dht11/topic/m"
m=nil
iot_test = mqtt.Client(mqtt_cfg.clientid, mqtt_cfg.keepalive, mqtt_cfg.username, mqtt_cfg.password)-- wifi配置
wifi.setmode(wifi.STATION)
wifi.sta.config(station_cfg)-- gpio 配置
pin=3
gpio.mode(pin, gpio.OUTPUT)conn_flag=0function get_broker(mqtt_client)mqtt_client:connect(mqtt_cfg.host, mqtt_cfg.port, false,function(client)client:subscribe(sub_topic, 0, function(client)print("subscribe success ",  sub_topic)end)m:publish(pub_topic, "success", 0, 0, function(client)print("init success")conn_flag=1end)end,function(client, reason)print('connection failed', reason)end)m=mqtt_client
endiot_test:on("offline", function(client)print("client offline")conn_flag=0get_broker(iot_test)
end)
iot_test:on("message", function(client, topic, data)--print("MQTT msg received on '" .. topic .. "':")if data ~= nil thenprint(data)if data == "1"thengpio.write(pin, gpio.HIGH)print("1111")endif data == "2"thengpio.write(pin,gpio.LOW)print("222")endend
end)function startup()if file.open("init.lua") == nil then--print("init.lua deleted or renamed")else--print("Running")file.close("init.lua")get_broker(iot_test)end
endwifi_connect_event = function(T)print("Connection to AP(" .. T.SSID .. ") established!")print("Waiting for IP address...")if disconnect_ct ~= nil thendisconnect_ct = nilend
endwifi_got_ip_event = function(T)tmr.create():alarm(3000, tmr.ALARM_SINGLE, startup)
endwifi.eventmon.register(wifi.eventmon.STA_CONNECTED, wifi_connect_event)
wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, wifi_got_ip_event)
wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T)wifi.sta.connect()
end)
wifi.sta.connect()dht11Pin = 4tmr.create():alarm(3000,tmr.ALARM_AUTO ,function()if conn_flag==1 thenstatus, temp, humi, temp_dec,humi_dec = dht.read(dht11Pin)if status == dht.OK then  --根据返回的状态m:publish(pub_topic, string.format("DHT Temperature:%d.%03d;Humidity:%d.%03d\r\n",math.floor(temp),temp_dec,math.floor(humi),humi_dec),0, 0, function(client) print("sent") end)else print("dht11 error")m:publish(pub_topic,"[dht11 error",0, 0, function(client) print("sent") end)endendend)

3. 完整的代码注释

为了方便各位读者学习,特地将代码加上注释,如下

-- Wi-Fi连接配置
station_cfg = {}
station_cfg.ssid = "wifi_ssid"  -- 设置Wi-Fi的SSID
station_cfg.pwd  = "wifi_pwd"   -- 设置Wi-Fi的密码
station_cfg.auto = false        -- 设置Wi-Fi不自动连接
station_cfg.save = false        -- 设置不保存Wi-Fi连接信息-- MQTT连接配置
mqtt_cfg = {}
mqtt_cfg.host      = "broker.emqx.io"           -- 设置MQTT服务器地址
mqtt_cfg.port      = 1883                        -- 设置MQTT服务器端口
mqtt_cfg.clientid  = "alro12345940"          -- 设置MQTT客户端ID
mqtt_cfg.keepalive = 120                           -- 设置MQTT保持连接时间
mqtt_cfg.username  = "AlvaRocha"            -- 设置MQTT用户名
mqtt_cfg.password  = "aio_KO<safety edit>sXwbgtWCboCal" -- 设置MQTT密码
sub_topic="/topic/ctiot/dht11/topic/c"      -- 设置MQTT订阅主题
pub_topic="/topic/ctiot/dht11/topic/m"      -- 设置MQTT发布主题-- 初始化MQTT客户端
m=nil
iot_test = mqtt.Client(mqtt_cfg.clientid, mqtt_cfg.keepalive, mqtt_cfg.username, mqtt_cfg.password)-- 设置Wi-Fi模式为Station模式并配置Wi-Fi连接参数
wifi.setmode(wifi.STATION)
wifi.sta.config(station_cfg)-- 配置GPIO引脚
pin=3
gpio.mode(pin, gpio.OUTPUT)conn_flag=0  -- 初始化连接标志为0-- 连接到MQTT服务器并订阅主题的函数
function get_broker(mqtt_client)mqtt_client:connect(mqtt_cfg.host, mqtt_cfg.port, false,function(client)client:subscribe(sub_topic, 0, function(client)print("subscribe success ",  sub_topic)end)-- 发布初始化成功消息m:publish(pub_topic, "success", 0, 0, function(client)print("init success")conn_flag=1end)end,function(client, reason)print('connection failed', reason)end)m=mqtt_client
end-- MQTT客户端离线时的回调函数
iot_test:on("offline", function(client)print("client offline")conn_flag=0get_broker(iot_test)
end)-- MQTT客户端接收到消息时的回调函数
iot_test:on("message", function(client, topic, data)if data ~= nil thenprint(data)if data == "1" thengpio.write(pin, gpio.HIGH)print("1111")endif data == "2" thengpio.write(pin,gpio.LOW)print("222")endend
end)-- 设备启动时执行的操作
function startup()if file.open("init.lua") == nil then--print("init.lua deleted or renamed")else--print("Running")file.close("init.lua")get_broker(iot_test)end
end-- Wi-Fi连接成功时的事件处理函数
wifi_connect_event = function(T)print("Connection to AP(" .. T.SSID .. ") established!")print("Waiting for IP address...")if disconnect_ct ~= nil thendisconnect_ct = nilend
end-- 获取到IP地址时的事件处理函数
wifi_got_ip_event = function(T)tmr.create():alarm(3000, tmr.ALARM_SINGLE, startup)
end-- 注册Wi-Fi事件监听器
wifi.eventmon.register(wifi.eventmon.STA_CONNECTED, wifi_connect_event)
wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, wifi_got_ip_event)
wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T)wifi.sta.connect()
end)
wifi.sta.connect()-- DHT11传感器引脚配置
dht11Pin = 4-- 定时执行DHT11传感器读取并向MQTT服务器发布数据
tmr.create():alarm(3000,tmr.ALARM_AUTO ,function()if conn_flag==1 thenstatus, temp, humi, temp_dec, humi_dec = dht.read(dht11Pin)if status == dht.OK thenm:publish(pub_topic, string.format("DHT Temperature:%d.%03d;Humidity:%d.%03d\r\n",math.floor(temp),temp_dec,math.floor(humi),humi_dec),0, 0, function(client) print("sent") end)else print("dht11 error")m:publish(pub_topic,"[dht11 error",0, 0, function(client) print("sent") end)endendend)

4. 结语


本小节完成了以下功能:

  1. 配置Wi-Fi连接参数,使设备能够连接到指定的Wi-Fi网络。
  2. 配置MQTT连接参数,使设备能够使用MQTT协议与远程服务器通信。
  3. 设置GPIO引脚的模式和状态,以便设备可以控制外部设备。
  4. 连接到MQTT服务器并订阅特定主题,以便实时接收来自服务器的消息。
  5. 当设备收到MQTT消息时,根据消息内容执行相应的操作,例如控制GPIO引脚的状态。
  6. 在设备启动时执行初始化操作,包括连接到Wi-Fi网络和MQTT服务器。
  7. 注册Wi-Fi事件监听器,以处理Wi-Fi连接状态变化事件。
  8. 通过DHT11传感器定时读取环境温湿度数据,并将数据发布到指定的MQTT主题上。


柴头物联网出品

http://www.hkea.cn/news/906032/

相关文章:

  • 连云港网站关键词优化seo自学教程
  • 网站全站出售淘宝关键词排名怎么查询
  • 龙口市规划建设局网站查询收录
  • 学校网站建设注意什么东莞网站营销推广
  • 网站设计模板是什么百度网盘人工客服电话多少
  • wordpress文章收缩长春seo优化企业网络跃升
  • 网站地图调用希爱力双效片骗局
  • 珠海网站建设维护友情链接买卖代理
  • 武汉企业网站推广外包网络广告营销案例分析
  • 深圳哪里有做网站的汕头seo排名收费
  • 如何用腾讯云主机做网站株洲发布最新通告
  • 中国建设银行官网站下载信息流广告投放公司
  • 合肥建站平台网络平台推广是干什么
  • 黄冈工程建设标准造价信息网优化工作流程
  • 怎么做服装外贸网站怎么去推广一个产品
  • 和各大网站做视频的工作总结软件推广赚佣金渠道
  • asp.net是做网站的吗企业文化培训
  • 有链接的网站怎么做seochan是什么意思
  • 开发公司 工程管理中存在问题seo人工智能
  • 网站卖给别人后做违法信息seo和点击付费的区别
  • 网站配色 绿色网络推广主要做什么
  • 个人网站制作多少钱公关公司的主要业务
  • 网站底备案号链接代码西安网络推广营销公司
  • 哪个网站开发是按月付费的百度指数是免费的吗
  • asp网站后台管理教程放单平台
  • 做网站毕设任务书网络营销网站建设案例
  • .net 企业网站 模版关键词seo深圳
  • 网站建设优化价格网站seo诊断
  • 网站设计详细设计有没有好用的网站推荐
  • 没有货源可以开网店吗网站更新seo