对于ESP8266如有疑问可通过添加QQ群:733762735讨论学习。

固件下载

固件可通过在线编译下载,也可以使用我之前编译好的固件。如果你不爱折腾,推荐使用我之前编译好的,因为在线编译的固件会实时更新导致有些语句无法使用。另外还有一个好处就是可以直接连接阿里云IoT。

  • 在线编译网址
  • 历史版本固件点击下载

如下载历史固件请查看readme.txt,里面包含模块内容说明推荐使用3.23的固件。

固件烧录软件

烧录软件点击下载

烧录地址默认0x0

软件编辑器

ESPlore:点击下载
Java环境搭建视频教程:点击前往

软件基于Java环境,本人使用的是JDK1.8,具体实测为准。

连接阿里云IoT

内容可参考:https://blog.csdn.net/weixin_43368807/article/details/82984796

代码分享

代码较为简陋,自行修改。

//第一段
//********init.lua******/
wifi.setmode(wifi.STATION)
MQTTconnectFlag="Wait..."
ip="Wait..."
function u8g2_init()
sda = 5 -- GPIO14
scl = 6 -- GPIO12
sla = 0x3c
i2c.setup(0, sda, scl, i2c.SLOW)
disp = u8g2.ssd1306_i2c_128x64_noname(0, sla)disp:setFont(u8g2.font_6x10_tf)
disp:setFontRefHeightExtendedText()
disp:setDrawColor(1)
disp:setFontPosTop()
disp:setFontDirection(0)
disp:clearBuffer()
end
u8g2_init()
disp:drawStr(27,0,"SYSTEM STATUS")
disp:drawStr(0,12,"========================")
disp:drawStr(0,25,"IP:"..ip)
disp:drawStr(0,38,"MQTT:"..MQTTconnectFlag)
disp:drawStr(105,55,"NEXT")
disp:sendBuffer()
-----[wifi config]-------------
---------------------------
cfg={}
cfg.ssid="JMCC"
cfg.pwd="JMcc(}1dc"zj={}
zj.ssid="MEIZU 15"
zj.pwd="aaa10086"
cmcc={}
cmcc.ssid="CMCC-user"
cmcc.pwd="246x1234?"wl={}
wl.ssid="2.4"
wl.pwd="fankai1213"wifi.sta.config(wl)wifi.eventmon.register(wifi.eventmon.STA_GOT_IP, function(T)print("Connected, IP is "..wifi.sta.getip())ip=wifi.sta.getip()
dofile("s5.lua")
end)wifi.eventmon.register(wifi.eventmon.STA_DISCONNECTED, function(T)print("wifi disconnect")
end)
//第二段
//**************s5.lua***************//
jdqp=1
hwp=2
dhtp=8
led=4
fmqp=7
an=3
gpio.mode(an,gpio.INPUT)
gpio.mode(jdqp,gpio.OUTPUT)
gpio.write(jdqp,0)
gpio.mode(hwp,gpio.INPUT)
gpio.mode(dhtp,gpio.INPUT)
gpio.mode(led,gpio.OUTPUT)
gpio.write(led,1)
gpio.mode(fmqp,gpio.OUTPUT)
gpio.write(fmqp,0)json="N/A"
wd="N/A"
sd="N/A"
js="N/A"
fs="N/A"
rw="N/A"
rw="N/A"
hw="N/A"
MQTTconnectFlag="N/A"
sj=0
ww="0"
ss="0"
jdq="N/A"
fmq="N/A"
flag=1
jc=1
jx=0ProductKey ="修改"
ClientId =wifi.sta.getmac()
DeviceName ="修改"
DeviceSecret="修改"
RegionId="cn-shanghai"     myMQTTport=1883    --port
myMQTT=nil        --clientmyMQTThost=ProductKey..".iot-as-mqtt."..RegionId..".aliyuncs.com"   --host
myMQTTusername=DeviceName.."&"..ProductKey          --usernamet1="修改,填写TOPIC"
t2="修改,填写TOPIC"
t3="修改,填写TOPIC"
sb="修改,填写TOPIC"function GetNetTime()sntp.sync({"203.107.6.88","0.nodemcu.pool.ntp.org","1.nodemcu.pool.ntp.org","2.nodemcu.pool.ntp.org","3.nodemcu.pool.ntp.org","www.beijing-time.org"},function(sec, usec, server, info)print('sync', sec, usec, server,info)   sj=sec-5sj2=string.format(sec.."000")print(sj2)end,function()print("get time error")end)  return sj
endmyMQTTtimes='6666'
hmacdata="clientId"..ClientId.."deviceName"..DeviceName.."productKey"..ProductKey.."timestamp"..myMQTTtimes
myMQTTpassword=crypto.toHex(crypto.hmac("sha1",hmacdata,DeviceSecret))
myMQTTClientId=ClientId.."|securemode=3,signmethod=hmacsha1,timestamp="..myMQTTtimes.."|"  myMQTT=mqtt.Client(myMQTTClientId, 120,myMQTTusername,myMQTTpassword) MQTTconnectFlag=0
tmr.alarm(0,1000,1,function()if myMQTT~=nil thenprint("Attempting client connect...")myMQTT:connect(myMQTThost, myMQTTport,0,MQTTSuccess,MQTTFailed)end
end)function MQTTSuccess(client)print("MQTT connected")client:subscribe({t1=0,t2=0,t3=0}, function(conn)    print("subscribe success") end) myMQTT=clientMQTTconnectFlag=1ms="CONNCET"tmr.stop(0)
endfunction MQTTFailed(client,reson)print("Fail reson:"..reson)MQTTconnectFlag=0ms="FILED"tmr.start(0)
endmyMQTT:on("offline", function(client) print ("offline") tmr.start(0)
end)print(q)
myMQTT:on("message", function(client, topic, data) print(topic ..":") if data ~= nil thenprint(data)if data=="11"    thengpio.write(1,1)elseif data=="10"   thengpio.write(1,0)elseif data=="41"   thengpio.write(led,1)elseif  data=="40"  thengpio.write(led,0)elseif  data=="71"  thengpio.write(fmqp,1)elseif data=="70"   thengpio.write(fmqp,0)elseif data=="0"    thenclient:publish(sb,q,0,0,function(client)    print("updata ok!") end)elseif string.find(data,[[{"LightSwitch":0}]])~=nil thengpio.write(1,0)elseif string.find(data,[[{"LightSwitch":1}]])~=nil thengpio.write(1,1)endend
end)
function cj()z,wd,sd,x,y=dht.read11(dhtp)if wd~=-999 and sd~=-999    thenww=wdss=sdendjdqs=gpio.read(jdqp)if jdqs==1 thenjdq="ON"elsejdq="OFF"endhws=gpio.read(hwp)if hws==1 thenhwk="FIND"gpio.write(fmqp,1)elsehwk="NONE"gpio.write(fmqp,0)endfmqs=gpio.read(fmqp)if fmqs==1  thenfmq="SPEAK"else fmq="STOP"endkrz=adc.read(0)if krz>=600 thengpio.write(fmqp,1)tmr.delay(100000)end
endfunction sc()json=string.format([[{"id": "123","version": "1.0","params": {"mtemp": {"value": %d,"time": %s},"mhumi": {"value": %d,"time":  %s},"LightSwitch": {"value":%d,"time": %s},"PowerSwitch_1":{"value":%d,"time":  %s},"RingLEDSwitch":{"value":%d,"time": %s},"GasConcentration":{"value":%d,"time": %s}   },"method": "thing.event.property.post"
}]],ww,sj2,ss,sj2,jdqs,sj2,fmqs,sj2,hws,sj2,krz,sj2)
end
tmr.alarm(2,20000,1,function()
tmr.alarm(1, 5000, 1, function() sj=sj+5if MQTTconnectFlag==1 and myMQTT~=nil then sj2=string.format(sj.."000")cj()sc()myMQTT:publish(sb,json,0,0,function(client)print("send ok" ) end)endfunction me1()
disp:clearBuffer()
disp:drawStr(27,0,"SYSTEM STATUS")
disp:drawStr(0,12,"======================")
disp:drawStr(0,25,"IP:"..ip)
disp:drawStr(0,38,"MQTT:"..ms)
disp:drawStr(105,55,"NEXT")
--disp:drawStr(0,10,"temp:"..wd.."C")
disp:sendBuffer()
print("mw1")
end
function me2()
disp:clearBuffer()
i=12
disp:drawStr(0,12-i,"TMEP:          "..ww)
disp:drawStr(0,24-i,"HUMI:          "..ss)
disp:drawStr(0,36-i,"JDQ :          "..jdq)
disp:drawStr(0,48-i,"HTJC:          "..hwk)
disp:drawStr(0,55,"UP")
disp:drawStr(105,55,"NEXT")
--disp:drawStr(0,10,"temp:"..wd.."C")
disp:sendBuffer()
print("me2")
end
function me0()
disp:clearBuffer()
i=12
disp:drawStr(0,12-i,"MQ-5:          "..krz)
disp:drawStr(0,24-i,"FMQ:          "..fmq)
disp:drawStr(0,55,"UP")
disp:sendBuffer()print("me0")
end
--    if gpio.read(an)==0  then
--        me2()
--    elseif gpio.read(an)==1  then
--        me1()
--    endtmr.alarm(3,1500,1,function()a=gpio.read(3)tmr.delay(1000000)c=gpio.read(3)if a==1 and c ==0 thenjx=jx+1--    i=i-1endprint(jx)if jx==10   thenjx=0endqm=jx%3if qm==0    thenme1()elseif qm==1   thenme2()else me0()endend)end)
GetNetTime()
end)

实物演示视频

演示视频:点击前往

优质学习内容推荐

传送门1:点击前往

ESP8266连接阿里云IoT相关推荐

  1. 手把手教你用Arduino接入阿里云物联网平台,ESP8266连接阿里云物联网平台必看教程...

    使用Ardui no 的方式快速连接阿里云物联网平台. 文中提到的 AliyunIoTSDK 这个 Arduino 库,可以在 Arduino 库商店里搜索到(搜索 AliyunIoTSDK) Ali ...

  2. 【智能家居远程控制系统】ESP8266连接阿里云(一)

    系列文章目录 第一章 阿里云物联网平台搭建 第二章 订阅与发布MQTT消息 第三章 为ESP8266-NodeMCU搭建ArduinoIDE环境 第四章 ESP8266连接阿里云 第五章 阿里云平台云 ...

  3. ESP8266开发、ESP8266连接阿里云物联网、天猫精灵控制esp8266、esp8266一键配网、智能家居

    ESP8266开发.ESP8266连接阿里云物联网.天猫精灵控制esp8266.esp8266一键配网.智能家居 项目介绍 最近会 将arduino IDE开发ESP8266中一些值得记录得部分写下来 ...

  4. 微信小程序使用MQTT.js连接阿里云IoT物联网平台

    官方已经开源了一个SDK版本,也是基于mqtt.js,进行了各种封装: https://github.com/aliyun/alibabacloud-iot-device-sdk · 阅读以下内容需要 ...

  5. 【微信小程序控制硬件⑧ 】微信小程序以 websocket 连接阿里云IOT物联网平台mqtt服务器,封装起来使用就是这么简单!(附带Demo)

    [微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...

  6. ESP8266连接阿里云--MQTT协议

    ESP8266连接阿里云–MQTT协议   MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscr ...

  7. 支付宝小程序使用MQTT over WebSocket连接阿里云IoT物联网平台

    前言 之前写了一篇微信小程序使用MQTT over WebSocket连接阿里云IoT物联网平台,介绍了如何使用mqtt.js在微信小程序上连接mqtt服务器,文中顺带提了mqtt.js是支持支付宝小 ...

  8. ESP8266连接阿里云(STM32)

    一.概述 之前通过串口调试助手+ESP8266已经连接上阿里云了 ESP8266连接阿里云(串口调试助手) 这次我们使用STM32+ESP8266来接入阿里云,其实本质上就是STM32和ESP8266 ...

  9. NodeMCU-ESP8266连接阿里云Iot平台进行数据监测

    简介 本教程中主要讲解使用阿里云Iot监测控制NodeMCU的方法. 设备从MQTT数据上传.监测.控制的全流程如下图所示,本教程仅仅讲解从设备与Aliyun平台之间的交互,业务服务器部分(App开发 ...

最新文章

  1. XSLT教程 [转]
  2. matlab-创建函数
  3. 《Linux总线、设备与驱动》USB设备发现机制
  4. Kubernetes安全之认证
  5. fcm模糊聚类matlab实例_一文学会使用MATLAB将仿真、试验数据可视化附带源程序
  6. linux 配置SAN存储-IPSAN
  7. 简单三分钟,本地搭建k8s
  8. C# 基础知识复习(四)---数组
  9. ubuntu server设置时区和更新时间
  10. MsSQL SQLServer 查询 表中字段的及类型是否为空
  11. deploy dubbox 到私有的 nexus 服务
  12. vivado和modelsim联合仿真实现偶分频
  13. 超柔磨绒印花空调被(200*230cm) -凡客诚品工商银行团购专区- VANCL凡客诚品
  14. 一作解读NLPCC最佳学生论文:1200万中文对话数据和预训练模型CDial-GPT
  15. 数据结构—顺序表详解
  16. SolidWorks二次开发随记(一)
  17. codesmith mysql 模板_CodeSmith代码自动生成器 JAVA模版的制作---CodeSmith+MySQL+MyEclipse 10...
  18. Linux中使用cp命令报cp:omitting directory错误
  19. stm32-Hardfault及内存溢出的查找方法
  20. 宽带多天线无线传输技术发展展望

热门文章

  1. 孩子为什么学python_小孩子为什么学Python编程
  2. dll文件丢失解决方案
  3. oracle18c升级19,Oracle 18C新特性测试之滚动升级
  4. 【笔记】使用OrCAD对电路进行优化
  5. PS4怪物猎人世界服务器稳定吗,怪物猎人世界pc和ps4能联机吗 附两个版本画质对比...
  6. edusoho 内网部署问题(视频播放,文件上传 无法使用)
  7. Ph.D Grind 读后感 —— 张宇鹏
  8. 什么是A股,什么是B股,什么是ST,什么是G
  9. 循环单链表的销毁操作
  10. java 垃圾回收GC(CMS、G1)原理及调优