<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返回的數據