阿里云iot haas Micropython连接esp32;esp32物联网设备上报信息及云端信息获取;远程控制设备自带led熄灭;网页界面交互远程控制

这篇具有很好参考价值的文章主要介绍了阿里云iot haas Micropython连接esp32;esp32物联网设备上报信息及云端信息获取;远程控制设备自带led熄灭;网页界面交互远程控制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考:https://blog.csdn.net/HaaSTech/article/details/125975052
https://iot.console.aliyun.com/
https://www.bbsmax.com/A/x9J2X8nZd6/

首先烧录阿里云iot haas固件:
https://haas.iot.aliyun.com/haasapi/index.html#/Python/docs/zh-CN/startup/ESP32_startup

***直接下载后可以通过vscode插件烧录;烧录好后也可以在thony编辑运行代码

esp32唯一设备码,智能家居IOT,阿里云,物联网,云计算
esp32唯一设备码,智能家居IOT,阿里云,物联网,云计算

1、阿里云iot连接esp32


from aliyunIoT import Device     # iot组件是连接阿里云物联网平台的组件
import network    

# 物联网平台连接标志位
iot_connected = False
wlan = None

# 三元组信息
productKey = ""
deviceName = ""
deviceSecret = ""

# 物联网设备实例
device = None

# Wi-Fi SSID和Password设置
wifiSsid = ""
wifiPassword = ""

# 等待Wi-Fi成功连接到路由器
def get_wifi_status():
    global wlan
    wifi_connected = False

    wlan.active(True)                  #激活界面
    wlan.scan()                        #扫描接入点
    #print("start to connect ", wifiSsid)
    wlan.connect(wifiSsid, wifiPassword)       # 连接到指定的路由器(路由器名称为wifiSsid, 密码为:wifiPassword)

    while True:
        wifi_connected = wlan.isconnected()    # 获取Wi-Fi连接路由器的状态信息
        if wifi_connected:
            print("wifi_connected:", wifi_connected)# Wi-Fi连接成功则退出while循环
            break
        else:
            utime.sleep(0.5)
            print("wifi_connected:", wifi_connected)

    ifconfig = wlan.ifconfig()                    #获取接口的IP/netmask/gw/DNS地址
    print(ifconfig)
    utime.sleep(0.5)

## 连接阿里云物联网平台
def connect_lk(productKey, deviceName, deviceSecret):
    global device, iot_connected
    key_info = {
        'region': 'cn-shanghai',
        'productKey': productKey,
        'deviceName': deviceName,
        'deviceSecret': deviceSecret,
        'keepaliveSec': 60
    }
    # 将三元组信息设置到iot组件中
    device = Device()

    # 设定连接到物联网平台的回调函数,如果连接物联网平台成功,则调用on_connect函数
    device.on(Device.ON_CONNECT, on_connect)

    # 配置收到云端属性控制指令的回调函数,如果收到物联网平台发送的属性控制消息,则调用on_props函数
    device.on(Device.ON_PROPS, on_props)

    # 启动连接阿里云物联网平台过程
    device.connect(key_info)

    # 等待设备成功连接到物联网平台
    while(True):
        if iot_connected:
            print('物联网平台连接成功')
            break
        else:
            print('sleep for 1 s')
            utime.sleep(1)
    print('sleep for 2s')
    utime.sleep(2)

2、esp32物联网设备上报信息及云端信息获取

参考:https://haas.iot.aliyun.com/haasapi/index.html#/?id=haas-python%e7%89%b9%e7%82%b9
https://haas.iot.aliyun.com/solution/detail/solution?versionId=800A5A2601C534EA00000002&dataId=800A5A2601C534EA

***post_default_value;可以自定义设备信息日志,上传阿里云


def post_props(data):
    global device
    if isinstance(data, dict):
        data = {'params': ujson.dumps(data)}
    ret = device.postProps(data)
    return ret



def post_default_value():
    global value
    string = {"on": value}
    post_props(string)
    
# 设置props 事件接收函数(当云平台向设备下发属性时)
def on_props(request):
    global value
    try:
        props = eval(request['params'])
        
        # 获取dict状态字段 注意要验证键存在 否则会抛出异常
        if "on" in props.keys():
            print(props)
        
            value = props["on"]
            if value==1:
                led.value(1)
            else:
                led.value(0)
            
      
            post_default_value()
    except Exception as e:
        print("#"*8,e)

3、阿里云远程控制esp32设备自带led熄灭

**提前要在阿里云iot后台设置好产品和设备,定义好功能定义自定义属性格式发布上线;设置好产品发布后再去绑定设备
esp32唯一设备码,智能家居IOT,阿里云,物联网,云计算
esp32唯一设备码,智能家居IOT,阿里云,物联网,云计算
esp32唯一设备码,智能家居IOT,阿里云,物联网,云计算
esp32唯一设备码,智能家居IOT,阿里云,物联网,云计算

**标识符唯一,这是数据传输识别的key值

# -*- coding: UTF-8 -*-

from aliyunIoT import Device     # iot组件是连接阿里云物联网平台的组件
import network                   # Wi-Fi功能所在库
import ujson                     # json字串解析库
import utime                     # 延时API所在组件
                 
from machine import Pin


value = 0
led = Pin(2, Pin.OUT)
led.value(0)
# 物联网平台连接标志位
iot_connected = False
wlan = None

# 三元组信息
productKey = ""
deviceName = ""
deviceSecret = ""

# 物联网设备实例
device = None

# Wi-Fi SSID和Password设置
wifiSsid = ""
wifiPassword = ""

# 等待Wi-Fi成功连接到路由器
def get_wifi_status():
    global wlan
    wifi_connected = False

    wlan.active(True)                  #激活界面
    wlan.scan()                        #扫描接入点
    #print("start to connect ", wifiSsid)
    wlan.connect(wifiSsid, wifiPassword)       # 连接到指定的路由器(路由器名称为wifiSsid, 密码为:wifiPassword)

    while True:
        wifi_connected = wlan.isconnected()    # 获取Wi-Fi连接路由器的状态信息
        if wifi_connected:
            print("wifi_connected:", wifi_connected)# Wi-Fi连接成功则退出while循环
            break
        else:
            utime.sleep(0.5)
            print("wifi_connected:", wifi_connected)

    ifconfig = wlan.ifconfig()                    #获取接口的IP/netmask/gw/DNS地址
    print(ifconfig)
    utime.sleep(0.5)

# 物联网平台连接成功的回调函数
def on_connect(data):
    global iot_connected
    iot_connected = True

# 设置props 事件接收函数(当云平台向设备下发属性时)
def on_props(request):
    global value
    try:
        props = eval(request['params'])
        
        # 获取dict状态字段 注意要验证键存在 否则会抛出异常
        ###on是标识符key值;这里实现云端控制设备灯熄灭
        if "on" in props.keys():  
            print(props)
        
            value = props["on"]
            if value==1:
                led.value(1)
            else:
                led.value(0)
            
      
            post_default_value()
    except Exception as e:
        print("#"*8,e)


def post_props(data):
    global device
    if isinstance(data, dict):
        data = {'params': ujson.dumps(data)}
    ret = device.postProps(data)
    return ret



def post_default_value():
    global value
    string = {"on": value}
    post_props(string)
    
    

def connect_lk(productKey, deviceName, deviceSecret):
    global device, iot_connected
    key_info = {
        'region': 'cn-shanghai',
        'productKey': productKey,
        'deviceName': deviceName,
        'deviceSecret': deviceSecret,
        'keepaliveSec': 60
    }
    # 将三元组信息设置到iot组件中
    device = Device()

    # 设定连接到物联网平台的回调函数,如果连接物联网平台成功,则调用on_connect函数
    device.on(Device.ON_CONNECT, on_connect)

    # 配置收到云端属性控制指令的回调函数,如果收到物联网平台发送的属性控制消息,则调用on_props函数
    device.on(Device.ON_PROPS, on_props)

    # 启动连接阿里云物联网平台过程
    device.connect(key_info)

    # 等待设备成功连接到物联网平台
    while(True):
        if iot_connected:
            print('物联网平台连接成功')
            break
        else:
            print('sleep for 1 s')
            utime.sleep(1)
    print('sleep for 2s')
    utime.sleep(2)



if __name__ == '__main__' :

    wlan = network.WLAN(network.STA_IF)    #创建WLAN对象
    # 请替换物联网平台申请到的产品和设备信息,可以参考文章:https://blog.csdn.net/HaaSTech/article/details/114360517
    # global productKey, deviceName, deviceSecret ,on_request, on_play
    get_wifi_status()

    connect_lk(productKey, deviceName, deviceSecret)
    while True:
        post_default_value()
        utime.sleep(2)

    
    



***可以后台调试测试效果
esp32唯一设备码,智能家居IOT,阿里云,物联网,云计算
esp32唯一设备码,智能家居IOT,阿里云,物联网,云计算

4、网页界面交互远程控制

参考:https://haas.iot.aliyun.com/solution/detail/solution?versionId=800A5A2601C534EA00000002&dataId=800A5A2601C534EA

**https://studio.iot.aliyun.com/ 通过 iot studio工具创建页面及关联阿里云iot的产品与设备及创建页面应用;发布后既可以通过网页链接控制
esp32唯一设备码,智能家居IOT,阿里云,物联网,云计算
esp32唯一设备码,智能家居IOT,阿里云,物联网,云计算
**按钮开关可以知道状态,样式里设置开关数据就可以;状态信息text展示设备信息,在
样式里设置文本数据源就行
esp32唯一设备码,智能家居IOT,阿里云,物联网,云计算
esp32唯一设备码,智能家居IOT,阿里云,物联网,云计算

手机浏览器打开发布后的链接控制:
esp32唯一设备码,智能家居IOT,阿里云,物联网,云计算文章来源地址https://www.toymoban.com/news/detail-782072.html

到了这里,关于阿里云iot haas Micropython连接esp32;esp32物联网设备上报信息及云端信息获取;远程控制设备自带led熄灭;网页界面交互远程控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32系列(HAL库)——使用ESP8266-01S物联网模块连接Onenet云平台上报DHT11温湿度

    本篇主要讲解如何使用ESP8266-01S物联网模块连接Onenet云平台,并上报DHT11模块的温湿度数据。本文单片机主控采用STM32F405RGT6,使用其他主控的话基本要求有2个串口,一个串口用于调试使用,另一个用于ESP模块通讯。 1.软件 CubeMX Keil5 串口调试助手 Onenet云平台账户 2.硬件 STM32开

    2024年02月02日
    浏览(79)
  • 【阿里云】物联网平台配置ESP8266真实设备AT串口连接,支持MQTT协议通信

    1 阿里云物联网平台 官方文档:https://help.aliyun.com/product/30520.html 官方控制台:https://iot.console.aliyun.com/lk/summary/new 左边有产品和设备, 产品是抽象的品类 ,比如说电灯,空调等等。 设备是品类下具体的物品 ,和实物一一对应的云端信息,比如电灯1,电灯2,电灯-卧室,电灯

    2024年02月01日
    浏览(61)
  • ESP8266连接阿里云通过MQTT上报状态属性

    1、新建一个产品 2、添加物模型,物模型用于显示上报的消息的 编辑草稿,也就是添加属性  可以选择标准的和自定义的,我这里选择自定义的 设置物模型功能 我这里添加了两个,完成后发布上线 3、到设备中添加设备,用于ESP8266连接  添加成功后,可以看到  我这里多添

    2023年04月09日
    浏览(43)
  • 【ESP8266】使用MQTT协议 连接华为云iotDA,实现设备属性上报

    相关资料:https://github.com/CQUPTLei/ESP8266 往期文章:【ESP8266】基础AT指令和常用WIF指令 【MQTT 5.0】协议 ——发布订阅模式、Qos、keepalive、连接认证、消息结构 华为云物联网平台 (IoT 设备接入云服务)提供海量设备的接入和管理能力,将物理设备联接到云,支撑设备数据采集上

    2024年02月09日
    浏览(43)
  • MQTT连接阿里云物联网上报物模型数据

    目录 1. 创建产品(物联网平台 - 产品 - 创建产品) 2. 为产品添加设备 3. 添加物模型 4. mqtt.fx连接测试 5. 调试物模型 6. 使用mqtt.fx上报温度数据  我这里再新建一个名为 \\\"Test01\\\" 的产品作为演示 选择 \\\"添加自定义功能\\\" 添加 温度 属性: 创建好后,点击 发布上线 MQTT.fx是一款基

    2024年04月12日
    浏览(48)
  • STM32、ESP8266与MQTT连接阿里云物联网的串口通信异常解析

    STM32、ESP8266与MQTT协议连接阿里云物联网平台时常见的串口通信异常介绍 在构建物联网应用时,STM32、ESP8266与MQTT协议的结合是实现设备与网络间稳定通信的关键。然而,在连接阿里云物联网平台的过程中,串口通信异常成为了一个常见的挑战。本文将探讨这些异常现象及其可

    2024年04月22日
    浏览(46)
  • STM32+ESP8266(AT固件)连接阿里云物联网 保姆级教学(附代码) --3. STM32硬件连接+keil代码修改

    提示:这里是从实际应用如何使用教学配置,未从原理讲解,适合小白从零开始到成功,比较有成就感 STM32+ESP8266(AT固件)连接阿里云物联网系列保姆级教学 1. 创建产品和设备 2. 设置产品Topic数据和功能定义设备物模型数据显示 3. 硬件连接+代码修改 4. Web数据可视化 5.功能

    2024年02月05日
    浏览(50)
  • 合宙Air780e+luatos+阿里云物联网平台完成设备通信与控制(属性上报+4G远程点灯)

    之前发布的文章有采用合宙的4G LTE Cat.1模块,编程语言用的是lua,整体来说代码比较简洁,实现对华为云物联网平台的设备通信与控制,即采用一个变量作为模拟属性定时上报,并以一个LED灯作为受控设备进行云端命令的控制,本期内容为使用了 阿里云 物联网平台完成同样

    2024年02月06日
    浏览(50)
  • STM32+ESP8266+APP连接阿里云监测环境温湿度系列笔记1:阿里云物联网平台配置及数据上传

            在数据传递过程中阿里云物联网平台相当于服务器,ESP8266为客户端,通过路由器连接服务器时需要在物联网平台创建设备,具体过程如下: 1. 首先 在物联网平台创建公共实例,并点击进入, 图1 2.可见设备接入物联网平台的整体流程如图2中红色方框所示, 接下

    2024年02月04日
    浏览(59)
  • 【代码分享】ESP32接入华为云物联网平台完成属性定时上报(Arduino IDE开发)

    更多相关:华为云IOT物联网 论坛  之前带着大家写过使用esp8266接入华为云物联网平台的教程,有小伙伴后台私信,在ESP32接入华为云时遇到了问题,ESP32和ESP8266的代码几乎差不多的,ESP8266代码中用了“ESP8266.h”开发;ESP32可以直接用“WIFI.h”开发,教程基本和esp8266的那期教

    2024年02月13日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包