Esparduino(wemos)+MQTT+MySQL
- 前言
- 一、專案介紹
- 1.1 專案名稱
- 1.2 專案背景
- 1.3 專案設計思路
- 1.4 專案展示效果
- 二、硬體準備
- 2.1 Wemos D1 R1
- 2.2 繼電器
- 2.3 SG90舵機
- 2.4 DHT11溫濕度傳感器
- 三、軟體準備
- 3.1 Arduino IDE
- 3.2 云服務器(阿里云、騰訊云都可)
- 3.3 寶塔面板
- 3.4 EMQX Cloud
- 四、專案實施
- 4.1 硬體平臺開發
- 4.1.1 Wemos環境搭建
- 4.1.2 Wemos與外設硬體接線
- 4.1.3 燒寫代碼植入Wemos
- 4.2 軟體平臺開發
- 4.2.1 網站撰寫(HTML)
- 4.2.2 資料庫搭建(MySQL)
- 4.2.3 MQTT代理服務器搭建
- 4.2.4 使用MQTT.X進行測驗
- 4.2.5 網站部署
- 五、專案總結
注:本文系湛江市第十七中學星火創客團隊及嶺南師范學院物聯網俱樂部原創部分參賽專案,轉載請保留宣告,
前言
本專案將會引導大家進入一個新的篇章認識,這個小專案是基于wemos的資料采集和遠程控制,由觀察所得嶺南師范學院資訊工程學院物聯網俱樂部的成員目前已經對各種云平臺掌握得已經很好了,為了進一步讓大家更加熟練地掌握物聯網專案開發,特抽時間完成了這個小專案幫助大家熟悉專案開發流程,
一、專案介紹
1.1 專案名稱
a)基于WeMos的物聯網資料傳輸與遠程控制
1.2 專案背景
a)“大智云物”是當前社會主要發展的四個方向,但是隨著技術不斷的向前發展,各個方向的發展都遇到了一定的瓶頸,正是在這樣的背景下,物聯網+云、物聯網+人工智能、物聯網+大資料和物聯網+區塊鏈等技術交叉融合的方向應允而出,并且展現出強大的生命力和發展潛能,本專案將會采用眾多物聯網+云方案中的其中一種,其有著通用性強、便利性高、兼容性好等優點,
1.3 專案設計思路
1)Wemos與傳感器進行通訊,如DHT11溫濕度傳感器采集環境中的溫濕度資料
2)Wemos與繼電器進行通訊,如通過控制3.3V觸發的繼電器控制小風扇
3)Wemos與舵機進行通訊 , 如控制5V的SG90的舵機進行旋轉(用于模擬打開門鎖)
1.4 專案展示效果
a)硬體展示圖

b)軟體展示圖

二、硬體準備
2.1 Wemos D1 R1

2.2 繼電器

2.3 SG90舵機

2.4 DHT11溫濕度傳感器

三、軟體準備
3.1 Arduino IDE
a)官方下載地址: http://arduino.cc/en/Main/Software
b)Arduino IDE老版本下載鏈接:https://www.arduino.cc/en/Main/OldSoftwareReleases#previous

3.2 云服務器(阿里云、騰訊云都可)

3.3 寶塔面板
a)在云服務上安裝寶塔面板,參考官方鏈接:https://www.bt.cn/bbs/thread-19376-1-1.html

b)安裝以后請在瀏覽器打開,地址為一般為:公網ip+8888(埠根據自己情況選,請記得在云服務的安全組或者防火墻打開埠)


3.4 EMQX Cloud
a)在云服務上安裝EMQX Cloud,官方鏈接:https://www.emqx.cn/downloads

b)在云服務器上和寶塔面板上開放埠,最后采用公網ip+18083(埠自己定)進行訪問


c)EMQX管理臺(DASHBOARD)展示

四、專案實施
4.1 硬體平臺開發
4.1.1 Wemos環境搭建
下載鏈接:https://download.csdn.net/download/weixin_43271542/16742706
4.1.2 Wemos與外設硬體接線
接線介紹如下:
①DHT11溫濕度傳感器與Wemos主板
VCC–》5V,GND–》GND,DATA–》D7
②繼電器(每種都不一樣)與Wemos主板
VCC–》3.3V,GND–》GND,IO–》D8
②SG90舵機與Wemos主板
VCC–》5V,GND–》GND,IO–》D3
4.1.3 燒寫代碼植入Wemos
a)核心代碼展示

下載鏈接:https://download.csdn.net/download/weixin_43271542/16759274
4.2 軟體平臺開發
4.2.1 網站撰寫(HTML)
a)軟體準備

b)修改代碼里面的相關引數,如ip地址、主題
下載鏈接:https://download.csdn.net/download/weixin_43271542/16759374
4.2.2 資料庫搭建(MySQL)
a)在寶塔面板添加資料庫

b)在創建以后,點擊管理,再點擊SQL,復制我已經寫好的SQL陳述句進去,最后執行,總共需要創建兩個表

①action_emqx
CREATE TABLE `temp_hum` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`up_timestamp` timestamp NULL DEFAULT NULL,
`client_id` varchar(32) DEFAULT NULL,
`user_root` varchar(32) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `up_timestamp_client_id` (`up_timestamp`,`client_id`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4;
②temp_hum
CREATE TABLE `temp_hum` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`up_timestamp` timestamp NULL DEFAULT NULL,
`client_id` varchar(32) DEFAULT NULL,
`temp` float unsigned DEFAULT NULL,
`hum` float unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `up_timestamp_client_id` (`up_timestamp`,`client_id`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4;
4.2.3 MQTT代理服務器搭建
a)EMQ X Cloud 規則引擎配置
1.資源創建
點擊左側選單欄規則引擎,找到資源面板,點擊新建資源,下拉選擇 MySQL 資源型別,填入剛才創建好的 mysql 資料庫資訊,并點擊測驗如果出現錯誤應及時檢查資料庫配置是否正確,

2.規則測驗
點擊左側左側選單欄規則引擎,找到規則面板,點擊創建,然后輸入如下規則匹配 SQL 陳述句,在下面規則中我們從 temp_hum/emqx 主題讀取訊息上報時間 up_timestamp、客戶端 ID、訊息體(Payload),并從訊息體中分別讀取溫度和濕度,
SELECT
timestamp as up_timestamp, clientid as client_id, payload.temp as temp, payload.hum as hum
FROM
"temp_hum/emqx"
如果是action/emqx主題的,陳述句如下:
SELECT
timestamp as up_timestamp, clientid as client_id, payload.user_root as user_root
FROM
"action/emqx"

3.添加回應動作
點擊左下角添加動作,下拉選擇 → 保存資料到 MySQL 選擇第一步創建好的資源,并輸入以下資料插入 SQL 模板
insert into temp_hum(up_timestamp, client_id, temp, hum) values (FROM_UNIXTIME(${up_timestamp}/1000), ${client_id}, ${temp}, ${hum})
如果是action/emqx主題,請使用以下陳述句:
insert into action_emqx(up_timestamp, client_id, user_root) values (FROM_UNIXTIME(${up_timestamp}/1000), ${client_id}, ${user_root})

4.點擊創建規則,并回傳規則串列

5.查看規則監控

6.最后本人的搭建好的成功顯示界面截圖

4.2.4 使用MQTT.X進行測驗
1.使用 MQTT X (opens new window)模擬溫濕度資料上報
需要將 broker.emqx.io 替換成已創建的部署連接地址,并添加客戶端認證資訊,記得點擊New Subscription,添加,這樣就可以實作收發查看,

4.2.5 網站部署
a)點擊寶塔的網站,添加站點

b)域名寫公網ip+埠即可(本人用的是6080,需要在云服務器防火墻和寶塔端都打開),資料庫選擇MySQL,輸入賬號和密碼(在寶塔資料庫查看)

c)點擊寶塔網站的根目錄,上傳寫好的網站代碼,并將主要網站主頁改名字為index.html,最后輸入公網ip+埠即可訪問

五、專案總結
以上是整個專案開發程序,大家有什么意見,歡迎在評論區評價噢!后期還會有更多的專案干貨分享,另外自己也準確去實習了,希望自己能找到喜歡的作業,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/278155.html
標籤:其他
上一篇:基于51單片機的萬年歷設計
