基于STM32設計的智慧路燈(華為云IOT)_281

文章目錄

  • 一、前言
    • 1.1 項目介紹
      • 【1】項目開發背景
      • 【2】設計實現的功能
      • 【3】項目硬件模塊組成
      • 【4】設計意義
      • 【5】國內外研究現狀
      • 【6】摘要
    • 1.2 設計思路
    • 1.3 系統功能總結
    • 1.4 開發工具的選擇
      • 【1】設備端開發
      • 【2】上位機開發
    • 1.5 參考文獻
    • 1.6 系統框架圖
    • 1.7 系統原理圖
    • 1.8 實物圖
    • 1.9 模塊的技術詳情介紹
      • 【1】合宙Air724UG 4G模塊
      • 【2】BH1750傳感器
      • 【3】SHT30溫濕度模塊
      • 【4】MQ135氣體傳感器
      • 【5】GPS模塊
      • 【6】MQTT協議
  • 二、硬件選型
    • 2.1 STM32開發板
    • 2.2 USB下載線
    • 2.3 杜邦線(2排)
    • 2.4 OLED顯示屏(SPI協議7針)
    • 2.5 GPS模塊
    • 2.6 Air724UG 4G模塊
    • 2.7 LED白色路燈模塊
    • 2.8 BH1750光敏傳感器
    • 2.9 人體感應-熱釋電模塊
    • 2.10 SHT30溫濕度模塊
    • 2.11 MQ135空氣質量檢測
    • 2.12 獨立按鍵
    • 2.13 洞洞板
    • 2.14 太陽能充電板【可選】
    • 2.15 電源擴展板
  • 三、部署華為云物聯網平臺
    • 3.1 物聯網平臺介紹
    • 3.2 開通物聯網服務
    • 3.3 創建產品
      • (1)創建產品
      • (2)填寫產品信息
      • (3)產品創建成功
      • (4)添加自定義模型
          • 【1】創建服務ID
          • 【2】環境溫度 SHT30_T 浮點數
          • 【3】環境濕度 SHT30_H 浮點數
          • 【4】HumanBody_Flag 人體感應 0無人 1有人
          • 【5】BH1750 環境光強 浮點數
          • 【6】LED_SW 路燈開關 布爾類型 1開 0關
          • 【7】MQ135 空氣質量 浮點數
          • 【8】LED_SW_Flag 路燈的狀態 布爾類型 1故障 0正常
          • 【9】SOS_Info SOS緊急求助 布爾類型 1求助 0正常
          • 【10】gps_lng 經度定位信息 浮點數類型
          • 【11】gps_lat 緯度定位信息 浮點數類型
          • 【12】mode_type 運行模式 整型枚舉 1自動 0手動
      • (5)創建完成
    • 3.4 添加設備
      • (1)注冊設備
      • (2)根據自己的設備填寫
      • (3)保存設備信息
      • (4)設備創建完成
      • (5)設備詳情
    • 3.5 MQTT協議主題訂閱與發布
      • (1)MQTT協議介紹
      • (2)華為云平臺MQTT協議使用限制
      • (3)主題訂閱格式
      • (4)主題發布格式
    • 3.6 MQTT三元組
      • (1)MQTT服務器地址
      • (2)生成MQTT三元組
    • 3.7 模擬設備登錄測試
      • (1)填入登錄信息
      • (2)打開網頁查看
      • (3)MQTT登錄測試參數總結
    • 3.8 項目憑證
    • 3.9 創建IAM賬戶
    • 3.10 獲取影子數據
    • 3.11 修改設備屬性
  • 四、Qt開發入門與環境搭建
    • 4.1 Qt是什么?
    • 4.2 Qt版本介紹
    • 4.3 Qt開發環境安裝
    • 4.4 開發第一個QT程序
    • 4.5 調試輸出
    • 4.6 QT Creator常用的快捷鍵
    • 4.7 QT幫助文檔
    • 4.8 UI設計師使用
    • 4.9 按鈕控件組
    • 4.10 布局控件組
    • 4.11 基本布局控件
    • 4.12 UI設計師的布局功能
  • 五、上位機開發
    • 5.1 Qt開發環境安裝
    • 5.2 新建上位機工程
    • 5.3 切換編譯器
    • 5.4 編譯測試功能
    • 5.5 設計UI界面與工程配置
      • 【1】打開UI文件
      • 【2】開始設計界面
    • 5.6 設計代碼
      • 【1】獲取token
      • 【2】獲取影子數據
        • (1)獲取當前時間并更新界面上的時間標簽
        • (2)設置請求URL和初始化網絡請求
        • (3)構造API請求URL
        • (4)設置請求的頭部信息
        • (5)設置請求URL并發送請求
        • (6)總結
      • 【3】解析數據更新界面
          • (1)**設備屬性查詢 (function_select == 0)**
          • (2)**接收并解析 JSON 數據**
          • (3)**解析 JSON 對象**
          • (4)提取和解析設備狀態數據
          • (5)**提取具體的設備屬性數據**
          • (6)**時間處理和顯示**
          • (7)**數據顯示和界面更新**
          • (8)**根據數據值調整顯示樣式**
          • (9)**設備離線狀態判斷**
          • (10)**更新 UI 控件的狀態**
          • (11) **界面更新方法**
          • (12)總結
    • 5.5 編譯Windows上位機
    • 5.6 配置Android環境
      • 【1】選擇Android編譯器
      • 【2】創建Android配置文件
      • 【3】配置Android圖標與名稱
      • 【4】編譯Android上位機
    • 5.7 設備仿真調試
  • 六、 Air724UG 模塊調試過程
    • 6.1 官方文檔
    • 6.2 模塊調試接線
    • 6.3 串口調試過程
      • 【1】AT命令
      • 【2】讀取模塊廠商信息
      • 【3】讀取詳細的固件版本
      • 【4】查詢卡是否插好
      • 【5】查詢信號質量
      • 【6】查詢網絡注冊狀態
      • 【5】查詢模組是否注冊上GPRS網絡
      • 【6】查詢附著GPRS網絡
  • 七、硬件開發
    • 7.1 硬件連線
    • 7.2 硬件原理圖
    • 7.3 硬件組裝過程
    • 7.4 硬件實物圖
    • 7.5 KEIL工程截圖
    • 7.6 程序下載
    • 7.7 程序正常運行效果
    • 7.8 取模軟件的使用
    • 7.9 4G模塊與服務器通信
      • (1)**組合JSON報文數據**
      • (2)**上報數據到云平臺**
      • (3)**判斷數據上傳是否成功**
      • (4)總結
    • 7.10 硬件初始化
      • (1)**釋放PA15**
      • (2)**按鍵初始化**
      • (3)**LED燈初始化**
      • (4)**串口1初始化(用于打印)**
      • (5)**ADC初始化**
      • (6)**初始化定時器,輸出PWM信號**
      • (7)**默認關燈**
      • (8)**紅外熱釋電模塊初始化**
      • (9)**環境溫濕度傳感器初始化(SHT30)**
      • (10)**環境光強檢測模塊初始化(BH1750)**
      • (11)**串口2初始化(用于與4G模塊通信)**
      • (12)**定時器2初始化(輔助串口2接收)**
      • (13)**串口3初始化(用于接收GPS模塊數據)**
      • (14)**定時器3初始化(輔助串口3接收)**
      • (15)**定時器4初始化(用于人體檢測傳感器濾波算法)**
      • (16)**OLED顯示屏初始化**
      • (17)**OLED清屏**
      • (18)**刷新OLED屏幕數據**
      • (19)總結
    • 7.11 4G模塊-初始化
      • (1)**OLED清屏并顯示初始化信息**
      • (2)**重試次數初始化**
      • (3)**檢測Air724UG 4G模塊硬件是否正常**
      • (4)**4G模塊初始化**
      • (5)**4G網絡通訊服務初始化**
      • (6)**MQTT協議初始化**
      • (7)**MQTT主題訂閱**
      • (8)總結
    • 7.12 數據采集與顯示
      • (1)**時間計數器控制** (`time_cnt > 150`)
      • (2)**LED指示燈控制**
      • (3)**空氣質量采集** (MQ135)
      • (4)**溫濕度數據采集** (SHT30)
      • (5)**光強度數據采集** (BH1750)
      • (6)**人體檢測** (紅外熱釋電傳感器)
      • (7)**自動模式下的路燈亮度調節**
      • (8)**路燈故障檢測**
      • (9)**OLED顯示更新**
      • (10)**數據上傳到MQTT云端**
      • (11)總結
    • 7.13 按鍵代碼
      • (1)**按鍵掃描**
      • (2)**切換顯示頁面**
      • (3)**觸發緊急信號**
      • (4)**模式切換**
      • (5)**開關路燈**
      • (6)**總結**
    • 7.14 上位機命令處理
      • (1)**接收 4G 模塊的數據**
      • (2)**分析接收到的數據**
      • (3)**路燈控制**
      • (4)**模式切換**
      • (5)**解析請求 ID**
      • (6)**上報屬性修改響應**
      • (7)**清理和標志位重置**
      • (8)**總結**
    • 7.15 GPS定位信息處理
      • (1)**接收GPS模塊的數據**
      • (2)**解析GPS數據**
      • (3)**輸出經緯度信息**
      • (4)**清理接收緩存**
      • **(5)GPS 數據格式**
      • (6)**總結**
  • 八、使用STM32代碼的流程以及注意事項
    • 8.1 第1步
    • 8.2 第2步
    • 8.3 第3步
  • 九、代碼移植更改
    • 【1】STM32代碼
    • 【2】Qt上位機代碼
  • 任務書
      • 任務書
        • 一、課題名稱
        • 二、課題背景及意義
        • 三、設計任務
        • 四、設計內容
        • 五、計劃安排
        • 六、預期成果
        • 七、指導教師意見
        • 八、學生簽名
        • 九、指導教師簽名
  • 開題報告
        • 一、項目背景與意義
        • 二、研究現狀與發展趨勢
        • 三、設計目標
        • 四、技術方案
          • (1)系統總體架構
          • (2)硬件設計
          • (3)軟件設計
        • 五、創新點
        • 六、預期成果
        • 七、工作計劃
        • 八、參考文獻

基于STM32設計的智慧路燈(華為云IOT)

一、前言

1.1 項目介紹

【1】項目開發背景

隨著智慧城市建設的快速推進,智慧路燈作為城市物聯網的重要組成部分,正逐漸成為城市基礎設施數字化改造的核心內容。傳統路燈存在能耗高、維護成本高、功能單一等問題,無法滿足現代城市對節能、環保和智能化管理的需求。因此,設計一款基于STM32的智慧路燈系統,不僅可以實現路燈的節能高效管理,還能提升城市整體管理水平,為智慧城市的發展奠定基礎。

本項目旨在通過STM32F103C8T6微控制器為核心,結合先進的傳感技術和無線通信技術,實現智慧路燈的多功能化和智能化管理。通過整合環境溫度、濕度、光照強度、空氣質量的實時監測功能,可以為市政部門

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

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

相關文章

實驗十 合理定義分布列實現性能優化-分布式表關聯

實驗介紹本實驗通過分析普通查詢過程中存在的性能瓶頸點,通過執行計劃的分析找到可能的性能優化點并加以實施,最終達到優化的效果,重點關注分布式關聯相關查詢語句的優化。實驗目的了解通過合理定義分布列實現分布式關聯的性能優化。實驗步驟…

C#,RabbitMQ從入門到精通,.NET8.0(路由/分布式/主題/消費重復問題 /延遲隊列和死信隊列/消息持久化 )/RabbitMQ集群模式

為什么使用消息隊列 消息隊列(MQ)在分布式系統中用于解耦生產者和消費者,提高系統的異步處理能力、削峰填谷、增強可擴展性和可靠性。通過消息隊列,任務可以異步執行,避免系統因瞬時高并發而崩潰。 消息隊列場景 異…

OpenHarmony之SELinux安全組件底層原理設計架構精講

1. 組件介紹 1.1 核心功能 **SELinux(安全增強式Linux)**是Linux歷史上杰出的安全組件,包含一組內核修改和用戶空間工具,并提供了基于安全策略的強制訪問控制機制(Mandatory Access Control,MAC)。本部件負責對文件、屬性、服務等系統資源提供強制訪問控制保護,提供n…

IIS 部署 asp.net core 項目時,出現500.19、500.31問題的解決方案

目錄 (一)500.19 問題 1. 問題說明 2. 原因 3. 解決 (二)500.31 問題 1. 問題說明 2. 原因 打開事件檢視器的3種方式: 3. 解決 (一)500.19 問題 1. 問題說明 2. 原因 Web項目發布時&am…

中大型水閘安全監測的重要性及實施方法

水閘作為水利工程體系中的關鍵性構筑物,其結構安全性和運行可靠性直接影響到整個水利系統的穩定運行,更與下游地區人民群眾的生命財產安全息息相關。作為水利樞紐工程的重要控制節點,水閘承擔著防洪排澇、灌溉供水、航運發電等多重功能&#…

【芯片設計-信號完整性 SI 學習 1.1.1 -- Unit Interval,比特周期】

文章目錄1. Unit Interval (UI) / 比特周期 的定義2. 舉例說明3. 在眼圖 (Eye Diagram) 中的體現4. 示意圖(a) 單比特周期(b) 不同速率下的 UI(c) 眼圖中的 UI5. 總結1. Unit Interval (UI) / 比特周期 的定義 在高速信號傳輸與 信號完整性 (SI) 測試中,Unit Inter…

Go語言開發工具全解析

Go 語言的開發工具生態對于提高開發效率、保證代碼質量和團隊協作至關重要。一套完善的工具鏈可以幫助開發者:1. 加速編碼過程代碼模板快速生成常見模式例如使用代碼片段(Snippet)快速生成HTTP服務框架自動生成測試用例模板實時語法檢查減少錯誤即時顯示類型不匹配錯…

[郵件服務器core] 安全通信(SSL/TLS) | OpenSSL庫管理 | 服務端安全SECURITY.md

第5章:安全通信(SSL/TLS) 歡迎回來 在第4章:服務運行中,我們學習了如何啟動Dovecot郵件服務器并使其運行。 現在,我們的服務器已經啟動并準備好處理電子郵件,但有一個關鍵問題:我…

Lodash方法總結

目錄 1. _.defaults()為對象填充默認值 基本語法 功能說明 示例代碼 注意事項 與其他類似方法的區別 2. _.pickBy()刪除對象中值為空串或 null 的屬性 實現方法 代碼說明 擴展:深層過濾 3._.omitBy()移除滿足條件的屬性 基本語法 核心功能 示例代碼 1…

C#---Expression(表達式)

前言:Expression 是C# 高級編程,表達式的應用場景有 ORM框架:Entity Framework,Dapper等,規則引擎:動態業務規則評估, 依賴注入:高級DI容器實現,測試框架:模擬…

Lodash-es 完整開發指南:ES模塊化JavaScript工具庫實戰教程

簡介 Lodash-es 是 Lodash 庫的 ES 模塊版本,提供了大量實用的 JavaScript 工具函數。它支持按需導入,可以顯著減少打包體積,是現代 JavaScript 項目中的首選工具庫。 主要特性 ES 模塊支持: 完全支持 ES6 模塊語法按需導入: 只導入需要的…

26. AI-Agent-Dify

文章目錄前言一、Dify入門為什么使用 Dify?Dify 能做什么?二、Dify私有化部署Docker Compose 部署前提條件克隆 Dify 代碼啟動 Dify更新 Dify訪問 Dify自定義配置三、Dify構建企業級Agent應用定義如何使用智能助手添加助手需要的工具配置 Agent配置對話開…

云原生:微服務與Serverless指南

Copilot時代的開發者效能提升 代碼生成與補全:減少重復性編碼工作,加快開發速度錯誤檢測與修復:實時提示潛在問題,降低調試時間知識獲取與學習:幫助開發者快速掌握新語言或框架協作效率:通過AI輔助減少團隊…

SpringBoot + Apache Tika:一站式解決文件數據提取難題

在日常開發中,你是否也遇到過這樣的窘境:領導甩來需求“把用戶上傳的 Word、Excel、PDF 里的關鍵信息扒出來存庫”,你卻要對著不同格式逐個攻堅——解析 Word 用 POI 還要處理 .doc/.docx 兼容,解析 Excel 要啃合并單元格、公式計…

車牌模擬生成器:Python3.8+Opencv代碼實現與商業應用前景(C#、python 開發包SDK)

車牌模擬生成器:Python代碼實現與商業應用前景引言在智慧城市建設和汽車行業數字化浪潮中,車牌作為車輛的唯一標識,其相關技術應用正變得越來越重要。今天我們將介紹一個基于Python的車牌模擬生成器,探討其技術實現、功能特點以及…

小程序非主頁面的數據動作關聯主頁面的數據刷新操作

如果在主頁面跳轉到其他頁面。比如說我的收藏頁面,然后有取消收藏的動作,當返回到主頁面的時候,如果有關聯數據顯示在主頁面,刷新頁面對應的狀態。 下面的代碼是實現://卡片收藏/取消if (newCollectd) {this.setData({…

后端(fastAPI)學習筆記(CLASS 1):擴展基礎

一、python的類型聲明1、類型聲明的背景和作用python 3.6 版本引入了“類型提示”1、類型提示是一種新的語法,用來聲明變量的類型2、提高編譯器和工具的支持能力為什么要學習類型提示1、了解類型提示不僅僅對使用FastAPI有幫助,也能提高代碼的可讀性度和…

2023年系統分析師上半年論文試題分析

試題一 論信息系統的可行性分析信息系統可行性分析的目的是確認在當前條件下企業是否有必要建設新系統,以及建設新系統的工作是否具備必要的條件。如何進行可行性分析是系統分析師所必須面臨的問題。請圍繞信息系統可行性分析論題,依次從以下三個方面進行…

洛谷 P1967 [NOIP 2013 提高組] 貨車運輸(kruskal 重構樹 + 求路徑最小邊權)

題目鏈接 題目難度 洛谷上是藍題&#xff0c;本人認為評高了&#xff0c;此題思維和實現都不難&#xff0c;應該是綠題。 題目解法概括 kruskal 重構樹 倍增優化求路徑最小邊權 代碼 #include <iostream> #include <cstdio> #include <vector> #inclu…

【01】針對開源收銀系統icepos (寶塔面板) 詳細安裝教程詳細參考-優雅草卓伊凡

【01】針對開源收銀系統icepos (寶塔面板) 詳細安裝教程詳細參考-優雅草卓伊凡引言本文做參考&#xff0c;下篇文章 直接實踐&#xff0c;由于已經選型本系統是服務端php開發的系統&#xff0c;他的系統環境如下&#xff1a;系統安裝 環境要求ICEPOS對服務器或電腦硬件要求不高…