树莓派 Pico W IoT 项目:智能植物监测系统(使用OLED屏幕)

一.硬件准备

  • 树莓派 Pico W
  • 土壤湿度传感器
  • 温度传感器(例如 DS18B20)
  • 光照传感器(例如 BH1750)
  • OLED 显示屏(例如 SSD1306)
  • 面包板和连接线

二.软件准备

  • MicroPython 固件(已经在之前的步骤中安装)
  • Thonny IDE(已经在之前的步骤中安装)
  • 连接 Wi-Fi 的代码(已经在之前的步骤中编写)

见《树莓派Pico W的wifi模块配置与简单实战》

三、项目步骤

  1. 连接硬件
  • 将土壤湿度传感器的 VCC 接 Pico W 的 3.3V,GND 接 Pico W 的 GND,数据引脚接 Pico W 的一个 ADC 引脚(例如 ADC0)。
  • 将 DS18B20 温度传感器的 VCC 接 Pico W 的 3.3V,GND 接 Pico W 的 GND,数据引脚接 Pico W 的一个 GPIO 引脚(例如 GPIO 16)。
  • 将 BH1750 光照传感器的 VCC 接 Pico W 的 3.3V,GND 接 Pico W 的 GND,SCL 和 SDA 分别接 Pico W 的 I2C 引脚(SCL 接 GPIO 17,SDA 接 GPIO 16)。

    2.安装所需库

在Thonny IDE上写入以下code。

8a489b955298446181e7ce653ba22ac8.jpg

    3.编写代码

编写代码来读取土壤湿度传感器、DS18B20 温度传感器和 BH1750 光照传感器的数据,显示在 OLED 屏上,并上传到云服务。

import network

import urequests as requests

import time

from machine import Pin, ADC, I2C

import ds18x20

import onewire

import bh1750

import ssd1306

 

ssid = 'your_SSID' # 替换为你的 Wi-Fi 名称

password = 'your_password' # 替换为你的 Wi-Fi 密码

api_key = 'your_thingspeak_api_key' # 替换为你的 ThingSpeak API 密钥

 

# 连接到 Wi-Fi

wlan = network.WLAN(network.STA_IF)

wlan.active(True)

wlan.connect(ssid, password)

 

print("Connecting to Wi-Fi", end="")

while not wlan.isconnected():

    print(".", end="")

    time.sleep(1)

print("\nConnected to Wi-Fi")

print("Network config:", wlan.ifconfig())

 

# 初始化传感器

adc = ADC(Pin(26)) # 土壤湿度传感器接 ADC0

ow = onewire.OneWire(Pin(16)) # DS18B20 数据引脚接 GPIO16

ds = ds18x20.DS18X20(ow)

i2c = I2C(0, scl=Pin(17), sda=Pin(16)) # BH1750 和 OLED 接 I2C0

light_sensor = bh1750.BH1750(i2c)

oled = ssd1306.SSD1306_I2C(128, 64, i2c)

 

# 搜索 DS18B20 传感器

roms = ds.scan()

print('Found DS devices: ', roms)

 

while True:

    # 读取土壤湿度

    soil_moisture = adc.read_u16()

    # 读取温度

    ds.convert_temp()

    time.sleep_ms(750)

    temp = ds.read_temp(roms[0])

    # 读取光照强度

    light_intensity = light_sensor.luminance(bh1750.BH1750.CONT_HIRES_1)

 

    # 显示数据在 OLED 上

    oled.fill(0)

    oled.text('Soil: {}'.format(soil_moisture), 0, 0)

    oled.text('Temp: {}C'.format(temp), 0, 20)

    oled.text('Light: {}lx'.format(light_intensity), 0, 40)

    oled.show()

 

    print('Soil Moisture: {}, Temperature: {}°C, Light Intensity: {} lux'.format(soil_moisture, temp, light_intensity))

 

    # 上传数据到 ThingSpeak

    url = 'https://api.thingspeak.com/update?api_key={}&field1={}&field2={}&field3={}'.format(api_key, soil_moisture, temp, light_intensity)

    response = requests.get(url)

    print(response.text)

 

    # 每 15 秒上传一次数据

    time.sleep(15)

2.保存这个.py文件于pico w上

四、运行项目

  1. 确保树莓派 Pico W 已连接到电脑并打开 Thonny IDE。
  2. 在 Thonny IDE 中打开并运行代码。
  3. 观察 Thonny IDE 的 Shell 窗口(底下的)输出,确认土壤湿度、温度和光照强度数据被成功读取并显示在 OLED
  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值