Grow light timer ・ 植物补光控制
M5Stack Core2と4チャンネルリレーユニットを使って、タイマーで育成ライトをON/OFF制御します。
この構成をエディタで開く・編集する →| 部品 | 役割 | ポート | リンク・価格 |
|---|---|---|---|
| M5Stack Core2 | Controller | grove_i2c, grove_analog, grove_uart, mbus | official page — $46.9 |
| Unit 4Relay | 4-channel relay | grove_i2c | official page — $12.95 |
M5Stack Core2と4チャンネルリレーユニットで作る、タイマー制御の育成ライトです。リレーユニットがI2Cで制御され、設定した時間にライトをオン/オフします。Core2の内蔵RTCを使って正確なタイミングを実現します。
# M5Stack Core2 + Unit 4Relay (timer-controlled grow light)
# Wiring: Unit 4Relay -> Core2 red Port.A (I2C)
import time
from machine import Pin, I2C
from m5stack import lcd, rtc
# I2C setup for Port.A (I2C bus)
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=100000)
# Unit 4Relay I2C address (default 0x26)
RELAY_ADDR = 0x26
def relay_write(channel, state):
"""Set relay channel (1-4) to state (0=off, 1=on)"""
if channel < 1 or channel > 4:
return
# Command: 0x01 for channel 1, 0x02 for channel 2, etc.
cmd = 1 << (channel - 1)
if state:
i2c.writeto(RELAY_ADDR, bytes([cmd]))
else:
i2c.writeto(RELAY_ADDR, bytes([0x00]))
# Timer settings (24-hour format)
ON_HOUR = 7 # turn on at 7:00
OFF_HOUR = 19 # turn off at 19:00
# Initialize RTC (assumes time is set via USB or NTP)
rtc = rtc.RTC()
# Start with relay off
relay_write(1, 0)
while True:
now = rtc.datetime()
hour = now[4] # hour in 24h format
minute = now[5]
# Determine if light should be on
if ON_HOUR < OFF_HOUR:
light_on = (ON_HOUR <= hour < OFF_HOUR)
else: # overnight case (e.g., on at 22, off at 6)
light_on = (hour >= ON_HOUR or hour < OFF_HOUR)
# Update relay
relay_write(1, 1 if light_on else 0)
# Display status
lcd.clear()
lcd.print('Time: %02d:%02d' % (hour, minute), 10, 20)
lcd.print('Light: ' + ('ON' if light_on else 'OFF'), 10, 60)
time.sleep(30) # check every 30 seconds
この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。
この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。
エディタで開く →UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。