前言
学习物联网的同学们在进行毕业设计时都需要面对一个共同的问题:如何使用传感器获取数据并将其上传至云平台,然后通过微信小程序访问云平台数据,并通过微信小程序获取数据。然而随着云平台的更新,网上大部分方法都已经用不了了,阅读本文后,你将能从容应对毕业设计的挑战!
文章最后有代码和安装包
一、创建云平台项目
选择创建产品
用热点还是得选择蜂窝,选WiFi容易出错
选择产品开发
根据自身情况设置物模型
进入设备管理
点击详情
这三个很重要
设置物模型后会有下面的产品,新创建的产品是没有数据的如下图的超声波
二、编写ESP32代码
这里使用的是软件是Thony
这个时候需要生成一个unix时间戳
时间戳(Unix timestamp)转换工具 - 在线工具
可以直接使用一个时间远一点的时间戳放置过快过期我这里使用一个1800000000的时间戳,这里是8个0,不要输入少了,输入少了会导致连接云平台的时候报错。
token.exe已经放到gitee下了,文章最后有链接
products/自己的产品ID/devices/自己的设备ID
1800000000
WDM1bTlLZmJJYjNOTlcwTHEwcVBpczc3TGQwTjc1MkQ=
(1)导入相关的库
#引入相关模块
from simple import MQTTClient
import network,time,dht,json
from machine import I2C,Pin,Timer
from ssd1306 import SSD1306_I2C
(2)初始化引脚
一定要确定好板子上每个传感器对应的引脚,要不然可能导致代码卡死或者获取的数据异常。
如果没有OLED屏幕可以吧屏幕的初始化给删除掉。
WIFI_LED=Pin(2, Pin.OUT) #初始化WIFI指示灯
wlan = network.WLAN(network.STA_IF) #STA模式
#初始化相关模块
i2c = I2C(sda=Pin(13), scl=Pin(14))
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
#创建DTH11对象
d = dht.DHT11(Pin(27)) #传感器连接到引脚15
time.sleep(1) #首次启动停顿1秒让传感器稳定
(3)OLED屏幕函数
没有屏幕可以不用这个函数
#OLED屏幕显示,没有屏幕可以把这个注释掉
def Oled_show():
d.measure() #温湿度采集
oled.fill(0) #清屏背景黑色
oled.text('tem: '+str(d.temperature() )+' C',0,38) #温度显示
oled.text('hum: '+str(d.humidity())+' %',0,48) #湿度显示
oled.show()
(4)WiFi连接函数
开热点记得调成2.4G频道,