* 導師視頻講解:[**去聽課**](https://www.bilibili.com/video/BV1Cb4y1171H?p=16)
>[success] **技術支持說明**
> 1.**客服**提供簡單的技術支持,一般自主學習為主
> 2.可到官方問答社區中提問:[**去提問**](https://bbs.csdn.net/forums/nb-iot)
> 3.工程師**會盡快**解答社區問題,但他們是一線開發,【**難以保證**】解答時效,解答辛苦,感謝理解!
<br/>
>[danger] 本項目為課外學習內容,其內容較為復雜且有一定難度,因此:**未學習前面章節者**,**請止步**!
<br/>
## **編譯源代碼**
* 安裝Keil MDK,參考:[Keil MDK 簡介與安裝](2486101)
* 安裝 STM32 Pack,參考:[STM32 Pack 簡介與安裝](2486102)
* 安裝USB轉串口驅動,參考:[CH34x 驅動簡介與安裝](2486103)
* 安裝完成上述軟件后,打開配套的工程代碼,即可編譯并生成Hex文件
>[danger] 請務必安裝 **STM32 Pack**,否則會編譯失敗
<br/>
## **代碼架構**
打開本項目配套的代碼,并展開Userspace,如圖所示。

###
可以把源代碼大致分解為3個層次,即以hal開頭的源文件屬于HAL,以svc開頭的文件屬于Service層,以tash開頭的屬于Task層。
<br/>
#### **HAL說明**
HAL中的各個源文件的簡要說明如下:
* hal\_spi.c :SPI驅動程序
* hal\_lcd\_spi.c和hal\_oled12864.c : OLED顯示屏驅動程序
* hal_uart.c :串口通信驅動程序
* hal_dht11.c :DHT11溫濕度傳感器驅動程序
* hal_system.c :其他系統資源的驅動程序,例如系統延時等
#### **Service層說明**
Service層的各個源文件的簡要說明如下:
* svc_msg.c :基于 hal_uart.c封裝出來的串口數據收發服務
* svc_log.c :日志服務,用來在顯示屏中顯示日志信息
* svc\_plugins.c :插件服務,包含基于hal\_dht11.c封裝出來的溫濕度數據讀取服務
* svc_task.c :任務調度的核心服務,支持增加、刪除任務以及多任務
#### **Task層說明**
* task_nbiot.c :基于NB-IoT數據通信任務,用于與遠程服務器建立MQTT連接,并上報溫濕度數據。
<br/>
<br/>
## **商務合作**
如有以下需求,可掃碼添加管理員好友,注明“**商務合作**”
* 項目定制開發,技術范圍:**NB-IoT**、**CATn(4G)**、**WiFi**、**ZigBee**、**BLE Mesh**以及**STM32**、**嵌入式Linux**等;
* 入駐平臺,成為講師;
* 接項目賺外快;
* 善學坊官網:[www.sxf-iot.com](https://www.sxf-iot.com/)

(非商務合作**勿擾**,此處**非**技術支持)
- 課程介紹
- 配套資源下載
- 配套開發套件簡介
- 簡介
- 硬件組成 & 技術參數
- 電路原理圖 & PCB圖
- 撥碼開關使用說明
- 第一部分:無線通信 開發指南
- 1.1.1 NB-IoT:技術簡介
- 1.1.2 NB:CH34x USB轉串口驅動安裝
- 1.1.3 NB:AT 指令開發與測試
- 1.1.4 NB:基礎指令集簡介
- 1.1.5 NB:云端服務器
- 1.1.5.1 PuTTY 簡介與安裝
- 1.1.5.2 登錄云端服務器
- 1.1.6 NB:移遠官方工具簡介
- 1.1.7 NB:使用UDP協議與云端服務器通信
- 1.1.8 NB:使用TCP協議與云端服務器通信
- 1.1.9 NB:使用MQTT協議與云端服務器通信
- 進階課程
- 第二部分:STM32 開發指南
- 2.1 搭建開發環境
- 2.1.1 Keil MDK 簡介與安裝
- 2.1.2 STM32 Pack 簡介與安裝
- 2.1.3 CH34x 驅動簡介與安裝
- 2.1.4 其他開發工具
- 2.2 STM32 開發基礎
- 2.2.1 新建工程
- 2.2.2 實現第1個程序
- 2.2.3 Hex 文件燒錄詳解
- 2.3 移植官方標準工程模板
- 2.4 GPIO實驗——LED燈
- 2.5 系統延時應用
- 2.6 GPIO實驗——按鍵
- 2.7 GPIO中斷實驗——按鍵觸發
- 2.8 使用定時器TIM3
- 2.9 串口通信實驗
- 2.10 ADC 實驗
- 2.11 OLED顯示器實驗
- 2.12 SDK 設計思想
- 2.13 SDK 架構解析
- 2.14 多任務應用
- 2.15 輸入型任務:按鍵輸入
- 2.16 輸入型任務:串口接收
- 課外篇:項目實戰
- 基于STM32+NB-IoT的溫濕度采集
- 系統簡介
- 系統搭建
- 系統詳解
- 1.代碼編譯與架構說明
- 2.DHT11溫濕度傳感器
- 3. 數據通信任務說明
- 版權聲明與免責聲明