zoukankan      html  css  js  c++  java
  • 4.B-Air302(NB-IOT)-功能扩展-Android扫码绑定Air302,并通过MQTT实现远程控制和监控PLC(三菱Fx1s-10MR)

    <p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/Learn-NB-IOT-Air302-ForLua" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

    说明

    这节测试一下使用Android扫码绑定Air302,并通过MQTT实现远程控制和监控PLC.

    开发板负责透传数据,APP和PLC通信直接使用的PLC的编程口协议.

    PLC的型号为Fx1s-10MR,因为是编程口协议,应该兼容大部分三菱(具体没测试)

    Fx1s-10MR有6路X,4路Y,所以APP做成了下面的样子.

    上面是X的监视,绿灯代表接通; 下面是Y,可以控制Y的输出.

    硬件连接

    ①: 三菱PLC (Fx1s-10MR)

    ②: 通信线缆可以选择以下两款

    ③,④  记得插上手机卡和天线

    测试

    1.把本节代码拷贝到工程

    2.下载程序到开发板(下载完成以后复位一下,查看日志)

    显示如下说明成功连接服务器

    3.安装APP软件

     

     

    4.打开APP,选择右上角 扫一扫

    5.扫描模组上面的二维码

    6.将会添加一个设备在页面(显示的信息为模组的IMEI)

    7.点击设备进入控制页面(右上角显示在线的时候就可以了)

    当前NB-IOT模组的程序长时间不控制,会等好一会才可以与其通信上,用户可以直接复位下模组,

    让模组重新执行程序可以很快的连接上.这个问题后期再找找.

     

    8.我短接了X3, 然后用手机打开了Y1和Y2

    NB-IOT程序说明

    1.NB-IOT程序只是做了个透传功能.

    控制模组连接上MQTT服务器,模组接收MQTT服务器的数据,转发到串口

    模组从串口接收的数据发送到MQTT服务器

    2.服务器相关

    mqtt服务器ip地址: mnif.cn

    mqtt服务器端口号: 1883

    mqtt服务器用户名: yang

    mqtt服务器密码: 11223344

     

    3.设备和APP通信规定

    APP通过扫码获取设备IMEI号

    APP订阅的主题: device/设备IMEI号

    APP发布的主题: user/设备IMEI号

    APP <---> MQTT服务器 <----> 模组(透传) <----> PLC

    2.控制模组连接MQTT服务器,并订阅主题

    3.配置串口(485),并把串口接收的消息发送到MQTT服务器

    4.把MQTT接收的消息通过串口发送给PLC

    Android程序说明

    1.连接MQTT

    2.扫码使用的Google的zxing

    3.启动扫码

    4.扫码成功,携带着扫码信息跳转到主页

    5.主页把接收的数据(设备的IMEI号)存储到本地数据库(使用的Litepal),然后把设备显示在页面

    6.点击设备,携带着所点击设备的IMEI跳转到控制页面

    7.获取传递过来的设备的IMEI号

    8.订阅主题

    9.每隔一段时间通过指令查询PLC的X0-X5, Y0-Y3 状态

    10.点击某一个开关控制PLC的Y输出

    11.接收处理PLC返回的数据

  • 相关阅读:
    不规则的组合方向键或功能键
    jQuery总结
    jQuery 学习
    jquery
    Ubuntu 11.10 (Oneiric)上编译带utrace补丁的内核 转
    linux 内核升级 网址参考
    SSDT&Shadow Hook的实现,完整代码。可编译
    linux信号机制
    linux 内核资料
    PostgreSQL SystemTap on Linux 转
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/14531563.html
Copyright © 2011-2022 走看看