跳至主要内容

建立一個夜燈 - 虛擬物聯網硬體

在本課程的這部分,你將在虛擬物聯網設備中添加一個LED,並使用它來創建一個夜燈。

虛擬硬體

夜燈需要一個在CounterFit應用程式中創建的致動器。

這個致動器是一個LED。在實體物聯網設備中,它將是一個發光二極管,當電流通過時會發光。這是一個數位致動器,具有兩種狀態,開和關。發送值1會打開LED,發送值0會關閉它。

夜燈邏輯的偽代碼如下:

Check the light level.
If the light is less than 300
Turn the LED on
Otherwise
Turn the LED off

將致動器添加到CounterFit

要使用虛擬LED,你需要將其添加到CounterFit應用程式中

任務 - 將致動器添加到CounterFit

將LED添加到CounterFit應用程式中。

  1. 確保CounterFit網頁應用程式正在運行,這是本作業前一部分的要求。如果沒有運行,啟動它並重新添加光傳感器。

  2. 創建一個LED:

    1. Actuator窗格的Create actuator框中,點擊Actuator type下拉框並選擇LED

    2. Pin設置為5

    3. 選擇Add按鈕在引腳5上創建LED

    LED設置

    LED將被創建並出現在致動器列表中。

    創建的LED

    一旦創建了LED,你可以使用Color選擇器更改顏色。選擇顏色後,點擊Set按鈕更改顏色。

編程夜燈

現在可以使用CounterFit光傳感器和LED編程夜燈。

任務 - 編程夜燈

編程夜燈。

  1. 在VS Code中打開你在本作業前一部分中創建的夜燈項目。如果需要,終止並重新創建終端以確保它正在使用虛擬環境運行。

  2. 打開app.py文件

  3. 將以下代碼添加到app.py文件中以導入所需的庫。這應該添加到頂部,其他import行的下方。

    from counterfit_shims_grove.grove_led import GroveLed

    from counterfit_shims_grove.grove_led import GroveLed語句從CounterFit Grove shim Python庫中導入GroveLed。該庫包含與CounterFit應用程式中創建的LED交互的代碼。

  4. light_sensor聲明之後添加以下代碼以創建管理LED的類的實例:

    led = GroveLed(5)

    led = GroveLed(5)行創建了一個連接到引腳5GroveLed類的實例 - 這是CounterFit Grove引腳,LED連接到該引腳。

  5. while循環內,time.sleep之前添加一個檢查以檢查光線水平並打開或關閉LED:

    if light < 300:
    led.on()
    else:
    led.off()

    此代碼檢查light值。如果該值小於300,則調用GroveLed類的on方法,該方法向LED發送數字值1,打開LED。如果光線值大於或等於300,則調用off方法,發送數字值0關閉LED。

    💁 此代碼應該與print('Light level:', light)行縮進到相同級別,以便在while循環內!

  6. 從VS Code終端運行以下命令以運行你的Python應用程式:

    python3 app.py

    光線值將輸出到控制台。

    (.venv) ➜  GroveTest python3 app.py 
    Light level: 143
    Light level: 244
    Light level: 246
    Light level: 253
  7. 更改ValueRandom設置以使光線水平在300以上和以下變化。LED將會打開和關閉。

當光線水平變化時,CounterFit應用程式中的LED開啟和關閉

💁 你可以在code-actuator/virtual-device文件夾中找到此代碼。

😀 你的夜燈程式成功了!