zoukankan      html  css  js  c++  java
  • 05-STM32+W5500+AIR202基本控制篇-功能5-Android和微信小程序扫描二维码绑定GPRS,并通过MQTT实现485,422通信和继电器控制(微信小程序)

    <p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/STM32W5500AIR202A/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

    功能说明

    这节演示一下使用微信小程序扫码绑定GPRS,然后通过MQTT服务器实现远程温湿度采集和远程控制继电器
    程序兼容SIM800

    功能演示

    1.根据第一节的硬件介绍下载本节的单片机程序

     

    2.程序文件hex路径

    3.按照下面方式短接通信端口

      PA9 PA10  连接ch340(串口模块)  用于Debug日志打印

      PB10  PB11连接485/422   (485/422通信)

      PA2  PA3 连接GPRS模块串口1  (和GPRS模块通信)

    4.插入手机卡(移动/联通), 接上天线

    5.连接485/422通信模块(任选一种即可,下面说明两种接线方式)

    485连接方式:

    422连接方式:

    6,打开串口调试助手,分别监控STM32串口1和485/422的数据

    单片机串口1监听配置

    485/422通信口串口配置

    7.确认设备正常工作

    查看Debug调试输出,如果订阅成功则设备正常工作

    如果设备没有工作起来,请检查手机卡是否松动,手机卡只支持移动和联通

    尽量选择移动的手机卡!

    8.安装微信小程序

    注:安装上一节手机APP!

    注:安装上一节手机APP!

    注:安装上一节手机APP!

    9.点击添加设备 选择GPRS设备

    10.扫描GPRS设备上的二维码

    11.扫描成功以后将在主页添加一个GPRS设备

    12.点击GPRS设备进入控制页面

    13. 控制两路继电器

     

     

    单片机程序说明

    1.关于微信小程序和GPRS模块MQTT通信

    首先用户需要知道MQTT就是一个TCP服务器,在后面的章节有单独一章介绍MQTT服务器

    用户当前只需要知道MQTT服务器就是一个TCP服务器,然后按照MQTT协议发送数据,MQTT服务器便会自动中转数据

    单片机程序使用串口2发送AT指令控制GPRS模块连接MQTT服务器

    GPRS连接MQTT以后

    订阅的主题:user/GPRS模块的IMEI号

    发布的主题:device/GPRS模块的IMEI号

    如果想让微信小程序和GPRS之间实现通信

    微信小程序需要

    订阅: device/GPRS模块的IMEI号

    发布: user/GPRS模块的IMEI号

    所以只要微信小程序获取到W5500的GPRS模块的IMEI号即可!

    GPRS模块上面的二维码就是其IMEI号

    2.控制模块以TCP透传方式连接MQTT服务器

    控制指令采用 ConfigModuleNoBlock 框架

    获取IMEI号用于后期的订阅和发布主题; 连接TCP服务器(MQTT本身就是一个TCP服务器); 发送MQTT连接协议

    连接成功,调用连接回调

    3.主函数一开始注册了连接回调,订阅成功,接收消息回调等函数

    在连接回调里面订阅主题

     

    4.发送消息

    5.接收处理消息

    微信小程序

     1.点击绑定GPRS设备按钮启动扫描程序,在回调里面获取扫码结果(拼接JSON数据)

    2.绑定成功,携带着数据跳转到index

    提示:数据格式 

    {"data":"bind","mac":"xx:xx:xx:xx:xx:xx","ip":"xxx.xxx.xxx.xxx","model":"E0000","name":"以太网设备"}

    3.在 onLoad 中提取数据,并存储到手机

    4.点击设备

    根据型号加载不同的页面,没有型号或其他错误加载ControlDevice页面
    提示携带的数据为:
    {"data":"bind","mac":"xx:xx:xx:xx:xx:xx","ip":"xxx.xxx.xxx.xxx","model":"E0000","name":"以太网设备"}

    5.在控制页面的onLoad提取mac,在onShow订阅主题

    7.接收处理消息

    8.发布消息

    结语

    对于初学者而言,此节代码测试一下通信即可,后面的章节会有详细的说明教程

    会让用户彻底明白一切的一切是怎么来的!

    不要心慌,无需着急!

    详细的说明教程过后还会有专门的移植使用教程.

    用户可以迅速的移植到自己的项目中使用.

  • 相关阅读:
    vue 底层面试题
    js第二阶段的面试题
    vue新一轮的面试题
    vue3面试题
    day_33:后端day04Django框架中的视图和请求、响应
    day_37:后端day08Django框架前后端不分离模式实现项目管理系统(增删差改)
    day_36:后端day07Django框架中的ORM数据库操作二
    【漏洞复现】ThinkAdmin v5和v6 未授权列目录任意文件读取(CVE202025540)
    【超详细】安全测试===sqlmap使用心得(零)
    【最新】绕过Outlook 拦截钓鱼链接方式
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/13378543.html
Copyright © 2011-2022 走看看