前言
此程序兼容SIM800
如果想綁定SIM800,請把其IMEI號,生成二維碼,用手機APP掃描.
實現功能概要
APP通過掃描二維碼獲取GPRS設備的IMEI號,然后設置訂閱的主題:device/設備IMEI號 發布的主題:user/設備IMEI號
注:實際上和上一節代碼唯一不同的地方是控制GPRS連接TCP服務器,然后實現透傳.其它程序完全一致!
測試准備工作(詳細下載步驟請參考 硬件使用說明 )
一,下載單片機程序
工程目錄: STM32F10xTemplate\Progect
hex文件目錄: STM32F10xTemplate\Progect\Progect
二,安裝APP軟件 (這節APP和上一節一樣)
三,調整波動開關位置,STM32和GPRS 串口1 通信
四,別忘了插手機卡,還有安裝上天線
開始測試
一.打開手機APP,點擊右上角菜單 "掃一掃" 掃描模塊上面的二維碼,模塊的二維碼就是這個模塊的IMEI號,掃描成功將在主頁面添加一個設備.
二.單片機控制GPRS連接上MQTT服務器以后,指示燈1S閃耀
三.點擊設備進入,設備控制頁面,頁面顯示當前溫濕度數據,顯示當前設備的狀態
四.遠程控制繼電器吸合
五.遠程控制繼電器斷開
六.請自行控制家電(最大支持10A,注意安全!),咱的GPRS遠程控制器就做好了.
注意
一.實際應用請使用一個引腳控制模塊重啟
請在每個程序文件的此處修改(注,本人的板子現在未引出復位引腳,下一批板子將跟進)\
如果沒有復位,單片機可能出現一直發送 AT+CIPSHUT ,模塊要等到好久才有反應(抱歉!)
現在測試,下載完單片機程序后,可人為進行復位一下.
V2.5.1版本內部默認PB2連接了Wi-Fi模塊的RST引腳,不需要手動操作復位
V2.5.1版本內部默認PB2連接了Wi-Fi模塊的RST引腳,不需要手動操作復位
V2.5.1版本內部默認PB2連接了Wi-Fi模塊的RST引腳,不需要手動操作復位
關於程序
整個程序是STM32使用AT指令控制GPRS模塊實現MQTT通信控制
程序的整體結構: https://www.cnblogs.com/yangfengwu/p/11669323.html
程序的按鍵處理: https://www.cnblogs.com/yangfengwu/p/11669354.html
串口接收數據 : https://www.cnblogs.com/yangfengwu/p/11669373.html
配置AT指令模板(阻塞版): https://www.cnblogs.com/yangfengwu/p/11673439.html
配置AT指令模板(非阻塞版): https://www.cnblogs.com/yangfengwu/p/11674814.html
MQTT實現部分
一,前言
對於初學者而言,如果不了解MQTT,可先看后面的關於MQTT的教程,看會以后
再來看此部分!
MQTT處理,采用官方C語言MQTT包+本人二次封裝.(方便大家快速的移植使用)
Wi-Fi模塊發布的主題: device/設備的IMEI號
Wi-Fi模塊訂閱的主題: user/設備的IMEI號
APP通過掃碼獲取GPRS的IMEI號,然后設置
訂閱的主題:device/設備的IMEI號
發布的主題:user/設備的IMEI號
具體請看上一節介紹
二,連接TCP服務器(MQTT服務器)
AT指令配置模塊連接TCP的程序處理模板是:配置AT指令模板(非阻塞版)
配置指令主要的就是獲取IMEI號,設置透傳,連接TCP服務器.
(串口接收的數據,自動發給TCP服務器)
(從TCP服務器接收的數據自動發給串口)
注;程序除了配置模塊連接TCP實現透傳和上一節程序不一樣以外,其它皆是一樣....
這體現了教程的主要目的: 重在移植應用 ,輕開發.