简短指南如何使用 W5100S-EVB-Pico 和 Micropython 为您的植物创建监控设备

转发: How to monitor your plant with W5100S-EVB-Pico
项目介绍
介绍
室内植物需要定期护理,当您全神贯注于办公桌前工作时,很容易忽视它们。 我们的办公室里有一株美丽的植物。 没有人知道它叫什么以及如何维护它,所以我称它为布卢明顿夫人,并尝试制作一种设备来帮助我们照顾它。 该项目将展示 W5100S-EVB-Pico 如何在这种情况下提供帮助。
土壤水合作用传感器测量土壤的电导率,并通过电压信号将这些数据转发给 Raspberry Pi Pico W 等设备。 该电压由模拟 GPIO 引脚捕获,并将其转换为 0 到 65535 的范围。较低的值表示土壤干燥,然后可以作为发送警报的提示。
连接事物
设置非常简单。 土壤水合作用传感器连接到三个 GPIO 引脚。 最初的两个引脚(3V3 电源和 GND)为传感器提供必要的电源。
第三个引脚称为“信号”,用作将值传输到 Raspberry Pi Pico 的输出。 然后,相关 GPIO 将传输的电压解释为 0 到 65535 范围内的值。代码随后利用该值来确定工厂的水需求。
以下是土壤水合传感器的连接方式。
| 传感器 | W5100S-EVB-Pico |
| VCC | 3V3 (引脚 36) |
| GND | 任何 GND 引脚 |
| 信号 | GP26 |
设置 Telegram 机器人
创建 Telegram 机器人是一个简单的过程。
- 登录您的 Telegram 帐户
- 与 BotFather 建立聊天
- 使用 /newbot 命令创建一个新机器人并按照屏幕说明进行操作
- 保存您的 API 密钥
- 在 Telegram 中,使用 IDBot 创建新聊天并使用 /getid 命令询问您的 ID。
代码
- 下载 W5100S-EVB-Pico 的最新 Micropython 固件并将其复制到开发板上
- 创建一个新文件并从此处复制内容用于统计模块
https://raw.githubusercontent.com/rclisttete/MicroPython_Statistics/master/statistics.py - 创建另一个文件作为主文件
我们来一步步检查一下代码
1.导入所需模块
from usocket import socket
from machine import Pin,SPI, ADC
import network
import time
import statistics
import urequests
2. 复制您的 Telegram API 令牌和聊天 ID
API = "YOUR TOKEN HERE"
ID = "YOUR CHAT ID HERE"
sensor = ADC(Pin(26))
3. w5x00_init 函数将初始化以太网设置
def w5x00_init():
spi=SPI(0,2_000_000, mosi=Pin(19),miso=Pin(16),sck=Pin(18))
nic = network.WIZNET5K(spi,Pin(17),Pin(20)) #spi,cs,reset pin
nic.active(True)
#None DHCP
nic.ifconfig(('192.168.11.40','255.255.255.0','192.168.11.1','8.8.8.8'))
#DHCP
#nic.ifconfig('dhcp')
print('IP address :', nic.ifconfig())
while not nic.isconnected():
time.sleep(1)
print(nic.regs())
四、主要功能
创建一个空数组“读数”。 我们将在这里存储多个值:
readings = []
5. 创建 try 和 while 循环
try:
while True:
6. 使用 for 循环,我们将从土壤湿度传感器读取值并附加数组。 读取间隔为 1 秒。
for i in range(5):
reading = sensor.read_u16()
readings.append(reading)
print(readings)
time.sleep(1)
7.使用统计模块,我们将计算median_value
median_value = statistics.median(readings)
8. 使用条件语句,消息将使用 urequests 发送到 Telegram 聊天室。 这里需要有步骤 1 中记下的令牌和聊天 ID。
if median_value < 40000:
urequests.get("https://api.telegram.org/bot"+API+"/sendMessage?text=Lady Bloomington is thirsty&chat_id="+ID)
print("Message Sent")
else:
print("Lady Bloomington has enough water")
9. 将代码保存为开发板上的main.py,开发板上电后会自动运行。
由于我不知道我们办公室的工厂所需的湿度水平是多少,因此我将中值比较值设置为 40000。
运行代码后,我收到如下 Telegram 消息:

对于下一个项目,我将首先确定植物并向 ChatGPT 询问适当的湿度水平。 希望人工智能服务可以帮助我更好地照顾我们的植物。

文件

被折叠的 条评论
为什么被折叠?



