1.系統功能git
監測土壤溼度、環境溫度、光照強度github
根據當前環境自動澆水,寒冷天氣自動加熱土壤get
2.所需元器件源碼
TPYBoard板子1塊it
光敏模塊1塊table
DS18B20模塊1塊ast
土壤溼度檢測模塊1塊import
杜邦線若干im
繼電器2個img
3. 接線方式
光敏模塊 | TPYBoard v102 |
VCC | 3.3V |
GND | GND |
A0 | Y12 |
土壤溼度檢測模塊 | TPYBoard v102 |
VCC | 3.3V |
GND | GND |
A0 | Y11 |
單獨的兩個引腳接到探測板上 |
DS18B20 | TPYBoard v102 |
VCC | 3.3V |
GND | GND |
DO | Y10 |
繼電器模塊1 (控制水閥加溼) | TPYBoard v102 |
VCC | VIN |
GND | GND |
IN | Y9 |
COM | VIN |
NO鏈接到電水閥 |
繼電器模塊2 (控制電熱線加熱) | TPYBoard v102 |
VCC |
VIN |
GND | GND |
IN | Y8 |
COM鏈接到220V家庭供電火線 | |
NO鏈接到加熱線其中一端 | |
加熱線另外一端鏈接到家庭供電零線 | |
接線完畢以後將main.py、boot.py、ds18x20.py、onewire.py導入TPYBoard v102 盤符便可運行。源碼
5.源代碼
from pyb import Pin, ADC from ds18x20 import DS18X20 gl = ADC(Pin('Y12')) #300亮-1700暗 sd = ADC(Pin('Y11')) #1800幹-800溼 wd = DS18X20(Pin('Y10')) ks = Pin('Y9', Pin.OUT_PP) jr = Pin('Y8', Pin.OUT_PP) while True: print('\t光照強度:',gl.read(),'\t土壤溼度:',sd.read(),'\t當前溫度:',wd.read_temp()) pyb.delay(200) if gl.read()<=250 : #陽光充足 if sd.read()>800 : #多澆水 ks.value(1) else : ks.value(0) elif gl.read()>=1300 : #陽光不足 if sd.read()>1200 : #少澆水 ks.value(1) else : ks.value(0) else : #陽光通常 if sd.read()>1000 : #正常澆水 ks.value(1) else : ks.value(0) if wd.read_temp()<18 : #溫度太低 jr.value(1) else : jr.value(0)