kylinpoet 发表于 2025-5-12 16:02:17

Beetle 树莓派RP2350--试用测评2:基于面包板的软硬件交互

【一、项目简介】

书接上回:Beetle 树莓派RP2350--试用测评之使用文档101及LLM使用二三事 ,单单薅板载 LED 的羊毛,显得不够大气。这回给板子焊上排针,拿出尘封10年的面包板,做一个软硬件交互。因为桌上最先能拿到的传感器、执行器是dht11温湿度传感器和一个LED 灯珠,我们就用这两个设备来开始今天的交互之旅。

【二、项目过程】

1. LED 电灯启航

虽然木子姐姐强调不能点灯帖,但帖子里点灯还是需要的,我们按照线路图练好杜邦线。先亮个灯:



from machine import Pin
import time

# 初始化内置LED引脚
# 在大多数MicroPython板上,内置LED通常连接到特定引脚
# 例如ESP32上常用Pin(2),ESP8266上常用Pin(2)或Pin(16)
# 树莓派Pico上通常是Pin(25)
# 请根据您的实际开发板调整引脚号
led = Pin(18, Pin.OUT)# 创建输出引脚对象,引脚号需要根据您的开发板调整

# 主循环函数,相当于Arduino的loop()
def main():
    while True:
      led.value(1)    # 输出高电平,点亮LED灯
      time.sleep(1)   # 延时一秒钟
      led.value(0)    # 输出低电平,熄灭LED灯
      time.sleep(1)   # 延时一秒

# 程序入口
if __name__ == '__main__':
    main()

如期闪烁,线路一切正常。

2. DHT11的助攻:

现在接上我们的 DHT11 温湿度传感器,看看是不是也能正常工作:

import machine
import dht
import time

# 初始化DHT11传感器(数据引脚连接到GPIO2)
d = dht.DHT11(machine.Pin(4))

def read_dht11():
    try:
      # 触发传感器测量
      d.measure()
      
      # 读取温度和湿度
      temp = d.temperature()# 温度(摄氏度)
      humi = d.humidity()   # 湿度(百分比)
      
      print("温度: {:.1f}°C, 湿度: {:.1f}%".format(temp, humi))
      
    except Exception as e:
      print("读取传感器失败:", e)

# 每隔2秒读取一次数据
while True:
    read_dht11()
    time.sleep(2)


执行正常。

3. 来自需求的联动

很明显,独立的个体不是我们所倡导的。现在让我们把这两个设备一同连在面板板上,做一个交互:
当温湿度超出一定范围时,让灯亮起来。当作报警的一个执行件,当然代码这种事情,是要交给 LLM 的。


LLM 给出的代码相当正确:
import machine
import dht
import time

# 初始化DHT11传感器(数据引脚接GPIO4)
dht_sensor = dht.DHT11(machine.Pin(4))

# 初始化LED(接GPIO18,假设低电平点亮)
led = machine.Pin(18, machine.Pin.OUT)
led.value(0)# 默认关闭LED

def read_dht11():
    try:
      # 触发传感器测量
      dht_sensor.measure()
      
      # 读取数据
      temp = dht_sensor.temperature()# 温度(℃)
      humi = dht_sensor.humidity()    # 湿度(%)
      
      print("温度: {:.1f}°C, 湿度: {:.1f}%".format(temp, humi))
      
      # 湿度>80%时点亮LED,否则关闭
      if humi > 35:
            led.value(1)# 点亮LED(根据实际电路可能是0或1)
            print("警告:湿度过高!")
      else:
            led.value(0)# 关闭LED
      
    except Exception as e:
      print("传感器读取失败:", e)
      led.value(0)# 确保异常时关闭LED

# 主循环
while True:
    read_dht11()
    time.sleep(2)# 每2秒读取一次
当我们,把手指放上去的时候,事就这样成了!



【三、项目总结】

1. 果然面包板还是大爷。第一次测试的时候,死活读不到DHT11数据。怀疑过针脚有没有虚焊、怀疑过面包板是否损坏、怀疑过DHT11模块问题,但最终换了杜邦线就好;
2. 还是需要扩展版,毕竟要进行可穿戴设计的时候,面包板略显厚重;
3. mpy + RPi 确实提高生产力;
4. 对于这块板子的其它性能测试,有待后续跟进。论坛里看到有一帖是测试CPU的还不错,要学习下。现在的疑问是:RP2350 的双CPU设计优势在哪里?
页: [1]
查看完整版本: Beetle 树莓派RP2350--试用测评2:基于面包板的软硬件交互