基于STM32与微信小程序的Onenet云平台数据交互实战指南

告别QXDM:在Android Studio中调试与验证高通NV读写功能的完整流程 本文详细介绍了在Android Studio中调试与验证高通NV分区读写功能的完整流程,替代传统的QXDM工具。通过JNI接口层、HAL服务层和Diag通信层的架构设计,开发者可以在熟悉的IDE环境中高效完成NV操作,包括环境配置、错误处理和性能优化等关键实践。 阅读详情

1. 项目开篇:为什么选择这个组合?

大家好,我是老陈,在嵌入式开发和物联网这块摸爬滚打了十几年。今天想和大家聊聊一个非常经典且实用的物联网项目:用STM32单片机,通过微信小程序,在Onenet云平台上玩转数据。说白了,就是让你的硬件设备(比如一个温湿度传感器)能把数据传到云端,同时你也能在手机上点点屏幕,远程控制设备(比如开关一个灯)。

我见过很多初学者,一上来就想搞复杂的MQTT、搞私有协议,结果在协议栈和网络配置上就卡住了,热情很快就消磨殆尽。其实,入门物联网,“稳”比“新”更重要。STM32+Onenet+微信小程序这个组合,就是我踩过无数坑后,总结出的对新手最友好的“黄金三角”。STM32生态成熟,资料遍地都是;Onenet是国内老牌的物联网云平台,稳定、免费额度高,文档也全;微信小程序更是国民级应用,开发门槛低,分享方便。这三者结合,你不需要去折腾复杂的服务器搭建、域名备案、HTTPS证书,能把精力完全集中在“如何让设备联网”和“如何做出一个好看的界面”这两个核心问题上。

这个实战指南的场景,我们设定为搭建一个“智能监测系统”。你可以想象它是一个放在家里的环境监测站,能实时上报温度、湿度,甚至空气质量数据到云端。同时,你可以在任何地方,打开微信小程序,查看这些数据的历史曲线,或者下发一个指令,比如远程重启设备、切换工作模式。这个场景非常典型,涵盖了物联网最核心的“数据上行”和“指令下行”两个功能。无论你是电子专业的学生想做个毕业设计,还是创客爱好者想给自己家添点智能设备,甚至是刚转行物联网的开发者想快速积累项目经验,跟着这篇指南一步步走,都能在几天内看到实实在在的成果。

2. 动手之前:三件必须准备好的“法宝”

在写第一行代码之前,咱们得把“战场”布置好。这里需要三个关键东西:一个Onenet云平台账号、一个微信小程序账号,以及一套基础的硬件。别担心,注册都是免费的。

2.1 注册Onenet并创建设备

首先,打开Onenet官网(中国移动物联网平台)。用手机号注册一个账号,这个过程和注册普通网站没区别,跟着引导走就行。登录后,你会进入主界面。这里的关键是创建一个“产品”和“设备”。你可以把“产品”理解为你要做的一类设备的总称,比如“智能环境监测仪”;而“设备”就是这个产品下的一个具体实例,比如你手头正在做的这一台。

创建产品时,联网方式选择“Wi-Fi”,数据协议我强烈建议新手选择“HTTP”。虽然MQTT更高效,但HTTP协议更直观,易于调试,对于我们第一个项目来说是最佳选择。创建完产品后,平台会给你分配一个唯一的 ProductID(产品ID),这个要记好。

接下来,在产品下添加一个设备。设备创建成功后,你会得到这个设备的 DeviceID(设备ID) 和一个 ApiKey(鉴权信息)。这三个东西——ProductID、DeviceID、ApiKey——就是你的设备在Onenet云平台上的“身份证”,后续STM32和微信小程序都要靠它们来和这个特定的设备通信。我习惯把它们整理到一个文本文件里,后面配置代码时会反复用到。

注意:ApiKey非常重要,相当于设备的密码,不要泄露。在代码里我们虽然会明文写入,但在实际产品中,需要考虑更安全的存储和传输方式。

2.2 注册微信小程序并获取AppID

第二个法宝是微信小程序。为什么选小程序?因为它无需安装,点开就用,传播极其方便。访问微信公众平台官网,选择“小程序”注册。同样,需要一个没注册过的邮箱。注册流程会要求你填写一些基本信息,跟着步骤完成即可。

注册成功后,登录小程序管理后台。在“开发”->“开发管理”->“开发设置”页面,你会发现你的 AppID(小程序ID)。这个AppID是小程序的唯一标识,就像设备的DeviceID一样重要。把它也记下来。

还有关键一步:为了让你的小程序能够合法地访问Onenet的服务器,你需要在“开发管理”->“服务器域名”中,将Onenet的API域名加入到“request合法域名”列表中。Onenet的API域名是:https://api.heclouds.com。这一步不做,小程序在真机上就无法请求到数据,会报域名错误。

2.3 硬件准备与基础接线

硬件方面,你需要一块STM32开发板(比如流行的STM32F103C8T6核心板)、一个ESP8266系列Wi-Fi模块(如ESP-01S),以及你的传感器(比如DHT11温湿度传感器)。ESP8266在这里扮演了“网络翻译官”的角色,STM32通过串口告诉它数据和指令,它负责转换成网络报文与Onenet通信。

接线很简单,主要是连接STM32和ESP8266的串口。通常,将ESP8266的TX接STM32的PA3(USART2_RX),RX接STM32的PA2(USART2_TX),VCC和CH_PD接3.3V,GND接地。务必确保ESP8266使用独立的3.3V电源供电,电流要足,很多连接不稳定的问题都出在供电上。STM32和传感器之间的接线,就根据你用的传感器型号来定,比如DHT11接一个GPIO口就行。

3. STM32端固件开发:让设备“开口说话”

硬件连好了,现在要让STM32“活”起来。我推荐使用STM32CubeMX配合Keil MDK或者STM32CubeIDE来开发,这能省去大量底层配置的时间。

3.1 基础工程与ESP8266驱动配置

首先,用STM32CubeMX新建工程,选择你的芯片型号。在图形化界面里,我们需要开启两个关键外设:一个用于打印调试信息的串口(比如USART1,接USB转TTL到电脑),另一个用于和ESP8266通信的串口(比如USART2)。把这两个串口都设置为“Asynchronous”(异步模式),波特率通常设为115200。

然后,配置一个定时器,用来周期性地采集传感器数据并触发上传。比如,用TIM2,设置一个5秒的中断。接着,配置几个普通的GPIO口,用于连接传感器(如DHT11)和控制用的LED(用于指示指令接收)。生成代码时,记得选择好你的开发工具链(MDK-ARM V5)。

工程生成后,打开它。我们需要自己编写ESP8266的驱动代码。核心思路就是通过串口2,向ESP8266发送AT指令。你需要实现几个基本函数:ESP8266_Init(初始化,发送AT、AT+CWMODE=1等指令设置STA模式)、ESP8266_JoinAP(连接Wi-Fi,发送AT+CWJAP="你的Wi-Fi名","密码")、ESP8266_Connect_Server(连接Onenet的TCP服务器,发送AT+CIPSTART="TCP","api.heclouds.com",80)。

这里有个坑我踩过很多次:AT指令的响应处理。发送每条指令后,一定要等待并解析模块返回的“OK”或“ERROR”。最好写一个带超时机制的发送接收函数,增加程序的鲁棒性。把Wi-Fi名称、密码、以及之前记下的Onenet设备ProductID、DeviceID、ApiKey,都写成宏定义放在头文件里,方便修改。

// 示例:在 `esp8266.h` 或 `onenet_config.h` 中定义
#define ONENET_PRODUCT_ID    "123456"
#define ONENET_DEVICE_ID     "dev_001"
#define ONENET_API_KEY       "your_api_key_here"
#define WIFI_SSID           "your_wifi_name"
#define WIFI_PASSWORD       "your_wifi_password"

3.2 构造HTTP报文与数据上传

连接上Onenet服务器后,就要上传数据了。Onenet的HTTP API要求我们按照特定的格式拼接HTTP POST请求。这个请求的“身体”部分是一个JSON对象,里面包含了你要上传的数据流。

假设我们上传温度和湿度,数据流名称分别叫temperature和humidity。那么,你需要在STM32代码里构造这样一个字符串(为了清晰加了换行,实际发送时是一整行,或按\r\n分隔):

POST /devices/你的DeviceID/datapoints?type=3 HTTP/1.1
api-key: 你的ApiKey
Host: api.heclouds.com
Content-Type: application/json
Content-Length: 计算出的JSON长度

{"datastreams":[{"id":"temperature","datapoints":[{"value":25}]},{"id":"humidity","datapoints":[{"value":60}]}]}

看起来有点复杂,但其实就是个文本拼接的活儿。你可以在STM32上用一个sprintf函数,小心地把它拼出来。注意,Content-Length必须准确计算JSON字符串的长度。然后,通过ESP8266的AT+CIPSEND指令,将这个HTTP报文发送出去。

我通常会把数据上传函数onenet_upload_data(float temp, float humi)写在定时器中断服务函数里,每5秒调用一次。发送成功后,Onenet服务器会返回一个HTTP响应,比如HTTP/1.1 200 OK。虽然我们不一定需要严格解析这个响应,但最好在调试时通过串口1打印出来看看,确认上传成功了。

3.3 接收与解析HTTP指令

数据上行搞定了,接下来更关键的是指令下行:如何让STM32接收来自小程序的命令?这里我们用HTTP GET请求来模拟“指令下发”。实际上,是让STM32周期性地向Onenet发起一个HTTP GET请求,查询平台上有没有新的“命令”。

在Onenet平台上,你可以在设备详情页的“命令”栏目中,创建一个命令。比如,创建一个名为LED_SWITCH的命令,参数可以设为ON或OFF。

在STM32代码中,你需要另一个函数onenet_get_cmd。它构造的HTTP请求如下:

GET /devices/你的DeviceID/commands?ack=0&timeout=5 HTTP/1.1
api-key: 你的ApiKey
Host: api.heclouds.com

这个请求的意思是:“查询我这个设备尚未确认(ack=0)的命令,我最多等5秒(timeout=5)”。如果有未处理的命令,Onenet的响应里就会包含命令的详情。你需要从返回的一大段JSON数据中,解析出command字段和对应的value。比如,解析到{"value":"ON"},就让STM32点亮一个LED;解析到"OFF"就熄灭。处理完命令后,还要再发一个ACK确认请求,告诉平台这条命令已执行,否则下次查询还会查到它。

这个过程对STM32的JSON解析能力是个小考验。如果资源紧张,可以不用完整的JSON库,直接用字符串查找函数(如strstr)来定位关键字段。虽然不够优雅,但对于这种固定格式的简单解析,非常高效实用。

4. 微信小程序开发:打造你的手机控制面板

设备端能收能发了,现在我们来打造用户界面。微信开发者工具是官方IDE,界面友好,自带模拟器和真机调试功能,非常方便。

4.1 小程序项目初始化与配置

下载安装微信开发者工具后,新建一个小程序项目。项目目录会要求你填入之前获取的AppID。项目创建好后,你会看到一个标准的目录结构:pages文件夹放页面,app.js、app.json、app.wxss是全局配置和样式。

首先,打开app.json文件。这个文件决定了小程序有哪些页面,以及导航栏样式。我们至少需要两个页面:一个首页(index)用来显示实时数据和图表,一个设置页(settings)用来下发指令。在app.json的pages数组中添加它们,并设置一下窗口背景色和导航栏标题。

{
  "pages": [
    "pages/index/index",
    "pages/settings/settings"
  ],
  "window": {
    "navigationBarTitleText": "智能环境监测",
    "navigationBarBackgroundColor": "#07c160"
  }
}

然后,还记得之前提到的服务器域名配置吗?除了在管理后台设置,在开发者工具里,你也可以在项目配置中勾选“不校验合法域名”用于开发调试,但真机测试前一定要在后台配置好https://api.heclouds.com。

4.2 使用Onenet API获取设备数据

小程序通过网络请求wx.request与Onenet交互。我们在首页(index.js)的onLoad或onShow生命周期函数里,编写一个获取设备最新数据点的函数。

这里要用到Onenet的“查询数据点”API。你需要构造一个GET请求,地址是:https://api.heclouds.com/devices/你的DeviceID/datapoints?datastream_id=温度,湿度。别忘了在请求的header里加上api-key。

// 在 index.js 的 Page({}) 内
fetchData: function() {
  const that = this;
  wx.request({
    url: `https://api.heclouds.com/devices/${deviceId}/datapoints?datastream_id=temperature,humidity`,
    header: {
      'api-key': yourApiKey
    },
    success(res) {
      if (res.statusCode === 200 && res.data.data) {
        // 解析返回的JSON,更新页面数据
        const data = res.data.data;
        that.setData({
          currentTemp: data.datastreams[0].datapoints[0].value,
          currentHumi: data.datastreams[1].datapoints[0].value
        });
      }
    },
    fail(err) {
      console.error('获取数据失败:', err);
    }
  });
}

为了让数据自动更新,你可以将这个fetchData函数用setInterval定时调用,或者在小程序里使用更优雅的“长连接”或“WebSocket”,但初期用定时轮询最简单可靠。获取到数据后,用setData方法更新到页面的wxml文件中,就能实时显示出来了。你还可以引入ec-canvas这样的组件来绘制温湿度的历史曲线图,让界面更加专业。

4.3 实现指令下发功能

指令下发页面(settings.js)的核心是发起一个HTTP POST请求到Onenet的“发送命令”API。我们在页面上放几个按钮,比如“开灯”、“关灯”、“重启设备”。

当用户点击“开灯”按钮时,触发一个事件处理函数。这个函数会构造一个JSON数据包,包含命令名称和参数,然后通过wx.request的POST方法发送出去。

// 在 settings.js 中
sendCommand: function(cmd, value) {
  wx.request({
    url: `https://api.heclouds.com/cmds?device_id=${deviceId}`,
    method: 'POST',
    header: {
      'api-key': yourApiKey,
      'Content-Type': 'application/json'
    },
    data: {
      [cmd]: value // 例如: { "LED_SWITCH": "ON" }
    },
    success(res) {
      if (res.statusCode === 200) {
        wx.showToast({ title: '指令发送成功' });
      }
    },
    fail(err) {
      wx.showToast({ title: '发送失败', icon: 'none' });
    }
  });
}

这里有个用户体验细节:发送指令后,最好给用户一个明确的反馈,比如用wx.showToast弹出“发送成功”的提示。因为网络有延迟,设备执行也需要时间,不能让用户觉得点了没反应。

5. 联调、测试与发布:见证系统跑起来

这是最激动人心也最容易出问题的阶段。我们需要把STM32程序烧录进去,把小程序跑起来,让它们通过Onenet这个“中间人”真正对话。

5.1 分段调试与问题排查

不要试图一次性完成所有联调! 我建议分三步走:

第一步,确保STM32能联网。 烧录好程序,打开串口调试助手。你应该能看到STM32通过串口1打印的详细日志:初始化ESP8266、连接Wi-Fi、连接Onenet服务器……每一步的成功或失败信息都要清晰可见。如果卡在连接Wi-Fi,检查SSID、密码是否正确,信号强度是否足够。如果卡在连接TCP服务器,检查ApiKey、DeviceID是否正确,以及网络是否能正常访问Onenet的域名。

第二步,测试数据上传。 观察串口日志,看HTTP POST请求是否成功发送,以及Onenet的响应是否是200 OK。同时,登录Onenet平台,进入你的设备的数据流展示页面,应该能看到温度和湿度数据在实时刷新。如果平台没数据,但STM32显示发送成功,可能是HTTP报文格式有误,仔细检查JSON格式和请求头。

第三步,测试指令下发。 在小程序开发者工具里,点击下发指令的按钮。同时观察STM32的串口日志,看它是否周期性地发起了GET命令查询,并成功接收和解析到了你从小程序发出的命令。如果STM32收不到,检查小程序发送命令的device_id和api-key是否正确,以及命令名称是否匹配。

5.2 小程序预览、上传与发布

当在开发者工具里调试一切正常后,点击工具栏的“预览”,生成一个二维码。用微信扫描,就可以在真机上体验你的小程序了。真机测试非常重要,因为真机的网络环境可能与电脑模拟器不同。

真机测试无误后,就可以上传代码了。在开发者工具里点击“上传”,填写版本号和备注。上传的代码会出现在微信小程序管理后台的“版本管理”中。在这里,你可以提交审核。微信审核主要是检查内容是否合规,我们的物联网控制工具一般没问题。审核通过后,你就可以点击“发布”了。发布后,所有微信用户都可以通过搜索或分享的链接找到并使用你的小程序了。

5.3 优化与进阶思考

系统跑通后,你可以考虑很多优化点。比如,STM32端的数据上传可以增加失败重传机制;可以改用MQTT协议以降低功耗和流量;可以增加更多的传感器(如PM2.5、甲醛)。小程序端可以增加用户登录鉴权,让一个账号管理多个设备;可以增加数据告警功能,当温度超过阈值时推送微信通知。

这个项目虽然基础,但它是一个完整的、可落地的物联网应用闭环。它教会你的不仅仅是几行代码,更是如何让硬件、云平台、移动端应用三者协同工作的系统思维。我最早做类似项目时,光是在协议对接上就折腾了好几周。现在有了Onenet这样成熟的平台和详细的文档,加上STM32和微信小程序强大的生态,实现的门槛已经大大降低。希望你能通过这个实战项目,真正推开物联网开发的大门,后面再去探索更广阔的世界,比如边缘计算、AIoT融合,都会更有底气。

芒果YOLO11改进23:主干Backbone篇GhostNet:原创改进高效 GhostNet 网络,华为出品,打造全新检测器 主干Backbone篇GhostNet:原创改进高效 GhostNet 网络,华为出品,打造全新检测器 阅读详情

相关推荐

手把手教你用键盘在Ubuntu上给Lerobot机械臂采集HIL-SERL训练数据(附完整配置文件)

本文详细介绍了在Ubuntu系统中使用键盘控制Lerobot机械臂进行HIL-SERL训练数据采集的完整流程。从环境准备、机械臂校准到键盘遥操系统配置和数据采集优化,提供了实战指南和常见问题解决方案,帮助读者高效获取高质量训练数据,推动具身智能和强化学习应用的发展。

weixin_30733003的博客 481

【嵌入式裸机开发】智能家居入门2(MQTT协议、微信小程序、STM32、ONENET云平台)

这里给出前两篇使用http协议博客的网址:在第二篇的博客结尾提出了服务器经常掉线的问题,使用别人编写好的心跳包也没用,因为程序一直卡死在重连中,所以也可以参照本篇的解决办法:加上独立看门狗,隔一段时间喂狗,如果超过时间没喂狗,说明程序多半卡死,此时看门狗处理逻辑中执行初始化esp8266和连接服务器的操作。

海风的博客 5720

STM32CubeMX——循迹传感器TCRT5000的使用

前言 人生如逆旅,我亦是行人。 ————苏轼《临江仙·送钱穆父》 一、介绍 TCRT5000描述:(带有晶体管输出的反射光学传感器) TCRT5000是一种反射式光学传感器,它包括一个红外发射器和一个3.5mm引线封装的光电晶体管,可阻挡可见光。还具有1mA 典型被测输出电流,2.5mm峰值工作距离,可应用传感与仪表,工业等行业。 TCRT5000具有紧凑的结构,其中发射光源和探测器布置在同一方向,通过使用来自物体的反射红外光束来感知物体的存在。工作波长为950毫米,探测器由光电晶体管组成

W_Oilpicture的博客 1万+

STM32物联网实战:ESP8266+OneNET MQTT协议实现微信小程序远程设备控制与数据交互

本文详细介绍了基于STM32和ESP8266模块,通过OneNET平台和MQTT协议实现微信小程序远程设备控制与数据交互的完整物联网解决方案。内容包括硬件连接、AT指令配置、OneNET设备创建、MQTT数据发布订阅机制以及微信小程序开发集成,为物联网初学者提供实用指导。

l1k9j8h7g6的博客 212

ptrade从零开始学量化第1期【ptrade如何新建策略、新建回测、新建交易】什么是ptrade量化交易?

回测之前需要对开始时间、结束时间、回测资金、回测基准、回测频率几个要素进行设定,设定完毕后点击保存。然后再点击回测按键,系统就会开始运行回测,回测的评价指标、收益曲线、日志都会在界面中展现。可以选择不同的业务类型(比如股票),然后给策略设定一个名称,添加成功后可以在默认策略模板基础上进行策略编写。交易界面点击新增按键进行新增交易操作,策略方案中的对象为所有策略列表中的策略,给本次交易设定名称并点击确定后系统就开始运行交易了。交易开始运行后,可以点击交易详情,查看策略评价指标、交易明细、持仓明细、交易日志。

GJ57017_wx的博客 2487

别慌!Oracle MOS登录页面大变样?5分钟搞定新旧账号登录全流程

本文详细解析Oracle MOS登录页面改版后的新旧账号登录流程,帮助用户快速适应账号体系变革。针对传统MOS账号和OCI账号的不同应用场景,提供5分钟内完成无缝切换的实用指南,包括登录步骤、书签设置和密码管理策略,助力数据库管理用户高效访问Oracle技术支持资源。

weixin_30275415的博客 519

STM32物联网项目---ESP8266微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制---MQTT篇(三)

AT指令是一种文本序列,用于控制调制解调器、手机等通讯设备。“AT"代表"Attention”,其后跟随的文字指定要执行的命令。在ESP8266等模块中,AT指令用于设定模块参数、控制网络连接和其他功能。以下是一些常用的AT指令示例:检测通信模块与控制端之间的连接。重置模块。设置Wi-Fi工作模式(例如Station模式、AP模式)。AT+CWJAP:连接Wi-Fi网络。AT指令集的优势在于其简单性,使得开发者能够不必深入微控制器的复杂编程,就能够快速实现无线通信的基本功能。

2301_76762351的博客 2262

o型圈沟槽设计_O型密封圈——详细选型过程及步骤

一、密封圈常用材料二、密封圈常用密封形式密封圈分为活塞密封,活塞杆密封,端面密封,旋转密封。三、O型密封圈的选型规则O型密封圈的尺寸图径向安装O型圈选型(静态和动态运动)活塞杆密封选择适当规格的O形圈时,应该保证其外径(d1+2*d2)至少等于或者大于沟槽外径d6;当选择的O形圈直径d1大于250 mm时, O形圈外径将不能超过沟槽外径的3%;当选择的O形圈直径d1小于250mm时, O形圈外径将...

weixin_39856630的博客 2万+

微信小程序获取----onenet的数据并控制stm32的板载LED

说明:我这里只演示简单的微信小程序 获取/控制 stm32的操作,其他美化界面就看上面那位博主的怎么将stm32的数据传送到onenet我之前写过了,不懂的可以看—>stm32–onenet这里不在重复操作说明,只演示微信小程序的操作准备软件; 1.安卓微信开发者工具,如下图,下载链接—>微信公众号 代码说明:这里的getInfo,就类似安卓里面点击事件的onclick点击事件函数,就理解为,点击了按钮,会跳转到getInfo函数,然后执行下面的操作就行了这里的url如果不懂的话,可以看我之前的ApiPos

weixin_46323814的博客 4327

华为OD机试 - 文件存储系统的排序 - 深度优先搜索dfs(Java 双机位C卷 200分)

华为OD机试 双机位C卷题库疯狂收录中,刷题。

学Java,找哪吒 720

WinCC 7.5 读取 SQL server2016 中的表格数据

环境 win10 SQL Server 2016 WinCC V7.5 SP2 1 安装SQL Server 2016 2 选择服务器名称 .\WINCC 3 建数据库

skr? 7143

STM32+ESP8266嵌入式物联网系统全栈开发实践

物联网边缘采集系统是连接物理世界与数字平台的关键入口,其核心在于嵌入式终端的数据感知、协议转换与云边协同能力。基于ARM Cortex-M3架构的MCU(如STM32F103)具备实时性、低功耗与丰富外设资源,天然适配传感器驱动、AT指令解析及轻量级MQTT通信等典型任务;而Wi-Fi模组(如ESP8266)以AT固件模式运行,大幅降低无线接入门槛,成为教育与中小项目首选。该技术组合支撑起从温湿度采集、光敏检测到微信小程序远程控制的完整链路,在智慧农业、环境监测、实训教学等场景中广泛应用。本文聚焦真实硬件约

ol789012345的博客 1237

YOLO11改进-注意力-引入Deformable Large Kernel Attention (DLKA) 解决多尺度、小目标、遮挡等问题

Deformable Large Kernel Attention (DLKA) 是一种用于视觉任务的注意力机制,旨在提升模型在处理不同尺寸和形状对象时的灵活性和性能。DLKA 的设计灵感源自传统的注意力机制,但通过引入可变形核(deformable kernel)来增强对局部特征的适应能力。

qq_64693987的博客 4042

基于STM32与OneNet的智能药盒设计:定时提醒与远程监控

物联网技术通过嵌入式系统与云平台结合,实现设备智能化与远程管理。其原理是利用微控制器采集数据,经由WiFi模块上传至云端,用户可远程监控与控制。在健康监护领域,这种方案能有效解决服药提醒与记录问题。本文以STM32和ESP8266为核心,对接OneNet云平台,设计了一款具备定时提醒、远程查看和服药记录功能的智能药盒,详细介绍了硬件选型、通信协议及调试要点,为类似物联网项目提供实践参考。

weixin_42566424的博客 281

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

基于STM32的智能衣柜系统设计与实现——温湿度调控+烟雾报警+远程监控

工作原理:DHT11内部包含一个电阻式湿度测量元件和一个NTC温度测量元件,并由一个8位单片机将模拟信号转换为数字信号,通过单总线输出。其通信协议要求主机先拉低总线至少18ms,然后释放并等待DHT11拉低80μs再拉高80μs作为应答,之后DHT11连续输出40位数据(湿度整数、湿度小数、温度整数、温度小数、校验和)。使用时注意:两次读取间隔应大于1秒,否则DHT11无法响应。数据线必须接上拉电阻,否则信号不稳定。本系统每2秒读取一次,读取失败则保留上一次有效值。

ZHG0220的博客 786

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ESP8266接入OneNet命令超时排查:ACK应答机制与MQTT调优实践

在物联网设备接入云平台的开发中,MQTT协议是设备与服务器之间最常用的轻量级通信协议。设备通过MQTT完成数据上报与指令接收,但当云端下发控制命令时,设备端若未实现完整的业务确认机制,就会出现平台显示“响应超时”而设备却已收到数据的现象。MQTT的QoS机制只保证消息送达设备,设备主动返回的ACK应答才是云平台判断命令执行成功的核心依据。以ESP8266接入OneNet平台为例,设备需正确设置ClientID、Username等连接参数,订阅命令主题,并在回调函数中快速解析cmd_id、发布ACK消息,同时

weixin_34124651的博客 184

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

微信小程序:下拉刷新事件

环节配置位置关键项开启app.json的window(全局)或页面.json(局部)样式同上监听页面.js停止页面.js易错点提醒触发后若不手动调用,下拉 loading 会一直转不停。

dreams_dream的博客 256

微信小程序练习:基本绘图

Canvas 2D 初始化:SelectorQuery 获取节点后,按pixelRatio放大画布再,保证高清屏清晰。基本图形arc画圆弧(配合fillstroke得到实心圆/轮廓圆);moveTolineTostroke画折线;画虚线。样式设置fillStyle(填充色)、(描边色)、lineWidth(线宽)、lineCap(端点样式)、lineJoin(交点样式)。文本绘制font设置字体,绘制文字,控制基线,rotate旋转画布。渐变创建径向渐变,添加色标,赋值给fillStyle后填充。

2401_87969251的博客 198

微信小程序 Canvas 图形变换实战

图形变换的本质是坐标系变换。只要牢记「save → 变换 → 绘制 → restore」四步,就能把任意复杂的图形组合出来。

2401_87969251的博客 156

微信小程序小区充电位锁了不充或充满不走:先核锁位时效与超时计费公示,再查异常升级

昨日 优快云 的。

20年技术经验|专注小程序+外贸独立站|已服务500家企业,分享创业中有趣的产品和技术经验。 162

微信小程序练习:照相和摄像

本案例覆盖了 Canvas 2D 最常用的绘图 API,重点在于「节点查询 → 像素比适配 → 上下文操作」这条主线。掌握之后,接入图表库、实现签名板或小游戏都不再困难。

2401_87969251的博客 153

农管家微信小程序系统

该系统支持微信小程序和抖音小程序多端部署,具备图文/评价两种内容模式,实现了专家问答、消息推送、关注提醒、分享自定义等核心功能,是农业信息化、数字化转型的实用工具。A:农管家适合农业种植户、农业技术专家、农业企业、农业服务机构以及农业电商平台使用。A:专家可通过小程序申请入驻,提交相关资质证明(如农业技术职称、从业经历等),经平台审核通过后即可成为认证专家,接受用户邀请并获得相应权益。

sw7cc的博客 127

智慧派出所警民融合管理系统(PC端+微信小程序)

智慧派出所警民融合管理系统(PC端),包括反诈宣传管理、诈骗线索信息、注册用户管理。反诈宣传管理,对诈骗案例、诈骗防范信息进行发布、管理。诈骗线索信息,实现诈骗线索举报信息管理,包括文字、图片线索,并对举报信息进行反馈。智慧派出所警民融合系统结合微信小程序的优势,打造线上警民融合小程序警务系统,提供高效的警务管理手段,拓展便民服务空间;辖区群众只需在网上提交申请材料,管理平台审核通过即可自动完成业务办理,解决群众往返跑路的麻烦,网上办事更轻松。#智慧警务#微信小程序#app开发#移动互联网。

m0_49367516的博客 221

微信小程序-wxs

在微信开发者工具中右键创建.wxs后缀的文件。每个.wxs文件也是一个独立模块,同样使用导出内容。示例(文件return d;FOO: foo,bar: bar(外联定义参考官方文档)

dreams_dream的博客 379

如何快速实现微信小程序 累计独立访客 (UV) > 100,解锁流量主

本文分享如何快速达成微信小程序100+累计独立访客(UV)以解锁流量主资格。尽管门槛低,但对内向开发者而言推广难。作者呼吁网友扫码支持,既助力变现,也积累开发经验。建议通过社交裂变、内容引流或合作互推等方式高效获客,实现低成本突破流量瓶颈。

抬头30°的微笑的专栏 43

微信小程序 chooseImage 后 uploadFile 失败:先核 uploadFile 合法域名与表单字段,再查大小超时与临时路径

相册选图成功、临时路径也有了,一调 wx.uploadFile却报、超时或服务端收不到文件——这和今日已写的、知乎侧「审核被拒先对类目/隐私/测试账号」,以及一串 WordPress / WooCommerce 专题(CDN 静态 404、优惠券无效、DB 连接、CPT 404、评论转圈、站内搜索、.maintenance)。——先核与name,再查,别把「request 域名通了」当成上传也通了。

20年技术经验|专注小程序+外贸独立站|已服务500家企业,分享创业中有趣的产品和技术经验。 136
上一篇: 解决Freeswitch编译错误:spandsp缺失问题的完整指南
下一篇: 深入解析STM32复位电路:从RC延时到抗干扰设计
Python
博客等级 码龄26年 1973粉丝 1567原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值