esp8266数据上传到mysql数据库_03-STM32+ESP8266+AIR202/302终端管理篇-把设备温湿度数据存储到MySQL数据库(Windows)...
前言
這一節(jié)把設(shè)備通過MQTT上報的數(shù)據(jù)寫入MySQL數(shù)據(jù)庫.
注:關(guān)于MySQL數(shù)據(jù)庫的安裝和基本使用請用戶參考基礎(chǔ)開源教程學(xué)習(xí)!
說明
此節(jié)代碼使用的?IntelliJ IDEA 軟件編寫.
整個程序是使用java連接MQTT,通過通配符訂閱所有設(shè)備的數(shù)據(jù).
然后通過Druid連接池把數(shù)據(jù)寫入MySQL數(shù)據(jù)庫.
配置數(shù)據(jù)庫
1.新建一個數(shù)據(jù)庫
2.數(shù)據(jù)庫名字為historical_data ;編碼方式為 utf8
3.新建表格
4.添加幾個字段
字段id類型是int, 去掉允許空值, 設(shè)置為自增,然后設(shè)置為主鍵;
字段data_time類型設(shè)置為timestamp;(作為數(shù)據(jù)存儲的時間)
字段client_id類型設(shè)置為varchar;(記錄設(shè)備的id)
字段temperature類型設(shè)置為float;(存溫度數(shù)據(jù))
字段humidity類型設(shè)置為float;(存濕度數(shù)據(jù))
5.點(diǎn)擊保存 表格名字為 humiture_table
打開源碼
1.使用IntelliJ IDEA 打開
2.源碼需要使用JDK1.8版本
如果用戶先前安裝的1.7版本,需要安裝JDK1.8版本
安裝完以后不需要配置環(huán)境變量,只需要在軟件中設(shè)置JDK路徑
測試
1.修改自己的數(shù)據(jù)庫和MQTT服務(wù)器的信息
3.關(guān)于該程序訂閱的主題
提供的教程里面設(shè)備發(fā)布的主題為: device/XXXXXX
如果是WiFi設(shè)備,XXXXXX是WiFi的MAC地址, 如果是GSM設(shè)備,XXXXXX是GSM設(shè)備的IMEI
為了得到所有設(shè)備的數(shù)據(jù),所以訂閱的主題為: device/#
4.關(guān)于該程序解析消息并存到數(shù)據(jù)庫
設(shè)備發(fā)布的消息:{"data":"TH","bit":1,"temperature":14,"humidity":45}
在MQTT接收的消息回調(diào)里面,獲取解析溫濕度消息,然后把數(shù)據(jù)插入到數(shù)據(jù)庫.
5.運(yùn)行程序
6.可以在控制臺輸出欄看到監(jiān)控的所有設(shè)備的數(shù)據(jù)
7.重新打開數(shù)據(jù)庫表格
生成可執(zhí)行jar包
1.關(guān)閉軟件
2.注意:因?yàn)槌绦蛞呀?jīng)設(shè)置過生成jar包,所以用戶直接按照下面圖示操作即可生成可執(zhí)行jar包.
3.補(bǔ)充一下正常生成jar包的實(shí)際流程
4.生成的JAR包的位置
部署到服務(wù)器運(yùn)行
1.如果服務(wù)器沒有安裝JDK,請用戶安裝JDK
2.把先前生成的jar包拷貝到服務(wù)器
2.打開命令窗口
3.進(jìn)入到j(luò)ar包所在目錄
4.執(zhí)行 java -jar MqttDataToMySQL.jar
5.打印所有設(shè)備的數(shù)據(jù),說明已經(jīng)運(yùn)行起來了
讓程序在后臺執(zhí)行
1.關(guān)閉控制臺或者Ctrl+C退出程序
2.注意呀!不要犯常識性錯誤!把文件擴(kuò)展名選中!
3.在jar包目錄新建一個后綴名字為.bat的文件
編輯里面的內(nèi)容如下 :
MqttDataToMySQL.jar?就是jar包的名字
@echo off
start javaw-jar MqttDataToMySQL.jar
exit
4.雙擊運(yùn)行即可
5.如果要關(guān)閉,找到任務(wù)管理器java運(yùn)行進(jìn)程,關(guān)閉即可
6.也可以指定JDK運(yùn)行
C:\java8\jdk1.8.0.131? 為JDK的安裝路徑
@echo offset JAVA_HOME=C:\java8\jdk1.8.0.131
set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOMe%\lib\tools.jar;set Path=%JAVA_HOME%\bin;
start javaw-jar MqttDataToMySQL.jar
exit
源碼說明
1.整個源碼就兩部分,MQTT和數(shù)據(jù)庫
MQTT使用的是paho.client.mattv3-1.2.0的jar包
數(shù)據(jù)庫除了基本的jabc連接器以外,使用了阿里巴巴的開源鏈接池 druid
2.主函數(shù)就兩部分,初始化連接池和連接MQTT
3.連接池部分
4.連接MQTT部分,訂閱主題
5.從連接池獲取鏈接對象,把數(shù)據(jù)寫到數(shù)據(jù)庫
補(bǔ)充
1.關(guān)于device/#
一般咱接收所有設(shè)備的數(shù)據(jù)不用 device/#
而且這樣所有人都可以監(jiān)控所有設(shè)備數(shù)據(jù),這是不可取的!!
我之所以把所有設(shè)備發(fā)布的主題設(shè)置為 device/XXXXXX 是為了好測試
一般只設(shè)置一級主題就可以了不要加? /XXXXXX
咱在服務(wù)器上可以直接訂閱 # 就可以獲取所有設(shè)備的數(shù)據(jù)
注意:只有在服務(wù)器上才可以
可以在服務(wù)器上用調(diào)試助手測試下
用戶可以修改程序把鏈接的地址改為 localhost
把訂閱的主題改為 #
重新編譯下工程
重新生成jar包然后按照上面的步驟放到服務(wù)器運(yùn)行即可
結(jié)語
用戶可以用以下信息查看數(shù)據(jù)庫里面的設(shè)備歷史數(shù)據(jù)
IP地址:?mnif.cn
端口號: 3306
用戶名: yang
密碼: 11223344.? 注意后面有個點(diǎn)
總結(jié)
以上是生活随笔為你收集整理的esp8266数据上传到mysql数据库_03-STM32+ESP8266+AIR202/302终端管理篇-把设备温湿度数据存储到MySQL数据库(Windows)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring mysql json_Sp
- 下一篇: mysql gitd 数据结构同步失败_