小程序入门 远程控制 MQTT物联网协议 publish 和订阅subscribe onenet 阿里云 百度云 基于GPRS模块和STM32

本文主要是介绍小程序入门 远程控制 MQTT物联网协议 publish 和订阅subscribe onenet 阿里云 百度云 基于GPRS模块和STM32,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文基本公开了如何移植MQTT物联网协议到STM32平台上,并结合GPRS模块(SIM800C/SIM900A/SIM868等)实现publish和订阅topic从onenet,阿里云,百度云等。

一、代码适用范围

1. 设备端:

  • 主控芯片为STM32F103C8T6,但是兼容所有STM32芯片中。
  • 通信模块为sim800c或sim868,代码兼容,868多个GPS 使能代码和获取GPS信息及解析代码。
  • 主控与通信模块连接4个引脚:GPS使能,GPRS使能,及串口3 TXD和RXD。串口3用于通信。

2. 服务器:

  • 支持onenet
  • 支持aliyun
  • 支持baiduyun

3. 手机端:

  • 小程序:目前已开发onenet,获取数据流,数据点,topic订阅与发布,控制终端等功能。aliyun,baiduyun待开发。
  • app:用开源标准的mqtt 协议 apk。

二、MQTT 物联网协议使用

1. MQTT协议简介:

     MQTT(消息队列遥测传输) 是基于 TCP/IP 协议栈而构建的,已成为 IoT 通信的标准。

     初识 MQTT  IBM简介的很好:我就不多分享了,有兴趣的可以参考链接:

     https://www.ibm.com/developerworks/cn/iot/iot-mqtt-why-good-for-iot/index.html

2. 分享一个很好用的mqtt库:Paho

     设备端的mqtt协议移植,就是参考https://github.com/eclipse/paho.mqtt.embedded-c移植而来。

     整体移植过程:

     下载src源码:https://github.com/eclipse/paho.mqtt.embedded-c/tree/master/MQTTPacket/src

      

      添加到keil工程中。

      添加onenet、aliyun、baiduyun等调试接口,以及sim模块,at指令控制部分,调试代码。

      调试过程过于复杂且消耗时间,这里就不详细说明了。

      这里贴一张移植后的目录结构图:

      

      测试aliyun,baiduyun,onenet验证皆OK。

      设备端验证代码publish 稳定,测试三天未掉线。

3. 以onenet为例:

      设备端连接onenet:只需修改:如下部分即可。分别对应onenet服务器端的设备id,产品id和api-key。

      

4. 小程序demo

      源程序实现如下功能:

  • 添加设备
  • 二维码识别获取设备id
  • 显示继电器状态
  • 获取设备数据流
  • 发送topic
  • 远程控制继电器

小程序需要修改部分:

  • appid:修改为自己申请小程序后,生成的appid。

       

  • master-apikey,改为onenet创建产品后生成的master-apikey即可。

        

        然后就可以编译测试。

        如有疑问,欢迎评论或私聊详聊。

这篇关于小程序入门 远程控制 MQTT物联网协议 publish 和订阅subscribe onenet 阿里云 百度云 基于GPRS模块和STM32的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/524365

相关文章

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

Xshell远程连接失败以及解决方案

《Xshell远程连接失败以及解决方案》本文介绍了在Windows11家庭版和CentOS系统中解决Xshell无法连接远程服务器问题的步骤,在Windows11家庭版中,需要通过设置添加SSH功能并... 目录一.问题描述二.原因分析及解决办法2.1添加ssh功能2.2 在Windows中开启ssh服务2

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

Python模块导入的几种方法实现

《Python模块导入的几种方法实现》本文主要介绍了Python模块导入的几种方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录一、什么是模块?二、模块导入的基本方法1. 使用import整个模块2.使用from ... i

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin