成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Py4OH—自制開源鴻蒙空氣質量監控系統(上)

系統 OpenHarmony
小凌派開發板是一款由福州市凌睿智捷電子有限公司基于OpenHarmony打造的L0級物聯網開發板,采用E53接口標準,可接入所有的E53案例擴展板。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

今天為大家隆重介紹一位 Py4OH 家族的新成員 – 小凌派開發板,目前已經進入 Py4OH 主線,基于 OpenHarmoy 3.0 LTS 并完整支持 Py4OH 所有特性。

[Py4OH]自制開源鴻蒙空氣質量監控系統(上)-開源基礎軟件社區


    小凌派開發板是一款由福州市凌睿智捷電子有限公司基于OpenHarmony打造的L0級物聯網開發板,采用E53接口標準,可接入所有的E53案例擴展板:

  • 主控為瑞芯微RK2206芯片,200MHz主頻。
  • RAM:256KB、ROM:16KB、PSRAM:8M、FLASH:8M。
  • 板載NFC Forum Type 2 Tag芯片及天線,可實現HarmonyOS“碰一碰”功能。
  • 支持 IEEE 802.11b/g/n 制式,AP 模式。
  • 豐富的外設接口,包含 GPIO、UART、 I2C、ADC、DAC、PWM 等。
  • 兩個TypeC USB接口,一個用于供電及下載,一個用于串口調試。

小凌派提供了多個好玩的擴展板,比如:智慧手勢擴展板,智慧農業擴展板,有了這些擴展板,我們可以來做點有意思的東西。

做點什么呢?嗯,空氣質量監控系統!


[Py4OH]自制開源鴻蒙空氣質量監控系統(上)-開源基礎軟件社區

智慧農業擴展板上集成了溫濕度傳感器SHT30,LED燈,直流電機,而溫濕度傳感器SHT30可以說是為我們的空氣質量監控系統量身打造:當環境溫度在體感舒適度(大約18-25攝氏度)之外,則LED警報指示燈開始閃爍;否則關閉LED警報指示燈。

實現思路:開發板上電后,先進行必要的初始化,然后每隔1秒通過SHT30獲取當前環境的溫度和濕度;當溫度處于體感舒適度時關閉LED燈,否則改變LED燈的狀態(閃爍)。

有了實現思路就可以很輕松的畫出設計圖。

首先就是交互圖。交互圖可以幫助我們理清楚開發板與擴展板之間的關系,這是至關重要的,只有理清楚關系才可能從代碼層面出發,想明白先做什么再做什么。

[Py4OH]自制開源鴻蒙空氣質量監控系統(上)-開源基礎軟件社區

從上面的交互圖可以看出,在開發板一側需要一個程序變量代表擴展板上的SHT30傳感器,同時也需要一個程序變量代表擴展板上的LED燈。有了這兩個變量,就可以直接獲取溫度數據和濕度數據,并且可以輕松愉快的控制LED燈狀態了!!!

嗯,這是什么?同學們!!這是面向對象編程啊。

Py4OH使用的是Python語言進行設備開發,而Python語言完美支持面向對象編程啊!

這又能怎樣?這就可以簡化編程了!!

不信??來,看看下面的流程圖!

[Py4OH]自制開源鴻蒙空氣質量監控系統(上)-開源基礎軟件社區

整個流程圖描述的邏輯是非常簡單的,僅僅是表達了我們想做的東西。相信大家也看出來了,“簡單”是依賴于 th 和 light 所具備的能力,這兩個變量(對象)所對應的類型將SHT30與LED的復雜性及控制邏輯全部隱藏,使得它們變成了黑盒,我們只需要知道如何使用即可!

OK!鋪墊已經足夠,是時候展示真正的技術了!

import pin
import sht30
import gpio
import os

i2cx = 0   # SHT30是一種i2c設備,位于0號i2c上
freq = 400000  # i2c通信頻率
sda = gpio.make_id([0, 'A', 0])  # 計算sda所對應的引腳號
scl = gpio.make_id([0, 'A', 1])   # 計算scl所對應的引腳號

th = sht30.SHT30(i2cx, sda, scl, freq)   # 創建名為th的SHT30對象
th.open()  # 通過th對象打開SHT30設備

lpin = gpio.make_id([0, 'A', 2])  # 計算接入LED燈的引腳號

light = pin.Pin(lpin)  # 創建LED燈對象

while True :
    t = th.temperature()  # 獲取溫度數據
    h = th.humidity()      # 獲取濕度數據
    
    if t != None : 
        print('temperature = ' + str(t))
        
    if h != None : 
        print('humidity = ' + str(h))
        
    if (18 <= t) and (t <= 25) :
        light.low()      # 若當前溫度在體感舒適度范圍內,則關閉LED燈
    else :
        light.change() # 若當前溫度不在體感舒適度范圍內,則改變LED燈的狀態,即:閃爍
        
    os.sleep(1)

很明顯,LED燈不是第一次出現我的文章中,SHT30也不是!如果有同學對它們的驅動方式還不熟悉,可以參考我之前的兩篇帖子《使用Python開發鴻蒙設備程序(1-GPIO外設控制)》和《使用Python開發鴻蒙設備程序(2-I2C應用實例)》,在這里重點強調的是使用面向對象技術對它們進行封裝,增加代碼復用性。

要面向對象封裝,必須的,先定義接口!

'''
   This is just a demo for interface definition.
'''
class Pin:
    is_high = False   
    def __init__(self, pin_num):
        pass
        
    def high(self):
        # output 1
        self.is_high = True
        
    def low(self):
        # output 0
        self.is_high = False
        
    def status(self):
        return 1 if self.is_high else 0
        
    def change(self):
        if self.is_high:
            self.low()
        else:
            self.high()
            
    def __del__(self):
        pass

class SHT30:
    sht30_addr = 0x44
    write_cmd = (sht30_addr << 1) | 0x00
    read_cmd = (sht30_addr << 1) | 0x01

    def __init__(self, i2cx, sda, scl, freq):
        pass

    def open(self):
        pass
    
    def close(self):
        pass

    def temperature(self):
        return None

    def humidity(self):
        return None
        
    def __del__(self):
        pass

由于實現細節太多,大家可以在附件中直接下載完整代碼自行參考學習。

看到這,是不是覺得我有炒冷飯的嫌疑?!

又拿LED燈和SHT30溫濕度傳感器來寫水文!!

哈哈!如果你這么想,那么請看看標題,,,這只是《上》,還有《下》呢!!

下一篇文章,我會帶著大家將其它設備接入小凌派開發板,然后編程獲取當前環境的PM2.5和PM10數據,并在數據不理想時啟動直流電機(風扇)對空氣質量進行調整。

最后,給大家展示一下Py4OH命令行的輸出。

[Py4OH]自制開源鴻蒙空氣質量監控系統(上)-開源基礎軟件社區

To be continued...

文章相關附件可以點擊下面的原文鏈接前往下載:

https://ost.51cto.com/resource/2813

https://ost.51cto.com/resource/2814

https://ost.51cto.com/resource/2815

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2023-04-09 23:17:16

Python監控城市空氣

2021-03-19 16:40:56

智能家居物聯網

2021-06-29 12:00:57

傳感器物聯網空氣污染

2023-11-23 19:38:41

智慧城市廢物管理空氣質量

2019-01-02 08:41:57

物聯網空氣質量IOT

2021-12-09 23:09:05

物聯網安全技術

2022-11-15 11:30:34

物聯網空氣質量

2014-02-27 13:53:49

Birdi智能硬件霧霾

2021-01-22 15:38:24

物聯網IoT與低功耗廣域網

2021-07-15 13:25:37

物聯網養老院IOT

2018-11-21 14:09:31

可視化天氣霧霾

2021-06-16 11:18:22

物聯網建筑綜合癥IoT

2020-10-22 16:21:27

物聯網新冠肺炎IOT

2021-03-15 10:29:04

數據中心電子腐蝕突然故障

2021-03-10 11:08:20

物聯網城市智能

2016-09-28 14:07:53

2023-03-28 10:25:13

智慧城市物聯網

2018-08-16 08:40:50

空氣污染物聯網IOT

2018-02-07 11:41:12

微信

2022-03-31 06:38:36

集成物聯網環境監測物聯網
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲v日韩v综合v精品v | 日韩精品一区二区不卡 | 国产成人免费视频 | 91av在线视频观看 | 免费小视频在线观看 | 午夜免费av| 日韩在线观看 | 国产小视频在线看 | 久久噜噜噜精品国产亚洲综合 | 男女羞羞视频在线 | avhd101在线成人播放 | 国产精品久久久久无码av | 亚洲h视频| 中文字幕在线一区二区三区 | 国产综合精品 | 亚洲午夜视频在线观看 | 一二区视频| 欧美一级片黄色 | 日韩网站在线观看 | 婷婷综合激情 | 国产精品久久久久久久久久妞妞 | 欧美美女爱爱 | 一级片视频免费 | 亚洲高清视频在线观看 | 色综合一区二区 | 亚洲精品久久久久久国产精华液 | 日本三级电影在线看 | 久久久精彩视频 | 国产99久久精品一区二区永久免费 | 黄色一级免费 | 荷兰欧美一级毛片 | 天天射网站| 成人免费一区二区三区牛牛 | 蜜臀久久99精品久久久久久宅男 | www性色| 中文字幕一区在线观看视频 | 日日操av | 欧美精品在线视频 | 男人的天堂中文字幕 | 中文字幕在线看人 | 亚洲高清在线免费观看 |