基于ESP32的数据采集端

背景介绍

  数据采集设备属于物联网领域的标准件,广泛应用于工业、医疗、通讯以及教育等场景。调研发现,数据采集设备主要由硬件系统和软件代码两部分组成。近年来,随着技术的发展,工程技术人员通过编写各种程序算法,不断的挖掘硬件的性能,不仅降低了硬件的成本,还大大减小了设备的体积,具体如下图所示:

在这里插入图片描述
  上图展示了数据采集模块的应用场景:图a表示为马斯克研发的脑机接口,帮助瘫痪患者使用神经信号操控数字设备;图b展示了美国西北大学 Rogers的科研成果,利用设备采集人体喉咙的振动信号,通过人工智能算法提取数字特征,获取人体的生理状态;图 c 展示了香港大学的研究成果,通过数据采集设备加电化学传感器,获取患者血压、血糖以及体温等数据,实现人体生理状态的远程监测。

数据采集端功能实现

硬件系统

  ESP32是乐鑫公司推出的 AIoT 芯片,能够通过 IIC 和 SPI 协议驱动后端功能器件,进而实现信号采集、设备管理等功能。调研发现,该产品内置有WiFi 和 BLE模块,能够大大减小了信号采集设备的体积。近来,我们结合联远智维使用的物联网平台与 ESP32 devkitv1 开发板,具体如图2所示,通过简单的Demo采集温湿度传感器的数据,后续利用MQTT协议将数据上传到云平台。

在这里插入图片描述

程序算法

  项目中通过Thonny开发环境下载安装 micropython 固件,逐次编写WIFI连接,IIC驱动以及MQTT上传相关的程序代码,最终实现电压信号采集,并且上传到联远云平台。其中,部分代码如下所示:

#wifi连接程序
import time
import network

def do_connect():
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print('connecting to network...')
        wlan.connect('WIFI-NAME', 'xxxxxx')  # WIFI名字和密码
        i = 1
        while not wlan.isconnected():
            print("正在链接中...{}".format(i))
            i += 1
            time.sleep(1)
    print('network config:', wlan.ifconfig()) 
 
def sub_cb(topic, msg): # 回调函数,收到服务器消息后会调用这个函数
    print(topic, msg)
c = MQTTClient("1", "127.0.0.1", 1883, "admin|1676719079277", "3ce32cc64510e31887d15d294d0e2918", keepalive=60)  # 建立一个MQTT客户端
{
    "deviceId": "1",
    "messageId":"1626923977595699201",
    "properties":{"tem":"40"}, 
    "success": true
}
topic:/ads-1/1/properties/read/reply

结果展示

  项目调试过程中,我们在云平台中建立相应产品,添加相关设备等,实现了物理设备与物联网平台的相互连接,最终利用MQTT协议将控制指令下发给硬件平台,并将采集的数据上传到云平台,具体结果如图3所示:

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值