主頁 > 作業系統 > ESP32物聯網專案開發1-ESP32簡介

ESP32物聯網專案開發1-ESP32簡介

2023-06-15 08:48:47 作業系統

0簡介

本書的內容

第1章,ESP32入門,向你介紹一般的物聯網技術、ESP32硬體和開發環境選項,
第2章,與地球對話--傳感器和執行器,討論了不同型別的傳感器和執行器,以及如何將它們與ESP32連接,
第3章,令人印象深刻的顯示輸出,解釋了如何在ESP32專案中選擇和使用不同的顯示型別,FreeRTOS也被詳細討論,
第4章,深入研究高級功能,包括ESP32的音頻/視頻應用,以及滿足低功耗要求的電源管理子系統,
第5章,實踐--你的房間的多傳感器,是本書的第一個參考專案,其中幾個傳感器被集成到ESP32設備,
第6章,好朋友--Wi-Fi,展示了如何在Wi-Fi的站點和接入點模式下使用ESP32,在ESP32的背景下討論了一些TCP/IP協議,
第7章,安全第一!探討了ESP32的安全特性,并提供了安全韌體更新和安全通信技術的例子,
第8章,介紹了BLE的基本知識,并展示了如何開發BLE信標、GATT服務器和BLE網狀節點,
第9章,實踐--讓你的家變聰明,用BLE網狀網路中的網關、光線傳感器和中繼開關構建了完整的智能家居解決方案,
第10章,無云不物聯網--云平臺和服務,討論了重要的物聯網協議,并以AWS物聯網集成為例介紹了不同供應商的物聯網平臺,
第11章,連接永遠不夠--第三方集成,重點介紹與語音助手和IFTTT等流行服務的集成,
第12章,實踐--語音控制的智能風扇,作為本書的最后一個專案,將一個普通的風扇轉換成支持Alexa的智能設備,

要從本書中獲得最大的識訓

物聯網技術需要許多不同的學科和技能來開發物聯網產品,從根本上說,除了具備C和Python的編程能力外,你還需要閱讀圖來設定實體中的硬體原型,我們還假定你熟悉TCP/IP協議和密碼學基礎知識,以便輕松掌握這些例子,在某些章節中,如果你對該主題的基礎知識感到不適應,建議閱讀一些參考書,

每個例子前都列出了必要的硬體組件,然而,你應該準備好面包板、跳線和萬用表,以便能夠構建電路,最好還能有焊接設備,因為許多新模塊需要焊接頭,以便將它們連接到面包板上,

作為開發環境,你應該在你的電腦上安裝VS Code,本書中的例子是在Linux機器上開發和測驗的,但不管是哪種作業系統平臺,都應該可以作業,在必要的情況下,為不同的平臺推薦了外部工具的替代品,

需要一個移動設備來處理這些例子,這些移動應用程式在安卓和iOS平臺上都可以使用,

你可以從GitHub上下載本書的示例代碼檔案,網址是https://github.com/PacktPublishing/Internet-of-Things-with-ESP32,

1-ESP32簡介

什么是物聯網?

盡管不同的觀點對物聯網的定義可能略有不同,但在物聯網世界中,有一些關鍵概念將其與其他型別的技術區分開來:

  • 連接性: 物聯網設備是連接的,要么連接到互聯網,要么連接到本地網路,墻上的老式恒溫器等待手動操作的基本編程功能不能算作物聯網設備,
  • 識別: 物聯網設備在網路中被唯一地識別,設備本身可用于遠程更新、遠程管理和診斷,
  • 自主操作: 物聯網系統的設計是為了最小化或沒有人類的干預,每個設備從其安裝的環境中收集資料,然后它可以與其他設備溝通資料,以檢測系統的當前狀態,并按照配置做出回應,如果需要,這種回應可以是行動、日志或警報的形式,
  • 互操作性: 物聯網解決方案中的設備相互交談,但它們不一定屬于一個供應商,當不同供應商設計的設備共享共同的應用級協議時,在異質網路中添加新設備就像點擊設備或管理軟體上的幾個按鈕一樣容易,
  • 可擴展性: 物聯網系統能夠進行橫向擴展,以應對不斷增加的作業量,在必要時增加新的設備來增加容量,而不是用更好的設備來替換現有的設備(垂直擴展性),
  • 安全性: 我希望我可以說,每個物聯網解決方案都至少實施了一套最低限度的強制性安全措施,但不幸的是,情況并非如此,盡管有一些不好的經驗,包括臭名昭著的Mirai僵尸網路攻擊,從積極的方面看,我可以說,物聯網設備大多具有安全啟動、安全更新和安全通信功能,以確保保密性、完整性和可用性(CIA三要素),

Gartner在2011年的炒作周期中加入了物聯網,預計超過10年后將成為主流應用,然而,許多相關技術,如RFID、網狀網路和藍牙,以及移動和云技術等推動因素,在2011年之前就已經在名單上了,從那時起,Gartner在其名單上增加了其他一些物聯網技術和應用,包括以下內容:

  • 物聯網平臺
  • 互聯家庭
  • 智能灰塵
  • 邊緣計算
  • 邊緣的低成本、單板計算機

5G和嵌入式人工智能是Gartner名單上的其他革命性技術,支持物聯網并擴大其應用領域,

參考資料

  • 軟體測驗精品書籍檔案下載持續更新 https://github.com/china-testing/python-testing-examples 請點贊,謝謝!
  • 本文涉及的python測驗開發庫 謝謝點贊! https://github.com/china-testing/python_cn_resouce
  • python精品書籍下載 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md

我們在哪里應用物聯網?

應用范圍很廣,但從概念上講,我們可以將其分為兩個基本類別:

  • 在消費者物聯網類別中,我們可以看到主要是智能家居和安全系統、個人醫療保健產品、可穿戴技術和資產跟蹤應用,
  • 工業物聯網類別有更多的應用領域,正如你所期望的那樣,每年,IoT Analytics都會通過審查數以千計的新專案來發布工業應用的十大趨勢清單,2020年的清單依次包含了制造業、交通、能源、零售、城市、醫療保健、供應鏈、農業和建筑應用(https://iot-analytics.com/top-10-iot-applications-in-2020),

邊緣的AI/ML

人工智能已經存在了很長時間,有許多機器視覺、自然語言處理(NLP)、語音識別和ML專案的成功案例,然而,它們都需要耗能的強大硬體,以便能夠應對CPU和記憶體密集型的計算,而這一點在記憶體和處理能力低得多的簡陋的傳感器設備上是不可能的,TensorFlow Lite解決了這個問題,它的轉換器可以輸出一個模型,一組通過運行資料進行預測的規則,其大小低至14KB,適合任何現代微控制器,如ARM Cortex-M3設備,功耗非常低,這使你能夠擁有具有ML能力的電池操作的傳感器設備,一個有趣的專案來自Benjamin Cabé(在Twitter上:@kartben),在他的專案中,他成功地訓練了模型來辨別不同型別的烈酒,準確率達到92%,他用SeeedStudio的Wio終端作為計算板,它有一個ARM Cortex-M4F內核,運行頻率為120MHz,

意義是巨大的,現在我們有能力開發一個真正的智能設備,而不是假的傳感器設備,這樣它可以為它收集的資料添加意義,不僅可以根據資料,而且可以根據意義做出反應,本杰明采用了一個簡單的氣體傳感器來檢測各種氣體,如一訊訓碳(CO)、二訊訓氮(NO2)、乙醇(C2H5CH)和其他一些型別,但該設備本身可以理解它實際聞到的氣味,這要歸功于它在韌體中使用的ML模型,如果沒有這樣的能力,該設備將不得不把它的資料發送到另一臺更強大的機器或云端來進行分析,然后等待回復,以決定下一步該怎么做,此外,如果它以某種方式失去了網路連接,那么在恢復連接之前,就不能再做任何事情了,

你可以在以下鏈接中查看TensorFlow Lite的支持平臺:https://www.tensorflow.org/lite/microcontrollers,

能量采集

無線傳感器網路(WSNs Wireless Sensor Networks)的一個重要討論和研究課題一直是傳感器節點的能量消耗,很明顯,越少越好,如果你有一些開發電池操作的無線設備的經驗,你知道運行到睡眠的概念,這意味著做完作業后盡快進入睡眠模式,以保存最寶貴的資源--能源,盡管如此,無論你做什么,傳感器節點必須消耗能量,用戶在一段時間后必須更換電池,在這一點上,一項有趣的技術為你提供了幫助--能量采集,自尼古拉-特斯拉的時代就已經存在,能量可以從各種環境來源中獲取,包括光、振動和無線能源,要做到這一點,采集解決方案首先需要通過各種組件來獲取環境能量,這取決于能源型別,

如果能量來自射頻源,它就是射頻天線;如果是光,它就是一個光伏電池,然后,這種原始電能必須在集成電路的幫助下進行轉換,以便將其儲存在電容器或電池中,但你知道,這說起來容易,做起來難,盡管市場上有幾個來自不同硅供應商的電源管理集成電路(PMIC Power Management Integrated Circuits ),但很難說它們是否有效地解決了這個問題,主要的挑戰是要采集非常低的能量水平,需要將非常低的電壓提升到更高的邏輯水平,需要多個外部元件來操作,以及在PCB上有很大的芯片足跡,因此,這些挑戰阻礙了供應商生產高性能的能量收集芯片,不過,有一種產品聽起來確實很有希望,
Nowi Energy宣傳其NH2D0245 PMIC是與市場上其他半導體巨頭相比效率最高、占地面積最小的電源管理IC,為了證明他們的論點,他們與模塊公司MMT一起推出了一個混合智能手表模塊,這樣,裝有該模塊的手表在其生命周期內不需要充電就可以運行,能量收集是一個熱門話題,所以當然也有競爭對手,如來自比利時的e-peas半導體,你可能想在你的下一個WSN專案中嘗試這些PMIC之一,

納米機器人

來自康奈爾大學的研究專案,這項研究的結果已于2020年8月發表在《自然》雜志上,文章名為《電子集成、大規模制造的微型機器人》,他們發明了納米級的執行器,你簡直無法用眼睛看到,這個超級微小的結構上有兩個太陽能電池來移動腿部,當激光束落在這些太陽能電池上時,它們產生足夠的電壓來激活腿部,

物聯網解決方案的基本結構

物聯網解決方案將許多不同的技術結合到一個產品中,從物理設備開始,涵蓋所有層級,直到最終用戶的應用,解決方案的每一層都旨在實作企業設定的相同愿景,但在設計和開發時需要采用不同的方法,我們肯定不能在物聯網專案中談論一刀切的解決方案,但我們仍然可以應用有組織的方法來開發產品,讓我們看看在一個典型的物聯網產品中,解決方案有哪些層次:

  • 設備硬體: 每個物聯網專案都需要帶有系統芯片(SoC)或微控制器單元(MCU)和傳感器/執行器的硬體來與物理世界互動,除此之外,每個物聯網設備都是連接的,所以我們需要選擇最佳的通信媒介,如有線或無線,電源管理也是這個類別下的另一個考慮因素,

  • 設備韌體: 我們需要開發設備韌體,在SoC上運行,以滿足專案的要求,這是我們收集資料并將其傳輸到解決方案中的其他組件的地方,

  • 通信: 連接問題在解決方案架構的這個類別中處理,物理介質的選擇對應于解決方案的一個部分,但我們仍然需要決定設備之間的協議,作為共享資料的共同語言,一些協議可能通過定義物理介質到應用層來提供整個通信堆疊,如果是這種情況,你不需要擔心其他事情,但如果你的堆疊將應用層的背景關系管理留給了你,那么是時候決定使用什么物聯網協議了,

  • 后臺系統: 這是解決方案的骨干,所有資料都在后端系統上收集,并提供產品的管理、監測和集成能力,后臺系統可以在企業內部硬體或云供應商上實施,同樣取決于專案要求,此外,這也是物聯網遇到其他顛覆性技術的地方,你可以應用大資料分析,從來自傳感器的資料中提取更深層次的資訊,或者你可以使用人工智能演算法,為你的系統提供更多的智能功能,如例外檢測或預測性維護,

  • 終端用戶應用: 你很可能需要為你的終端用戶提供介面,讓他們訪問功能,10年前,我們只談論桌面、網路或移動應用程式,但今天我們有了語音助手,你可以把它們看作是一種現代的人際互動界面,把語音助手集成作為一項功能添加進去可能是一個好主意,特別是在消費者領域,
    下圖描述了物聯網解決方案的一般結構:

物聯網安全

剩下的一個重要考慮因素是安全,實際上,這都是關于安全的,無論我寫什么,都不能過分強調其重要性,物聯網設備與現實世界相連,任何安全事故都有可能對直接環境造成嚴重損害,更不用說其他網路安全犯罪,因此,在設計解決方案的任何硬體或軟體組件時,它應該始終在你的檢查清單中,雖然安全,作為一個主題,絕對值得單獨寫一本書,但我可以為現場的設備列出一些黃金規則:

  • 始終尋求減少硬體和韌體的攻擊面,
  • 盡可能地防止物理篡改,如果沒有必要,任何物理埠都不應該被打開,
  • 將秘密密鑰保存在安全介質上,
  • 實施安全啟動、安全韌體更新和加密通信,
  • 不要使用默認密碼;TCP/IP埠不應不必要地開放,
  • 在可能的情況下,將健康檢查機制與例外檢測結合起來,

作為物聯網開發者,我們應該普遍接受安全設計原則,由于物聯網產品有許多不同的組件,在設計產品時,端到端的安全性成為關鍵點,應該對每個組件進行風險影響分析,以決定傳輸中的資料和休息中的資料的安全級別,有許多國家/國際機構和組織提供有關網路安全的標準、準則和最佳做法,其中一個專門從事物聯網技術的機構是物聯網安全基金會,他們正在積極開發有關該主題的準則和框架,并公布了許多這些準則,這些準則可以免費獲得,

如果你想查看這些指南,你可以訪問物聯網安全基金會網站,查看他們的出版物:https://www.iotsecurityfoundation.org/best-practice-guidelines/,

ESP32平臺和模塊介紹

第一個ESP32芯片是在2016年推出的,ESP32使我們能夠將網關的價格削減到原來的四分之一,有了ESP32作為主計算單元,我們將Z-wave模塊作為網路協處理器連接到它上面,另一端是Wi-Fi,這是ESP32的內置功能,用于連接后端系統,我們不擔心安全要求,因為ESP32芯片中有用于加密/解密的加密硬體加速器,這就是我們所需要的一切,然而,像往常一樣,生活并不那么容易,我們從市場上采購的Z-wave庫的目標是基于Linux的板子,而不是像ESP32這樣資源有限的SoC,所以我們開始為ESP32移植整個Z-wave庫,并獲得了成功,最后,我們擁有了市場上最緊湊、最實惠的Z-wave網關,

為什么采用ESP32?

  • 價格便宜和可用性
  • Wi-Fi和藍牙在單一的SoC中
  • 強大的硬體功能,有許多外圍介面,不同的電源模式,以及加密硬體加速
  • 在芯片和模塊方面,有不同的要求的變體
  • 先進的開發平臺和框架
  • 巨大的社區
  • 最后,與頂級云基礎設施的原生集成

ESP32的特點

自從市場上推出第一款ESP32以來,Espressif推出了ESP32的幾個變體,最近,在2020年,他們推出了ESP32-S2系列芯片,ESP32系列是通用的、功能豐富的、多功能的SoC解決方案,你可以在需要Wi-Fi連接的許多不同型別的物聯網專案中使用,讓我們快速了解一下其主要功能:

  • CPU和記憶體: 32位Xtensa? LX6微處理器,時鐘頻率/MIPS高達240 MHz/600 MIPS,單核或雙核的變種,448 KB ROM, 520 KB SRAM, 和16 KB RTC存盤器,支持外部SPI閃存和SPI RAM的模塊變體,外圍設備的DMA,
  • 連接性: Wi-Fi 802.11 n (2.4 GHz) 高達150 Mbps (STA和softAP模式)和符合Bluetooth v4.2 BR/EDR和BLE規范的藍牙,
  • 周邊介面: GPIO、ADC、DAC、SPI、I2C、I2S、UART、eMMC/SD(芯片變體)、CAN、IR、PWM、觸摸傳感器和霍爾傳感器,
  • 安全性: 加密硬體加速(亂數、散列、AES、RSA和ECC)、1024位OTP、安全啟動和閃存加密,
  • 電源模式: 在超低功耗(ULP)協處理器和實時時鐘(RTC)的幫助下有不同的電源模式,深度睡眠模式(ULP激活)下的功耗為100μA,

新的ESP32-S2系列有點不同,一些明顯的區別包括以下幾點:

  • 單核,
  • 沒有藍牙,
  • 不支持SD/eMMC,但增加了USB OTG,
  • 增強了安全功能,

為了使硬體設計更容易,Espressif提供了不同配置的ESP32模塊,模塊的可變引數是ESP32芯片的變體、外部閃存(4、8或16MB)、外部SRAM和天線型別,我們可以選擇帶有PCB天線的模塊,或者在U.FL/IPEX連接器的幫助下實作外部天線選項,在ESP32-S2方面,截至本書撰寫時,我們只有一個模塊選項,大多數時候,在你的專案中選擇其中一個模塊就足夠了,但是,如果你需要特定的ESP32芯片,例如具有高溫操作的芯片,那么你需要使用一個相應的芯片變體,例如ESP32-U4WDH,并相應地設計你的PCB,你可以在Espressif的網站上找到可用的模塊:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/hw-reference/index.html,
下面的照片顯示了一個集成有板載天線的ESP32-WROOM-32D模塊:

可以在市場上找到許多來自不同供應商的板子,我們可以很容易地用這樣的套件開始開發,而不需要進行實際的硬體設計和最終產品的原型,所有的模型都集成了USB-UART橋接芯片和USB埠,所以我們只需要將套件插入我們的開發PC,就可以閃現和測驗韌體:

開發平臺和框架

ESP32是相當流行的,因此,有很多選擇,你可以選擇作為你的開發平臺和框架,

當然,第一個是直接來自Espressif本身,他們稱之為Espressif物聯網開發框架(ESP-IDF),它支持所有三個主要的作業系統環境--Windows、macOS和Linux,在安裝了一些先決條件的軟體包后,你可以從GitHub倉庫下載ESP-IDF,并將其安裝在你的開發電腦上,他們已經將所有必要的功能收集到一個名為idf.py的Python腳本中,供開發人員使用,你可以通過使用這個命令列工具來配置專案引數和最終的二進制影像,你也可以在專案的每一步中使用它,從構建階段開始,到從計算機的串行埠連接和監控你的ESP32板,但正如我所說,這是一個命令列工具,所以如果你是一個更喜歡圖形用戶界面的人,那么你需要安裝Visual Studio Code并在其中安裝一個ESP-IDF擴展,這里是ESP-IDF的鏈接:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started/index.html,

第二個選擇是Arduino IDE,正如你所期望的那樣,Arduino提供了它自己的庫來與ESP32板一起作業,如果你有使用Arduino IDE的經驗,你就知道它是多么容易使用,然而,與ESP-IDF相比,它是以開發靈活性為代價的,你在Arduino允許你做的事情方面受到限制,你需要遵守它的規則,

你可以選擇的第三個選擇是PlatformIO,這不是獨立的IDE或工具,而是作為Visual Studio Code中的擴展,作為開源的嵌入式開發環境,它支持許多不同的嵌入式板、平臺和框架,包括ESP32板和ESP-IDF,安裝之后,它將自己與VSCode UI集成,在這里你可以找到ESP-IDF的idf.py提供的所有功能,除了VSCode IDE的功能外,PlatformIO還有集成的除錯器,支持單元測驗,靜態代碼分析,以及嵌入式編程的遠程開發工具,PlatformIO是平衡易用性和開發靈活性的好選擇,

這三個框架的編程語言是C/C++,所以你需要了解C/C++才能在這些框架內開發,然而,C/C++不是ESP32的唯一編程語言,你可以使用MicroPython進行Python編程,或者使用Espruino進行JavaScript編程,它們都支持ESP32板子,但說實話,我不會用它們來開發任何將在市場上推出的產品,盡管由于你對編程語言的偏好,你可能對它們感到更舒服,但你在它們中都找不到ESP-IDF的功能,

實時作業系統選項

基本上,RTOS提供了確定性的任務調度器,盡管調度規則根據調度演算法的不同而變化,但我們知道我們創建的任務將在這些規則的一定時間內完成,使用實時作業系統的主要優點是降低了復雜性,改進了軟體結構,便于維護,
ESP-IDF支持的主要實時作業系統是FreeRTOS,ESP-IDF使用自己的Xtensa版本的FreeRTOS,與普通的FreeRTOS相比,其根本區別在于對雙核的支持,在ESP-IDF FreeRTOS中,你可以從兩個核心中選擇一個來分配任務,也可以讓FreeRTOS選擇,與原來的FreeRTOS相比,其他的區別主要來自于對雙核的支持,FreeRTOS是在MIT許可下發布的:https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/freertos.html,
如果你想把你的ESP32連接到亞馬遜網路服務(AWS)物聯網基礎設施,你可以通過使用亞馬遜FreeRTOS作為你的RTOS選擇來實作,ESP32在AWS的合作伙伴設備目錄中,并得到官方支持,亞馬遜FreeRTOS有必要的庫來連接到AWS物聯網和其他與安全有關的功能,如TLS、OTA更新、與HTTPS、WebSockets和MQTT的安全通信,幾乎是開發安全連接設備的一切:https://docs.aws.amazon.com/freertos/latest/userguide/getting_started_espressif.html,

Zephyr是另一個RTOS的選擇,它有一個寬松的自由軟體許可,Apache 2.0,Zephyr需要在開發機器上安裝ESP32工具鏈和ESP-IDF,然后,你需要用它們來配置Zephyr,當配置準備好后,我們使用命令列Zephyr工具 "west",用于構建、閃光、監控和除錯目的:https://docs.zephyrproject.org/latest/boards/xtensa/esp32/doc/index.html,

我想在這里分享的最后一個RTOS是Mongoose OS,它通過其網路UI工具mos提供了一個完整的開發環境,它與幾個云物聯網平臺,即AWS物聯網、谷歌物聯網、微軟Azure和IBM Watson,以及任何其他支持MQTT或REST端點的物聯網平臺(如果你需要一個自定義平臺)進行了原生集成,Mongoose OS有兩種不同的許可證,一種是Apache 2.0社區版,另一種是有商業許可證的企業版:https://mongoose-os.com/mos.html,

釘釘或微信號: pythontesting 微信公眾號:pythontesting

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

標籤:嵌入式

上一篇:Windows下安裝MySQL5.7.37

下一篇:返回列表

標籤雲
其他(161030) Python(38230) JavaScript(25496) Java(18240) C(15237) 區塊鏈(8270) C#(7972) AI(7469) 爪哇(7425) MySQL(7253) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5875) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4594) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2435) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) 功能(1967) HtmlCss(1966) Web開發(1951) C++(1940) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .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
最新发布
  • ESP32物聯網專案開發1-ESP32簡介

    ## 0簡介 ### 本書的內容 第1章,ESP32入門,向你介紹一般的物聯網技術、ESP32硬體和開發環境選項。 第2章,與地球對話--傳感器和執行器,討論了不同型別的傳感器和執行器,以及如何將它們與ESP32連接。 第3章,令人印象深刻的顯示輸出,解釋了如何在ESP32專案中選擇和使用不同的顯示 ......

    uj5u.com 2023-06-15 08:48:47 more
  • Windows下安裝MySQL5.7.37

    # Windows下安裝MySQL5.7.37 [TOC] [MySQL5.7.37下載地址](https://downloads.mysql.com/archives/community/?version=5.7.37&osva=Windows+%28x86%2C+64-bit%29) ##下載M ......

    uj5u.com 2023-06-14 07:43:13 more
  • linux iptables安全技術與防火墻

    目錄 一、入侵檢測系統 二、防火墻 三、防水墻 四、tcpdump抓包 五、實驗演示 1.SNAT 一、入侵檢測系統 特點:是不阻斷任何網路訪問,量化、定位來自內外網路的威脅情況, 主要以提供報警和事后監督為主,提供有針對性的指導措施和安全域策依據,類似于監控系統 二、防火墻 1.特點:隔離功能,工 ......

    uj5u.com 2023-06-14 07:35:42 more
  • 檔案系統

    # 檔案系統 > 檔案是面向OS和面向使用者而言的,對于人來說,音樂,圖片,檔案,游戲,軟體,郵件,等記錄資訊的載體都被作業系統統稱為檔案,而存盤在HDD(機械硬碟)和SSD(固態硬碟)里.因此檔案是一種物體的抽象,而之所以檔案需要檔案名,是因為不同的檔案需要進行相對應的區分,也就是檔案名,而其中的 ......

    uj5u.com 2023-06-14 07:03:16 more
  • 微控制器實時作業系統實踐3任務信令和通信機制

    ## 3任務信令和通信機制 在本章中,將簡要介紹任務信號和任務間通信的核心機制。這些基元是事件驅動的并行編程的基礎,它是基于RTOS的應用程式良好實作的基礎。 與其直接進入FreeRTOS的API,不如將每個基元與一些圖形例子和一些關于每個機制可被使用的建議一起介紹。不要擔心:在后面的章節中,我們將 ......

    uj5u.com 2023-06-08 10:15:30 more
  • 微控制器實時作業系統實踐3任務信令和通信機制

    ## 3任務信令和通信機制 在本章中,將簡要介紹任務信號和任務間通信的核心機制。這些基元是事件驅動的并行編程的基礎,它是基于RTOS的應用程式良好實作的基礎。 與其直接進入FreeRTOS的API,不如將每個基元與一些圖形例子和一些關于每個機制可被使用的建議一起介紹。不要擔心:在后面的章節中,我們將 ......

    uj5u.com 2023-06-08 09:54:21 more
  • Shell腳本

    # Shell腳本 ## Shell是什么? * Shell腳本語言屬于弱型別語言,決議用戶輸入的命令和程式,使得用戶可以與Linux進行互動; * 適合處理純文本型別資料(日志、組態檔、文本、網頁檔案、大多數純文本型別的檔案)。 ## Shell概念 ### `shebang` * 即檔案的第一 ......

    uj5u.com 2023-06-08 06:43:29 more
  • 微控制器實時作業系統實踐2了解RTOS任務

    ## 2了解RTOS任務 超級回圈編程范式通常是嵌入式系統工程師最先接觸到的編程方法之一。用超級回圈實作的程式有一個單一的頂層回圈,在系統需要執行的各種功能之間回圈。這些簡單的while回圈很容易創建和理解(當它們很小的時候)。在FreeRTOS中,任務與超級回圈非常相似--主要區別在于,系統可以有 ......

    uj5u.com 2023-06-07 08:28:34 more
  • 微控制器實時作業系統實踐2了解RTOS任務

    ## 2了解RTOS任務 超級回圈編程范式通常是嵌入式系統工程師最先接觸到的編程方法之一。用超級回圈實作的程式有一個單一的頂層回圈,在系統需要執行的各種功能之間回圈。這些簡單的while回圈很容易創建和理解(當它們很小的時候)。在FreeRTOS中,任務與超級回圈非常相似--主要區別在于,系統可以有 ......

    uj5u.com 2023-06-07 08:22:25 more
  • Tinyhttpd:原始碼分析【3】

    ## 一、問題引入 通過 **Tinyhttpd:運行測驗【1】 和 抓包分析【2】**,基本完成了對程式的功能測驗和通信原理。此時可以進一步對原始碼進行分析,本文不考慮代碼一行一行的分析,僅對關鍵部分代碼決議。 ## 二、解決程序 ### 2-1 main()函式 主函式主要創建http的監聽套接字 ......

    uj5u.com 2023-06-06 13:49:45 more