国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在鴻蒙上使用Python進行物聯網編程

OpenHarmony技術社區 ? 來源:鴻蒙技術社區 ? 作者:唐佐林 ? 2021-09-28 09:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在上一篇帖子《使用 Python 開發鴻蒙設備程序(1-GPIO 外設控制)》中,已經成功的使用 Python 對 GPIO 上的外設進行了控制。

這其實不是什么大不了的事,從功能的角度也著實不值得炫耀!然而,這卻是非常重要的一步:在鴻蒙上用使用 Python 進行物聯網編程是可行的!!!

既然可行,加上 Python 語言天生的優勢(易于掌握,開發效率高),那么真的值得持續打造,將鴻蒙上的 Python 進行到底。

所以,今天的主題就是利用 GPIO 搭配 I2C 對外設進行編程。主要內容為:通過控制“智慧農業”外設板上的傳感器,獲取當前環境的溫度和濕度。

這塊外設板上的 SHT30 是一個溫度濕度傳感器,它通過 I2C 與主控板(Hi3861)進行連接。

因此,SHT30 是一種 I2C 設備,只需要通過 I2C 接口就能輕易對它進行控制。

什么是 I2C?一般能查到的定義都會是:I2C(Inter-Integrated Circuit)是一種由 PHILIPS 公司開發的兩線式串行總線,用于連接微控制器及其外圍設備。

所以,把 I2C 直接看作總線是 OK 的,即:SHT30 與 Hi3861 直接通過 I2C 總線相連。

除此之外,也可以把 I2C 看作一種通信協議,即:SHT30 與 Hi3861 通過 2 根信號線連接在一起,并遵守預定義的規則,進而能夠交換信息。

那么,是不是在開發板上有 I2C 專用的物理線路呢?

答案是:沒有!開發板已經提供了一堆用于普適輸入輸出的 GPIO 了,所以沒有必要為 I2C 提供專用的物理線路, 只需要復用 GPIO 即可實現 I2C 通信!

所以,下面的代碼就有了:

cfab54a8-1fc0-11ec-82a8-dac502259ad0.jpg

在原理上,I2C 需要 2 根信號線完成設備間的通信;其中 SDA 為串行數據線,用來傳輸起始標志,應答標志和數據;而 SCL 為串行時鐘線,用來對設備進行同步。

因此,在代碼層面,需要編程復用 2 個 GPIO 完成對 I2C 的支持。而 GPIO_0 能夠提供 I2C1_SDA 的功能,GPIO_1 能夠提供 I2C1_SCL 的功能。

所以在真正初始化 I2C1 之前需要對 GPIO_0 和 GPIO_1 進行正確的功能設置,否則,設備間無法進行通信。

當 GPIO 的初始化完成,接下來就是對 I2C1 的初始化了,方法很簡單:將 I2C1 的 ID 和波特率作為參數調用 i2c_init(),可謂完全無難度。

最后,進行設備初始化,這一步也只需要向目標設備發送初始化命令即可,如:向 SHT30 發送 [0x22, 0x36]。

OK!相信上面的初始化代碼大家理解起來沒有問題了。那么,我們來推理一下: 有 I2C1 那么有沒有 I2C0 呢?

答案是:有!鴻蒙 L0 設備目前通過復用 GPIO 的方式提供 2 個 I2C 供使用。

當初始化正確完成,接下來就是讀取 SHT30 上的實時數據了!

d01753ba-1fc0-11ec-82a8-dac502259ad0.jpg

上面的代碼非常簡潔,但似乎不那么好理解!

沒關系,我們先來熟悉一下目前 Python 提供的 I2C 接口函數。

d06842a2-1fc0-11ec-82a8-dac502259ad0.jpg

有了這個表格,我們很容易就能理解上面的代碼片段了,即:先向 I2C1 上的 SHT30 發送讀取命令 [0xE0, 0x00],然后再從設備讀取 6 個字節的數據。如果函數執行成功,那么可得到從設備返回到的溫濕度數據。

完整交互過程如下圖所示:

d0d23a22-1fc0-11ec-82a8-dac502259ad0.jpg

這里對 SHT30 返回的數據做一點說明。如果讀取成功,SHT30 會返回 6 個字節的數據,其中前 3 個字節表示溫度數據,后 3 個字節表示濕度數據。

并且,d[2] 和 d[5] 分別表示溫度和濕度的校驗字節,通過這兩個字節即可判斷讀取到的溫濕度數據是否有效(注:本文的示例中,為了方便大家理解,沒有做數據校驗的工作。)

最后就是溫濕度數據的轉換了,方法如下:

d133ff14-1fc0-11ec-82a8-dac502259ad0.jpg

有了這些的工作,下面就只需要循環調用 read() 即可完成最終目標:獲取當前環境溫濕度。

d197d5a2-1fc0-11ec-82a8-dac502259ad0.jpg

最后的運行結果如下:

d1f4a976-1fc0-11ec-82a8-dac502259ad0.jpg

更新提示:這個版本的實現同時支持 1.0 和 1.1 的代碼,因此,大家需要根據代碼版本編譯 dt_python_demo。

將 dt_python_demo 拷貝到應用目錄:

1.0:。/applications/sample/wifi-iot/app

1.1:。/applications/sample/BearPi/BearPi-HM_Nano

修改 app 模塊的任務列表:

1.0:。/applications/sample/wifi-iot/app/BUILD.gn

1.1:。/applications/sample/BearPi/BearPi-HM_Nano/BUILD.gn

libdtpython.a 路徑:

1.0:。/vendor/hisi/hi3861/hi3861/build/libs

1.1:。/device/bearpi/bearpi_hm_nano/sdk_liteos/build/libs

根據代碼版本修改 BUILD.gn:

d26c3c3e-1fc0-11ec-82a8-dac502259ad0.jpg

Enjoy it!

代碼開源地址:

https://gitee.com/delphi-tang/python-for-hos

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 物聯網
    +關注

    關注

    2945

    文章

    47819

    瀏覽量

    414852
  • python
    +關注

    關注

    57

    文章

    4876

    瀏覽量

    90025
  • 鴻蒙系統
    +關注

    關注

    183

    文章

    2642

    瀏覽量

    69839

原文標題:將鴻蒙上的Python進行到底!

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Python中借助NVIDIA CUDA Tile簡化GPU編程

    NVIDIA CUDA 13.1 版本新增了基于 Tile 的GPU 編程模式。它是自 CUDA 發明以來 GPU 編程最核心的更新之一。借助 GPU tile kernels,可以用比 SIMT
    的頭像 發表于 12-13 10:12 ?1191次閱讀
    <b class='flag-5'>在</b><b class='flag-5'>Python</b>中借助NVIDIA CUDA Tile簡化GPU<b class='flag-5'>編程</b>

    Lora基站在聯網應用的重要性

    Lora基站在聯網應用中具有重要的地位。首先,Lora基站可以實現對聯網設備的遠程監測和控制,為
    發表于 12-03 07:09

    芯源半導體聯網設備中具體防護方案

    (一)數據傳輸安全防護方案? 聯網設備與云端、其他設備進行數據傳輸時,芯源半導體安全芯片通過以下方式保障數據傳輸安全:? 數據加密傳輸:利用安全芯片內置的硬件加密引擎,對傳輸的數據
    發表于 11-18 08:06

    一文了解Mojo編程語言

    資源受限環境,如聯網設備或實時控制系統。 總的來說,Mojo 的獨特之處在于它填補了 Python 與底層語言之間的性能鴻溝,同時保持了開發者熟悉的語法和生態。隨著其工具鏈的完善,Mojo 有望成為 AI 和高性能計算領域的重
    發表于 11-07 05:59

    學習聯網怎么入門?

    的相關書籍和視頻進行學習。也可以通過參加線下班、工作坊和實踐活動來學習。不同的學習方式適合不同的人群,初學者可以根據自己的實際情況選擇適合自己的學習方式。   第三,進行實踐操作是入門學習
    發表于 10-14 10:34

    學習聯網可以做什么工作?

    學習聯網專業后,你可以從事多種與聯網相關的工作。聯網是一個非常新穎和實用的領域,各種應用場
    發表于 10-11 16:40

    誠邁科技亮相鴻蒙生態大會,共拓萬智聯新場景

    8月30日至31日,由全球智慧聯網聯盟(GIIC)主辦、鴻蒙生態服務(深圳)有限公司承辦的鴻蒙生態大會2025深圳盛大舉行。作為開源
    的頭像 發表于 09-01 22:01 ?928次閱讀
    誠邁科技亮相<b class='flag-5'>鴻蒙</b>生態大會,共拓萬<b class='flag-5'>物</b>智聯新場景

    請問什么是聯網智庫?

    什么是聯網智庫?
    發表于 08-07 06:45

    聯網藍牙模塊有哪些優勢?

    隨著聯網技術的不斷發展,藍牙模塊作為聯網的重要組成部分,其應用越來越廣泛。那么,聯網藍牙模
    發表于 06-28 21:49

    聯網的應用范圍有哪些?

    情況;網絡通信技術保障數據不同設備、系統間穩定傳輸,像 4G、5G 甚至未來的 6G 網絡;大數據與云計算技術則對海量的感知數據進行存儲、分析和處理,挖掘其中有價值的信息,為決策提供支持。
    發表于 06-16 16:01

    聯網未來發展趨勢如何?

    、設備和資源連接在一起,實現城市管理的智能化和高效化。智慧城市可以解決交通擁堵、能源浪費等城市化問題,提升居民的生活質量和城市的可持續發展。 醫療保健:聯網技術醫療保健領域的應用也將成為未來
    發表于 06-09 15:25

    聯網工程師為什么要學Linux?

    依賴Linux的安全啟動機制。 三、職業需求與就業優勢 1)崗位技能硬性要求 企業招聘中,約70%的聯網開發崗位明確要求具備Linux系統編程、內核移植或驅動開發經驗。例如,設備端固件開發
    發表于 05-26 10:32

    明遠智睿SSD2351核心板聯網領域的應用實踐

    優勢,聯網領域大放異彩。 智能家居場景中,SSD2351核心板成為了家庭智能中樞的理想選擇。它通過豐富的接口與各類智能家居設備相連。SPI接口連接著智能門鎖的控制芯片,能夠快速響
    發表于 04-11 11:50

    愛普生可編程晶振SG-8018CA(X1G005571)聯網設備中的應用

    隨著聯網(IoT)技術的飛速發展,各種智能設備需要高精度、低功耗且靈活可編程的時鐘源來確保其穩定運行。愛普生的SG-8018CA(X1G005571)可編程晶振憑借其卓越的性能,成為
    的頭像 發表于 03-19 17:05 ?736次閱讀

    為什么選擇蜂窩聯網

    、Wi-SUN 或其他 LPWAN 相比,蜂窩聯網(包括 NB-IoT 和 LTE-M)更適合您的聯網項目,以下是其中一些關鍵原因。 許可與非許可頻段: 蜂窩
    發表于 03-17 11:42