文章目錄
- 作品所用到的軟體
- 作品所用到的硬體
- App所需環境
- 創作背景
- 演示視頻
- 教室端
- 1.初始化
- 2.接收訊息
- 3.“聲音”變數
- 4.外觀設計
- 手機App端
- 1.新建專案
- 2.設計UI
- 3.初始化
- 4.設定變數
- 5.選擇班級下拉框
- 6.連接MQTT
- 7.發送訊息
- 8.顯示訊息
- 9.接收訊息
- 10.其他代碼
- 11.其他螢屏的UI設計
- 下載鏈接
- 改進方向
本文系湛江市第十七中學星火創客團隊參賽專案,轉載請保留宣告!
作品所用到的軟體
- Mind+
- LaserMaker
- App Inventor
作品所用到的硬體
- 掌控板
- 掌控I/O擴展板
- Speech Synthesizer Bee語音合成模塊
App所需環境
- App Inventor廣州服務器?
- Easy IoT物聯網平臺?
注:本作品使用的MQTT模塊在App Inventor平臺是沒有集成的,需要手動添加擴展才能使用,下載鏈接見文末,
創作背景
在學校的日常生活中我們發現,當老師需要學生執行某些事情,例如需要學生去辦公室一趟、讓課代表催交作業時,總是需要一個學生充當“傳話人”的身份,
因為老師事務繁多,不可能什么事情都親力親為,而中小學是不允許學生攜帶手機進入校園的,老師沒有通訊方式可以聯系到學生,就會造成老師與學生之間無法聯系的情況,
于是我們想到,可以制作一款師生呼叫系統,開發一個教師手機App端與教室端,它們之間通過WiFi+MQTT進行通訊,當老師需要傳達指令時,通過手機App發送到教室端顯示,
當教室端接收到老師發出的指令后,會通過語音合成模塊讀出訊息,學生看到訊息后即可執行老師的指令,這個作品減少了不必要的麻煩,提高了效率,
演示視頻
教室端
1.初始化

設定一個名為“時間”的變數,設為1,這個在后文再詳細講,
然后初始化語音合成模塊、物聯網模塊并連接WiFi,都是正常操作了,
2.接收訊息

當收到訊息時,先判斷訊息中是否包含“緊急”,若包含則板載燈亮起,并通過語音合成模塊將訊息讀出來,重復執行直到按下A鍵,
3.“聲音”變數
考慮到這個作品是放在教室中使用的,如果在上課的時候收到訊息并播放語音,會打斷老師的講課,所以在初始化的時候設定了一個變數“聲音”為1,即聲音為打開狀態;
若按下B鍵則將“聲音”設為0,即聲音為關閉狀態,在上文收到訊息時,判斷完是否為重要訊息后,會判斷“聲音”狀態是否為1,若不為1則語音合成模塊不會播放訊息,

4.外觀設計
外觀設計使用軟體為 LaserMaker ,通過激光切割機切割椴木板將外觀燒出來,

手機App端
1.新建專案
打開App Inventor平臺,新建一個專案:

2.設計UI
設計好App的界面,這里不詳細展開說明:

3.初始化
首先將訊息串列清除,然后將連接狀態設為未連接的開始狀態,

4.設定變數

班級串列:設定八個班的名稱,在初始化中設定這個變數為下拉框的元素,起到選擇發送班級的作用:

topic:一個空變數,起到存盤用戶選擇的班級topic的作用;
班級名稱:一個空變數,起到存盤用戶選擇的班級的作用;
5.選擇班級下拉框

將用戶選擇的班級匹配成對應的topic,并將topic和班級名稱相對應存入到前面提到的空變數中,
6.連接MQTT

當“連接”按鈕被按下時,先判斷“topic”變數是否為空,用戶在連接前是否已選擇要發送訊息的班級;
如果已經選擇了班級,則呼叫MQTT模塊連接Easy Iot物聯網平臺:
ipAdreess是物聯網平臺的地址,默認填“iot.dfrobot.com.cn”即可;
port是連接的埠,填“1883”即可;
idDevice填任意9位數即可;
userName是你物聯網平臺上的Iot_id(user);
password是物聯網平臺上的Iot_pwd(password),均直接復制粘貼即可,

接著將“連接狀態”變數設為1,判斷是否成功訂閱topic,
7.發送訊息

當“發送命令”按鈕被按下時,先判斷連接狀態是否為0(即是否為未連接狀態),如值為true,則繼續執行下面的代碼,
判斷完連接狀態后,再判斷用戶發送的訊息中是否包含屏蔽詞,如果值為false,則判斷文本輸入框中是否有文本,
判斷完上面的所有條件都為true后,則呼叫MQTT模塊發送文本輸入框中的文字到物聯網平臺上,再將文本輸入框清空,
8.顯示訊息
成功發送訊息后,將發送的訊息顯示在App下方的文本框中:

9.接收訊息
收到訊息時,將訊息顯示在文本框中:

10.其他代碼

起到打開其他螢屏和清除訊息串列的作用,
到這里,代碼部分已經撰寫完了,
11.其他螢屏的UI設計


下載鏈接
MQTT模塊擴展:co.com.dendritas.MqttTCP.aix
改進方向
考慮到一些學校可能沒有實作網路覆寫全校,以后可以制作一款基于LoRa方案的師生呼叫系統,實作在無網路的環境下也能進行通訊,
本文系湛江市第十七中學星火創客團隊參賽專案,轉載請保留宣告!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290513.html
標籤:其他
上一篇:開始寫博客了
下一篇:總結 STM32實驗下載方法
