stm32+esp8266+機智云手機app

現在很多大學嵌入式畢設都要求云端控制,本文章就教一下大家如何使用esp8266去連接機智云的app去進行顯示stm32的外設傳感器數據啊,控制一些外設啊等。

因為本文章主要教大家如何移植機智云的代碼到自己的工程,所以前面的一些準備工作(燒錄esp8266的固件,機智云app的使用等)大家可以去其他博主那里參考一下(如果大家有需要可以評論區提出,需求多的話也可以給大家寫出來),但是esp8266的燒錄工具和固件我會放到文章最后的網盤鏈接中,大家自行點贊獲取

此次演示的機智云app如下:

這里給大家準備了機智云app的下載鏈接

機智云APP(下載鏈接:https://devdocs.gizwits.com/download.html#166419072635445)

大家可以在虛擬設備中用機智云手機app掃碼查看自己創建的設備:

app準備好以后就可以到mcu開發里面去自動生成代碼了,如下圖所示:?

接下來就到了最重要的環節:代碼移植環節?

1.將下載下來的代碼里面的Gizwits和Utils兩個文件復制粘貼到自己的工程文件中

同時別忘記在自己的keil工程代碼里把這兩個文件的.c和.h文件添加到工程中

2.接下來首先我們打開工程代碼中的gizwits_product.c,因為我們用的是標準庫函數,所以要把hal庫的內容注釋掉(如果最后按照我的步驟編譯報錯,檢查一下是否有其它的hal庫函數沒注釋干凈

3.接下來依然在這個代碼里往下滑,替換一行代碼并注釋兩個函數如下圖所示:

NVIC_SystemReset();

4.繼續往下滑,繼續注釋代碼,如下圖所示:

5.接下來繼續往下滑,將hal庫的串口代碼注釋掉換成自己的使用標準庫串口代碼(并不一定要和我一樣用串口3):

			USART_SendData(USART3,buf[i]);while(USART_GetFlagStatus(USART3,USART_FLAG_TC) == RESET);if(i>=2&&buf[i] == 0xFF){USART_SendData(USART3,0x55);while(USART_GetFlagStatus(USART3,USART_FLAG_TC) == RESET);}

?6.接下來gizwits_product.h要進行相應的修改,如下圖所示

#include <stm32f10x.h>

7.接下來去你剛剛修改的串口中斷函數里面添加相應的頭文件和一段代碼,如下所示

#include "gizwits_product.h"
gizPutData(&res, 1);

8.接下來開啟一個1ms的定時器,在定時器中斷函數里運行如下代碼:

gizTimerMs();

9.接下來可以對gizwits_product.c內的userHandle(?)?函數進行賦值你想要上傳到app的相應的傳感器數據(下面會解釋這個數據的來源):

10.接下來找到gizwits_product.c內的gizwitsEventProcess函數?,下圖圈出的地方可替換自己想控制的開關變量(這里我演示的是控制PA11口的高低電平,也就是控制一個led的亮滅)。

11.最后是主函數和while循環:初始化的代碼中與esp8266通訊的串口是必須的,另一個串口是測試用的,會打印一些信息到上位機上(方便調試),1ms的定時器是必須的,此外下面的三個函數像我一樣放著就行了。(圖中圈出來的函數是必須的,其他的函數根據你自己的項目添加

	userInit();gizwitsInit();gizwitsSetMode(2);

12.然后是while循環:圈出來的函數是必須有的,此外xinlv和xunyang其實是獲取超聲波的距離,我懶得改變量名就直接用了。

		userHandle();gizwitsHandle((dataPoint_t *)&currentDataPoint);

13.至此,代碼就移植完了,接下來就可以燒錄程序到單片機了,然后用手機機智云app去連接esp8266,最重要的是手機和esp8266最好用同一個wifi且必須是2.4G的,沒有的話可以用手機熱點,手機熱點一般是2.4G的,機智云連接流程如下:

14.一鍵配置后就是輸入wifi賬號和密碼(再提示一下要用2.4G的!!!)?

然后按下圖所示點擊即可,

15.點擊完后根據頁面提示點擊我已完成上述操作即可,當進入配對頁面后,我們可以盯著開熱點的手機,如果他的熱點多了一個用戶,大概率就是esp8266連接上了,這時候如果配對還沒結束你也可以不用等了,直接退出就可以看到一個局域網在線的設備,就是你的設備,點擊進去即可。

16.最終顯示的效果如圖所示?,高度1和高度2是兩個超聲波測的值,不過由于while循環的速度很快,手機app數據更新的速度很慢,經常會出現oled上面信息更新了,手機上的數據要過一會才會更新,此外,我也測試了蜂鳴器的開關也是正常的在這里就不給大家演示了?。

?通過網盤分享的文件:esp8266燒錄固件.zip
鏈接: https://pan.baidu.com/s/1ZWBkJq87xvhORIBU87RNBQ?pwd=0531 提取碼: 0531

?如果大家需要我的工程源碼可以一件三連后私聊獲取!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/76032.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/76032.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/76032.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

時序數據庫 TDengine Cloud 私有連接實戰指南:4步實現數據安全傳輸與成本優化

小T導讀&#xff1a;在物聯網和工業互聯網場景下&#xff0c;企業對高并發、低延遲的數據處理需求愈發迫切。本文將帶你深入了解 TDengineCloud 如何通過全托管服務與私有連接&#xff0c;幫助企業實現更安全、更高效、更低成本的數據采集與傳輸&#xff0c;從架構解析到實際配…

【Java面試系列】Spring Boot中自動配置原理與自定義Starter開發實踐詳解 - 3-5年Java開發必備知識

【Java面試系列】Spring Boot中自動配置原理與自定義Starter開發實踐詳解 - 3-5年Java開發必備知識 引言 Spring Boot作為Java生態中最流行的框架之一&#xff0c;其自動配置機制和Starter開發是面試中的高頻考點。對于3-5年經驗的Java開發者來說&#xff0c;深入理解這些原理…

解決Spring Boot Test中的ByteBuddy類缺失問題

目錄 解決Spring Boot Test中的ByteBuddy類缺失問題前奏問題描述問題解決第一步&#xff1a;移除ByteBuddy的特定版本號第二步&#xff1a;更新maven-surefire-plugin配置第三步&#xff1a;清理并重新構建項目 結語 解決Spring Boot Test中的ByteBuddy類缺失問題 前奏 今天&…

IntelliJ IDEA使用技巧(json字符串格式化)

文章目錄 一、IDEA自動格式化json字符串二、配置/查找格式化快捷鍵 本文主要講述idea中怎么將json字符串轉換為JSON格式的內容并且有層級結構。 效果&#xff1a; 轉換前&#xff1a; 轉換后&#xff1a; 一、IDEA自動格式化json字符串 步驟一&#xff1a;首先創建一個臨…

眨眼睛查看密碼工具類

“眨眼睛查看密碼”工具類實現思路&#xff1a; 一、核心功能 實現點擊眼睛圖標切換密碼明文/星號顯示&#xff0c;提升表單輸入體驗。包含以下關鍵功能&#xff1a; ? 初始狀態&#xff1a;密碼框顯示為星號&#xff0c;閉眼圖標可見。 ? 點擊閉眼圖標&#xff1a;切換為明…

【GPT入門】第33課 從應用場景出發,區分 TavilyAnswer 和 TavilySearchResults,代碼實戰

【GPT入門】第33課 從應用場景出發&#xff0c;區分 TavilyAnswer 和 TavilySearchResults&#xff0c;代碼實戰 1. 區別應用場景 2. 代碼使用3.代碼執行效果 在langchain_community.tools.tavily_search中&#xff0c;TavilyAnswer和TavilySearchResults有以下區別和應用場景&…

【Java設計模式】第10章 外觀模式講解

10. 外觀模式 10.1 外觀模式講解 定義:為子系統提供統一接口,簡化調用。類型:結構型模式適用場景: 子系統復雜需簡化調用分層系統需統一入口優點: 降低耦合符合迪米特法則(最少知道原則)缺點: 擴展子系統需修改外觀類,違反開閉原則10.2 外觀模式 Coding // 子系統:…

Dubbo的簡單介紹

Dubbo的簡單介紹 Dubbo 是一個高性能的 Java RPC 框架&#xff0c;最初由阿里巴巴開發&#xff0c;用于構建分布式服務。它主要用于提供服務間的通信&#xff0c;支持高效的遠程調用和服務治理&#xff0c;常用于大規模分布式系統中。Dubbo 提供了以下幾個核心功能&#xff1a…

每日一題(小白)數組娛樂篇17

對一個數組進行接收進行操作后輸出。輸入三個操作數abc&#xff0c;將數組下標a到b的數字加上c&#xff1b;輸入四個操作數abcd&#xff0c;將下標c到d的數字復制到a到b&#xff0c;可以借用一個中間量數組實現&#xff1b;兩個操作數ab&#xff0c;將數組下標a到b的數字加和輸…

總結一下常見的EasyExcel面試題

說一下你了解的POI和EasyExcel POI&#xff08;Poor Obfuscation Implementation&#xff09;&#xff1a;它是 Apache 軟件基金會的一個開源項目&#xff0c;為 Java 程序提供了讀寫 Microsoft Office 格式文件的功能&#xff0c;支持如 Excel、Word、PowerPoint 等多種文件格…

01-Redis-基礎

1 redis誕生歷程 redis的作者筆名叫做antirez&#xff0c;2008年的時候他做了一個記錄網站訪問情況的系統&#xff0c;比如每天有多少個用戶&#xff0c;多少個頁面被瀏覽&#xff0c;訪客的IP、操作系統、瀏覽器、使用的搜索關鍵詞等等(跟百度統計、CNZZ功能一樣)。最開始存儲…

在 Ubuntu 上離線安裝 Prometheus 和 Grafana

在 Ubuntu 上離線安裝 Prometheus 和 Grafana 的步驟如下: 一.安裝驗證 二.安裝步驟 1.準備離線安裝包 在一臺可以訪問互聯網的機器上下載 Prometheus 和 Grafana 的二進制文件。 Prometheus 下載地址:Prometheus 官方下載頁面Grafana 下載地址:Grafana 官方下載頁面下載所…

mapbox基礎,加載ESRI OpenStreetMap開放街景標準風格矢量圖

????? 主頁: gis分享者 ????? 感謝各位大佬 點贊?? 收藏? 留言?? 加關注?! ????? 收錄于專欄:mapbox 從入門到精通 文章目錄 一、??前言1.1 ??mapboxgl.Map 地圖對象1.1 ??mapboxgl.Map style屬性二、??加載ESRI OpenStreetMap開放街景標準風…

Java 集合有序性與重復性總結及記憶技巧

Java 集合有序性與重復性總結及記憶技巧 一、集合分類速查表 集合類型是否有序是否允許重復記憶口訣ArrayList? 有序&#xff08;插入順序&#xff09;? 可重復"數組列表&#xff0c;順序記牢"LinkedList? 有序&#xff08;插入順序&#xff09;? 可重復"…

記錄學習的第二十三天

老樣子&#xff0c;每日一題開胃。 我一開始還想著暴力解一下試試呢&#xff0c;結果不太行&#x1f602; 接著兩道動態規劃。 這道題我本來是想用最長遞增子序列來做的&#xff0c;不過實在是太麻煩了&#xff0c;實在做不下去了。 然后看了題解&#xff0c;發現可以倒著數。 …

MTK-Android12-13 屏幕永不休眠功能實現

MTK-Android12-13 屏幕永不休眠功能實現 文章目錄 需求場景參考資料修改文件簡要分析實現方案默認休眠時間設置 def_screen_off_timeout息屏時間添加永不休眠 screen_timeout_entries更新休眠時間 updateUserActivitySummaryLocked 總結 需求 屏幕永不休眠功能 備注&#xff…

Lua 中,`math.random` 的詳細用法

在 Lua 中&#xff0c;math.random 是用于生成偽隨機數的核心函數。以下是其詳細用法、注意事項及常見問題的解決方案&#xff1a; Lua 中&#xff0c;math.random 的詳細用法—目錄 一、基礎用法1. 生成隨機浮點數&#xff08;0 ≤ x < 1&#xff09;2. 生成指定范圍的隨機…

HOW - React Error Catch 機制

目錄 1. 錯誤邊界&#xff08;Error Boundaries&#xff09;使用場景寫法&#xff08;類組件方式&#xff09;&#xff1a;componentDidCatch 2. 事件處理器中的錯誤3. 異步函數中的錯誤&#xff08;如 fetch、Promise&#xff09;4. 全局未捕獲錯誤&#xff08;適用于整個 Rea…

1.ElasticSearch-入門基礎操作

一、介紹 The Elastic Stack 包含ElasticSearch、Kibana、Beats、LogStash 這就是所說的ELK 能夠安全可靠地獲取任何來源、任何格式的數據&#xff0c;然后實時地對數據進行搜索、分析和可視化。Elaticsearch,簡稱為ES&#xff0c;ES是一個開源的高擴展的分布式全文搜索引擎,是…

通過扣子平臺將數據寫入飛書多維表格

目錄 1.1 創建飛書開放平臺應用 1.2 創建飛書多維表格 1.3 創建扣子平臺插件 1.1 創建飛書開放平臺應用 1.1.1 打開地址&#xff1a;飛書開放平臺&#xff0c;點擊創建應用 注&#xff1a;商店應用需要申請ISV資質&#xff0c;填寫企業主體信息&#xff0c;個人的話&#x…