主頁 > 作業系統 > 手把手實踐丨基于STM32+NBIOT+華為云IOT設計智能井蓋

手把手實踐丨基于STM32+NBIOT+華為云IOT設計智能井蓋

2023-06-06 07:41:21 作業系統

摘要:本文介紹基于STM32微控制器、BC26 NBIOT模組和華為云IOT平臺,實作了一款智能井蓋系統,

本文分享自華為云社區《基于STM32+NBIOT+華為云IOT設計的智能井蓋》,作者:DS小龍哥 ,

一、概述

智能井蓋是一種通過物聯網技術實作對井蓋狀態監測和管理的設備,當前介紹基于STM32微控制器,BC26 NBIOT模組以及華為云IOT平臺設計一款智能井蓋系統,該系統通過光線傳感器、霍爾傳感器、溫濕度傳感器等設備實作井蓋狀態的實時監測,通過NBIOT網路將資料上傳到華為云IOT平臺,再通過云平臺下發控制指令實作遠程管理,

應用場景

智能井蓋系統可以廣泛應用于城市管理、交通建設等領域,其中具體應用場景包括:

(1)實時監測井蓋狀態,及時發現井蓋開放或例外情況,提高城市管理的效率和安全性;

(2)提供實時環境監測資料,幫助提升城市環境監測能力;

(3)利用NBIOT網路和華為云平臺的遠程控制功能,可以實作智能井蓋的開關控制和監管,避免人工操作不便和監管不到位引起的危險,

image-20230426095637493

image-20230426095643915

二、硬體設計

本系統的硬體設計主要包括傳感器模塊和控制模塊兩部分,其中傳感器模塊主要負責采集井蓋狀態資訊,控制模塊則負責資料處理和通信,

【1】傳感器模塊

(1)光線傳感器:光線傳感器用于感知井蓋上方光線強度,判斷井蓋是否露出地面,當井蓋被遮住時,光線傳感器輸出低電平;當井蓋暴露在外時,光線傳感器輸出高電平,

(2)霍爾傳感器:霍爾傳感器用于感知井蓋狀態(開/關),當井蓋開啟時,霍爾傳感器輸出高電平;當井蓋關閉時,霍爾傳感器輸出低電平,

(3)溫度傳感器和濕度傳感器:溫度傳感器和濕度傳感器用于感知井蓋下方的環境溫濕度,實時反饋給系統,便于監測井蓋下方環境狀況,

【2】控制模塊

(1)STM32微控制器:使用STM32F103C8T6微控制器,主要負責傳感器資料采集、處理和控制模塊與NBIOT模組之間的通信,

(2)BC26 NBIOT模組:使用BC26 NBIOT模組,通過NBIOT網路將采集到的井蓋狀態資料上傳到華為云IOT平臺,同時支持遠程控制井蓋開關,

(3)LED指示燈:采用不同顏色的LED指示燈,將井蓋狀態(開/關、例外、低電量)實時反饋給用戶,

軟體設計 軟體設計主要包括STM32微控制器程式設計和華為云IOT平臺開發兩部分,

STM32微控制器程式設計: 主要包括三個模塊:傳感器采集模塊、資料處理模塊和通信模塊,其中傳感器采集模塊負責采集傳感器資料并進行處理;資料處理模塊根據采集的資料進行邏輯處理,判斷井蓋狀態;通信模塊負責與NBIOT模組之間的通信,將處理后的資料上傳至華為云IOT平臺,

三、華為云IOT平臺開發

在華為云IOT平臺上,需要進行設備接入、資料模型定義、規則引擎配置和應用開發等四個核心模塊的開發,其中,設備接入模塊包括設備注冊、獲取設備證書、建立連接等步驟,以保障設備與云平臺之間的安全通信;資料模型定義模塊需要根據實際需求定義相應的資料模型,包括上傳資料格式、設備屬性和服務等,規則引擎配置模塊需要完成實時訊息推送、遠程控制和告警等功能,應用開發模塊則是將完整的智能井蓋系統進行打包,為用戶提供統一的操作介面,

華為云官網: https://www.huaweicloud.com/

打開官網,搜索物聯網,就能快速找到 設備接入IoTDA

image-20221204193824815

3.1 物聯網平臺介紹

華為云物聯網平臺(IoT 設備接入云服務)提供海量設備的接入和管理能力,將物理設備聯接到云,支撐設備資料采集上云和云端下發命令給設備進行遠程控制,配合華為云其他產品,幫助我們快速構筑物聯網解決方案,

使用物聯網平臺構建一個完整的物聯網解決方案主要包括3部分:物聯網平臺、業務應用和設備,

物聯網平臺作為連接業務應用和設備的中間層,屏蔽了各種復雜的設備介面,實作設備的快速接入;同時提供強大的開放能力,支撐行業用戶構建各種物聯網解決方案,

設備可以通過固網、2G/3G/4G/5G、NB-IoT、Wifi等多種網路接入物聯網平臺,并使用LWM2M/CoAP、MQTT、HTTPS協議將業務資料上報到平臺,平臺也可以將控制命令下發給設備,

業務應用通過呼叫物聯網平臺提供的API,實作設備資料采集、命令下發、設備管理等業務場景,

img

3.2 開通物聯網服務

地址: https://www.huaweicloud.com/product/iothub.html

image-20221204194233414

開通標準版免費單元,

image-20230420181306316

image-20230420181322092

開通之后,點擊總覽,查看接入資訊, 我們當前設備準備采用MQTT協議接入華為云平臺,這里可以看到MQTT協議的地址和埠號等資訊,

image-20230423111235524

總結:

 埠號:   MQTT (1883)| MQTTS (8883)    
 接入地址: a3433ab133.iot-mqtts.cn-north-4.myhuaweicloud.com

根據域名地址得到IP地址資訊:

 Microsoft Windows [版本 10.0.19044.2846]
 (c) Microsoft Corporation,保留所有權利,
 ?
 C:\Users\11266>ping a3433ab133.iot-mqtts.cn-north-4.myhuaweicloud.com
 ?
 正在 Ping a3433ab133.iot-mqtts.cn-north-4.myhuaweicloud.com [121.36.42.100] 具有 32 位元組的資料:
 來自 121.36.42.100 的回復: 位元組=32 時間=37ms TTL=31
 來自 121.36.42.100 的回復: 位元組=32 時間=37ms TTL=31
 來自 121.36.42.100 的回復: 位元組=32 時間=36ms TTL=31
 來自 121.36.42.100 的回復: 位元組=32 時間=37ms TTL=31
 ?
 121.36.42.100 的 Ping 統計資訊:
     資料包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
 往返行程的估計時間(以毫秒為單位):
     最短 = 36ms,最長 = 37ms,平均 = 36ms
 ?
 C:\Users\11266>

image-20230423111213624

MQTT協議接入埠號有兩個,1883是非加密埠,8883是證書加密埠,單片機無法加載證書,所以使用1883埠比較合適, 接下來的ESP8266就采用1883埠連接華為云物聯網平臺,

3.3 創建產品

(1)創建產品

點擊右上角創建產品,

image-20230420181503524

(2)填寫產品資訊

根據自己產品名字填寫,設備型別選擇自定義型別,

(3)添加自定義模型

產品創建完成之后,點擊進入產品詳情頁面,翻到最下面可以看到模型定義,

image-20230420181615129

模型簡單來說: 就是存放設備上傳到云平臺的資料,比如:環境溫度、環境濕度、環境煙霧濃度、火焰檢測狀態圖等等,這些我們都可以單獨創建一個模型保存,

3.4 添加設備

產品是屬于上層的抽象模型,接下來在產品模型下添加實際的設備,添加的設備最終需要與真實的設備關聯在一起,完成資料互動,

(1)注冊設備

點擊右上角注冊設備,

image-20230421091842025

(2)根據自己的設備填寫

在彈出的對話框里填寫自己設備的資訊,根據自己設備詳細情況填寫,

(3)保存設備資訊

創建完畢之后,點擊保存并關閉,得到創建的設備密匙資訊,該資訊在后續生成MQTT三元組的時候需要使用,

3.5 MQTT協議主題訂閱與發布

(1)MQTT協議介紹

當前的設備是采用MQTT協議與華為云平臺進行通信,

MQTT是一個物聯網傳輸協議,它被設計用于輕量級的發布/訂閱式訊息傳輸,旨在為低帶寬和不穩定的網路環境中的物聯網設備提供可靠的網路服務,MQTT是專門針對物聯網開發的輕量級傳輸協議,MQTT協議針對低帶寬網路,低計算能力的設備,做了特殊的優化,使得其能適應各種物聯網應用場景,目前MQTT擁有各種平臺和設備上的客戶端,已經形成了初步的生態系統,

MQTT是一種訊息佇列協議,使用發布/訂閱訊息模式,提供一對多的訊息發布,解除應用程式耦合,相對于其他協議,開發更簡單;MQTT協議是作業在TCP/IP協議上;由TCP/IP協議提供穩定的網路連接;所以,只要具備TCP協議堆疊的網路設備都可以使用MQTT協議, 本次設備采用的ESP8266就具備TCP協議堆疊,能夠建立TCP連接,所以,配合STM32代碼里封裝的MQTT協議,就可以與華為云平臺完成通信,

華為云的MQTT協議接入幫助檔案在這里: https://support.huaweicloud.com/devg-iothub/iot_02_2200.html

img

業務流程:

img

(2)華為云平臺MQTT協議使用限制

 (3)主題訂閱格式

幫助檔案地址:https://support.huaweicloud.com/devg-iothub/iot_02_2200.html

image-20221207153310037

對于設備而言,一般會訂閱平臺下發訊息給設備 這個主題,

設備想接收平臺下發的訊息,就需要訂閱平臺下發訊息給設備 的主題,訂閱后,平臺下發訊息給設備,設備就會收到訊息,

(4)主題發布格式

對于設備來說,主題發布表示向云平臺上傳資料,將最新的傳感器資料,設備狀態上傳到云平臺,

這個操作稱為:屬性上報,

幫助檔案地址:https://support.huaweicloud.com/usermanual-iothub/iot_06_v5_3010.html

image-20221207153637391

3.6 MQTT三元組

MQTT協議登錄需要填用戶ID,設備ID,設備密碼等資訊,就像我們平時登錄QQ,微信一樣要輸入賬號密碼才能登錄,MQTT協議登錄的這3個引數,一般稱為MQTT三元組,

接下來介紹,華為云平臺的MQTT三元組引數如何得到,

(1)MQTT服務器地址

要登錄MQTT服務器,首先記得先知道服務器的地址是多少,埠是多少,

幫助檔案地址:https://console.huaweicloud.com/iotdm/?region=cn-north-4#/dm-portal/home

image-20230411141412090

MQTT協議的埠支持1883和8883,它們的區別是:8883 是加密埠更加安全,但是單片機上使用比較困難,所以當前的設備是采用1883埠進連接的,

根據上面的域名和埠號,得到下面的IP地址和埠號資訊: 如果設備支持填寫域名可以直接填域名,不支持就直接填寫IP地址, (IP地址就是域名決議得到的)

 華為云的MQTT服務器地址:121.36.42.100
 華為云的MQTT埠號:1883

(2)生成MQTT三元組

華為云提供了一個在線工具,用來生成MQTT鑒權三元組: https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/

打開這個工具,填入設備的資訊(也就是剛才創建完設備之后保存的資訊),點擊生成,就可以得到MQTT的登錄資訊了,

下面是打開的頁面:

image-20221207154917230

3.7 參考案例

華為云平臺部署開發也可以參考這里:

https://bbs.huaweicloud.com/blogs/381072

【基于華為云IOT平臺實作多節點溫度采集(STM32+NBIOT)】

四、讀取煙霧氣體濃度

【1】MQ2傳感器

以下是一個讀取MQ2傳感器資料,并轉換為煙霧濃度的示例代碼,

 #include "stm32f10x.h"
 #include <stdio.h>
 ?
 int main(void)
 {
     // 初始化ADC
     ADC_InitTypeDef ADC_InitStructure;
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
     ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
     ADC_InitStructure.ADC_ScanConvMode = DISABLE;
     ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
     ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
     ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
     ADC_InitStructure.ADC_NbrOfChannel = 1;
     ADC_Init(ADC1, &ADC_InitStructure);
 ?
     // 配置ADC通道1的GPIO引腳
     GPIO_InitTypeDef GPIO_InitStructure;
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
     GPIO_Init(GPIOA, &GPIO_InitStructure);
 ?
     // 啟動ADC校準
     ADC_Cmd(ADC1, ENABLE);
     ADC_ResetCalibration(ADC1);
     while (ADC_GetResetCalibrationStatus(ADC1));
     ADC_StartCalibration(ADC1);
     while (ADC_GetCalibrationStatus(ADC1));
 ?
     // 讀取ADC值
     ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_28Cycles5);
     ADC_SoftwareStartConvCmd(ADC1, ENABLE);
     while (!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));
     uint16_t adc_value = ADC_GetConversionValue(ADC1);
 ?
     // 計算煙霧濃度
     float voltage = (float)adc_value / 4096.0f * 3.3f;
     float density = (voltage - 0.4f) / 0.4f * 10000.0f;
 ?
     // 列印出煙霧濃度
     printf("MQ2 Smoke Density: %.2f ppm\n", density);
 }
 ?
 ?
 ?
 ?
 float adc_average() 
 {
     const int num_discarded = 3;  // 剔除的最大/最小值數量
     float samples[20];   // 存盤采樣結果的陣列
     
     // 采集資料
     for (int i = 0; i < num_samples; i++) {
         samples[i] = ADC_GET();
     }
     
     // 對采樣結果進行排序(升序)
     for (int i = 0; i < num_samples - 1; i++) {
         for (int j = i + 1; j < num_samples; j++) {
             if (samples[i] > samples[j]) {
                 float temp = samples[i];
                 samples[i] = samples[j];
                 samples[j] = temp;
             }
         }
     }
     
     // 計算剩下的平均值
     float sum = 0;
     for (int i = num_discarded; i < num_samples - num_discarded; i++) {
         sum += samples[i];
     }
     return sum / (num_samples - 2 * num_discarded);  // 回傳計算結果
 }

【2】MQ4傳感器

以下是基于HAL庫的STM32F103ZET6讀取MQ4煙霧傳感器的代碼:

 #include "gpio.h"
 ?
 /* MQ4傳感器的引腳定義 */
 #define MQ4_PORT        GPIOA
 #define MQ4_PIN         GPIO_PIN_0
 ?
 /* MQ4傳感器的校準電壓 */
 #define MQ4_RL_VALUE    10      // RL值為10kΩ
 #define MQ4_CALCULATE_RO_CLEAN(adcValue)     ((float)(RL_VALUE*(4096-adcValue)/adcValue))
 ?
 /* 獲取MQ4傳感器的資料 */
 float get_mq4_value()
 {
     uint32_t adc_value = HAL_ADC_GetValue(&hadc1);
     float ro = MQ4_CALCULATE_RO_CLEAN(adc_value);
     float sensor_volt = HAL_ADC_GetValue(&hadc2) * (3.3 /4096.0);
     float sensor_rsr = (3.3 - sensor_volt) / sensor_volt * ro;
     float mq4_ppm = pow(10, ((log10(sensor_rsr / 2.5) - 0.3420) / (-0.6162)));
     return mq4_ppm;
 }
 ?
 /* 主函式 */
 int main()
 {
     HAL_Init();
     MX_GPIO_Init();
     MX_ADC1_Init();
     MX_ADC2_Init();
   
     /* 讀取MQ4傳感器資料 */
     float mq4_value =https://www.cnblogs.com/huaweiyun/archive/2023/06/05/ get_mq4_value();
 ?
     printf("MQ4傳感器值:%.2f PPM\r\n", mq4_value);
 ?
     while (1);
 }

在該示例代碼中,我們用到了ADC1和ADC2來分別讀取MQ4傳感器的資料引腳和校準電壓,函式get_mq4_value()中使用了MQ4傳感器的電路計算公式,將讀取的傳感器資料轉化成對應的PPM值,

五、總結

當前文章介紹基于STM32微控制器、BC26 NBIOT模組和華為云IOT平臺,實作了一款智能井蓋系統,該系統通過多種傳感器實作了井蓋狀態的實時監測和資料上傳,在應用上具有重要的應用場景和實際應用價值,整體介紹了系統硬體和軟體設計的各個環節,對相關產品的開發提供了一定的參考價值和設計思路,

 

點擊關注,第一時間了解華為云新鮮技術~

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/554312.html

標籤:其他

上一篇:如何對VMware虛擬機磁盤擴容?

下一篇:返回列表

標籤雲
其他(160359) Python(38201) JavaScript(25475) Java(18186) C(15236) 區塊鏈(8269) C#(7972) AI(7469) 爪哇(7425) MySQL(7234) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5873) 数组(5741) R(5409) Linux(5346) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4582) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2434) ASP.NET(2403) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1981) 功能(1967) HtmlCss(1952) Web開發(1951) C++(1928) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1879) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • 手把手實踐丨基于STM32+NBIOT+華為云IOT設計智能井蓋

    摘要:本文介紹基于STM32微控制器、BC26 NBIOT模組和華為云IOT平臺,實作了一款智能井蓋系統。 本文分享自華為云社區《基于STM32+NBIOT+華為云IOT設計的智能井蓋》,作者:DS小龍哥 。 一、概述 智能井蓋是一種通過物聯網技術實作對井蓋狀態監測和管理的設備。當前介紹基于STM3 ......

    uj5u.com 2023-06-06 07:41:21 more
  • 如何對VMware虛擬機磁盤擴容?

    ## 前置知識 動態卷管理(LVM,Logical Volume Manger)實作將多個硬碟和硬碟磁區做成一個邏輯卷,并將邏輯卷統一管理。創建LVM順序為:物理卷PV->卷組VG->邏輯卷LV。 物理卷(PV,Physical Volume):物理硬碟或磁區; 卷組(VG,Volume Group ......

    uj5u.com 2023-06-06 07:34:25 more
  • 龍芯、海光、飛騰、兆芯同桌對比性能力求公平

    此日海光新至,為其接風飲宴。席間其樂融融,眾CPU互報姓名,曰:海光C86-3250、龍芯3A5000、飛騰D2000、兆芯KX-U6780A。其間海光3250言其太上蠻橫,只許子弟行走于服務器和作業站之間,圍坐桌面乃是越矩,此番被拘于此方知桌面之妙,愿以文會友,以人鑒己。老夫雖知其本意,卻亦有意相... ......

    uj5u.com 2023-06-02 09:50:25 more
  • kprobe_events shell模式使用教程

    kprobe_events shell模式使用教程 kprobe 使用前提 需要內核啟用以下配置 CONFIG_KPROBES=y CONFIG_HAVE_KPROBES=y CONFIG_KPROBE_EVENT=y kprobe_events kprobe_events有兩種型別:kprobe, ......

    uj5u.com 2023-06-02 09:43:27 more
  • 龍芯、海光、飛騰、兆芯同桌對比性能力求公平

    此日海光新至,為其接風飲宴。席間其樂融融,眾CPU互報姓名,曰:海光C86-3250、龍芯3A5000、飛騰D2000、兆芯KX-U6780A。其間海光3250言其太上蠻橫,只許子弟行走于服務器和作業站之間,圍坐桌面乃是越矩,此番被拘于此方知桌面之妙,愿以文會友,以人鑒己。老夫雖知其本意,卻亦有意相... ......

    uj5u.com 2023-06-02 09:29:01 more
  • kprobe_events shell模式使用教程

    kprobe_events shell模式使用教程 kprobe 使用前提 需要內核啟用以下配置 CONFIG_KPROBES=y CONFIG_HAVE_KPROBES=y CONFIG_KPROBE_EVENT=y kprobe_events kprobe_events有兩種型別:kprobe, ......

    uj5u.com 2023-06-02 09:28:38 more
  • STM32-RTC

    RTC簡介: RTC是一個獨立的定時器,它可以連續計數和提供了時鐘日歷功能。使用BKP暫存器存盤具有掉電保存功能 存粹的計時的, 觸發中斷 ——鬧鐘中斷,用來產生一個可編程的鬧鐘中斷。 ——秒中斷,用來產生一個可編程的周期性中斷信號(最快1秒,最慢1秒,只能1秒) ——溢位中斷,指示內部可編程計數器 ......

    uj5u.com 2023-06-01 10:46:13 more
  • STM32-RTC

    RTC簡介: RTC是一個獨立的定時器,它可以連續計數和提供了時鐘日歷功能。使用BKP暫存器存盤具有掉電保存功能 存粹的計時的, 觸發中斷 ——鬧鐘中斷,用來產生一個可編程的鬧鐘中斷。 ——秒中斷,用來產生一個可編程的周期性中斷信號(最快1秒,最慢1秒,只能1秒) ——溢位中斷,指示內部可編程計數器 ......

    uj5u.com 2023-06-01 10:26:30 more
  • kali-linux運行python腳本時出現”word unexpected (expecting "

    # 前言 在剛剛開始學習網路安全時候,裝好了kali準備測驗一下。 運行了py結尾的腳本出現了以下錯誤: ![](https://img2023.cnblogs.com/blog/2572943/202305/2572943-20230531000850176-695077837.png) #解決方 ......

    uj5u.com 2023-05-31 07:28:15 more
  • Linux作業原理2常用基本命令和目錄層次結構

    本章是對本書中你將遇到的Unix命令和工具的指南。 為什么是Unix命令?這不是一本關于Linux如何作業的書嗎?當然是的,但Linux在本質上是一種Unix風格。在本章中,你會看到Unix這個詞,而不是Linux,因為你可以把你學到的東西直接帶到BSD和其他Unix風味的系統中去。我試圖避免涉及太 ......

    uj5u.com 2023-05-29 10:30:37 more