💡 划重点

  • 夜间智能驱赶:利用LDR光敏电阻检测环境光线,只在夜晚自动激活保护模式,白天设备休眠,极致省电。
  • 精准感应:采用PIR人体红外传感器,覆盖120°锥形区域,锁定中小型动物入侵,误报率低。
  • 双重驱离:高频蜂鸣器发出2.2kHz-4.5kHz变频刺耳声波,同时高亮LED阵列瞬间爆闪,形成听觉与视觉双重威慑。
  • 成本可控:全部物料控制在55元以内,单个设备可守护2-3亩果园,极具推广价值。
  • 远程可管:基于ESP32内建WiFi,可将触发次数、电池电压等数据上报至手机或云平台,无人值守时也能掌控果园动态。

需求洞察

目标用户

真实痛点

  1. 果实损失惨重:果园夜间常遭獾、豪猪、野兔、果子狸等动物入侵,成熟期一夜间可摧毁数十棵果树,直接经济损失上千元。
  2. 传统手段效果差:稻草人、反光带很快被动物适应;养狗看护成本高、夜间巡查辛苦;围网造价高昂且易被破坏。
  3. 用电困难:多数果园未覆盖稳定市电,长距离拉线成本高且不安全,急需电池或太阳能供电方案。
  4. 误伤保护动物:电网或夹子可能伤害国家保护动物,面临法律风险,无物理伤害的声音和光线驱赶是唯一合规路径。

为什么值得做

果园夜间驱赶器直击果农核心痛点,成本仅一杯咖啡的价格,却能挽回数万元损失。ESP32方案自带联网能力,未来可接入农业物联网平台,采集动物活动规律数据,辅助农户制定精准防范策略。从技术可行性与市场空缺看,这是一个需求真实、回报清晰的硬件小微项目。

方案设计

感知层

控制层

- 休眠态:白天LDR判定光照充足,关闭PIR中断,buzzer和LED阵列断电,仅ESP32深度睡眠,间隔30秒唤醒一次检查光线。

- 警戒态:夜晚降临,ESP32唤醒并对GPIO13使能外部中断,PIR一旦检测到红外变化,立即进入驱赶态。

- 驱赶态:PWM驱动buzzer发出变频声波,同时GPIO27驱动MOS管控制LED阵列爆闪(占空比50%,闪烁间隔300ms),持续5秒,然后将触发事件记录并上报,最后回到警戒态。

执行层

日志与联网层

物料清单

序号 物料名称 数量 用途 估算单价(元) 小计(元)
1 ESP32-WROOM-32开发板 1 主控核心 18.00 18.00
2 HC-SR501 PIR传感器模组 1 动物红外检测 5.00 5.00
3 光敏电阻传感器模块(带比较器) 1 环境光检测 3.50 3.50
4 有源高频蜂鸣器 (3-24V) 1 声波驱赶 2.00 2.00
5 1W白光LED (带20mm聚光杯) 3 爆闪光源 2.50 7.50
6 AO3400 N-MOS管模块 1 LED驱动开关 1.00 1.00
7 5V升压模块 (MT3608) 1 电池升压至5V供LED 1.80 1.80
8 18650锂电池 2500mAh 1 系统供电 10.00 10.00
9 TP4056锂电池充电模块 1 电池充电管理 1.50 1.50
10 洞洞板、排针、电阻电容、导线 连接与固定 3.70 3.70
11 防水接线盒 1 外壳防护 1.00 1.00
合计 54.00

注:成本符合55元预算,未计入太阳能板,可后期升级。

接线与结构

接线定义

结构组装

所有元件焊接在洞洞板上,PIR传感器和LDR从接线盒侧面开孔伸出并用密封胶防水。蜂鸣器内置,开透声孔。LED阵列安装在盒子正面并加装聚光杯。电池仓单独隔离。整体固定在果园树干或竹竿上,离地1.2-1.5米,面向重点防护区域。

核心代码


# 使用MicroPython固件,开发环境:Thonny或VSCode+mpy插件
import time, network, ntptime

# 引脚定义
PIR_PIN = 13
LDR_PIN = 34
BUZZER_PIN = 25
LED_PIN = 27

# 阈值
LIGHT_THRESHOLD = 2000  # ADC值,约0.8V,根据实际校准

# 初始化设备
pir = Pin(PIR_PIN, Pin.IN)
ldr = ADC(Pin(LDR_PIN))
ldr.atten(ADC.ATTN_11DB)  # 量程0-3.3V
buzzer = PWM(Pin(BUZZER_PIN), freq=2200, duty=0)
led = Pin(LED_PIN, Pin.OUT)

# 网络配置(SSID和密码需修改)
WIFI_SSID = "Orchard_WiFi"
WIFI_PASS = "12345678"
MQTT_BROKER = "test.mosquitto.org"
TOPIC = b"orchard/event"

def connect_wifi():
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        for _ in range(10):
            if wlan.isconnected():
                break
            time.sleep(1)
    return wlan.isconnected()

def sync_time():
    try:
        ntptime.settime()
    except:
        pass

def log_event(count):
    if connect_wifi():
        client = MQTTClient("orchard_driver", MQTT_BROKER)
        client.connect()
        client.disconnect()

def drive_away():
    event_count = 0
    for _ in range(5):  # 持续5秒
        # 变频蜂鸣器
            buzzer.freq(freq)
            buzzer.duty(512)  # 50%占空比
        # LED爆闪
        led.value(1)
        time.sleep(0.15)
        led.value(0)
        time.sleep(0.15)
        event_count += 1
    buzzer.duty(0)
    led.value(0)
    # 记录日志并上报
        f.write("{}\n".format(time.time()))
    log_event(event_count)

# 主循环
sync_time()
# 安装中断,下降沿或上升沿触发均可,HC-SR501重复触发模式
pir.irq(trigger=Pin.IRQ_RISING, handler=lambda p: drive_away())

while True:
    light_val = ldr.read()
    if light_val < LIGHT_THRESHOLD:
        # 夜晚使能中断
        # 中断已开启,此处可进入轻度睡眠节省功耗
        time.sleep(0.5)
    else:
        # 白天失能中断,LED和蜂鸣器不工作
        pir.irq(handler=None)
        buzzer.duty(0)
        led.value(0)
        time.sleep(30)  # 30秒检测一次光线

调试步骤

  1. 模块单独测试:使用USB线供电,在REPL下读取LDR值和PIR状态,确认光敏模块遮挡后ADC值变化,PIR在人体移动时输出高电平。
  2. 蜂鸣器调频:固定占空比512,手动设置freq从1000Hz到5000Hz,耳朵听声音变化,选择刺耳频段。记录动物最敏感的频点,微调代码中的扫频区间。
  3. LED驱动检测:用万用表测量GPIO27输出3.3V时,升压模块5V输出是否导通,LED两端电压及亮度正常。
  4. 夜晚模拟:用黑胶带遮住LDR,观察系统是否自动解除PIR中断屏蔽,靠近传感器后蜂鸣器响起、LED闪烁。撤离后是否恢复警戒。
  5. 连网上报:修改WiFi信息,重启设备。触发一次,查看MQTT服务器(或Blynk)是否收到事件计数。
  6. 整机功耗评估:串联电流表,记录深睡、警戒、驱赶三种状态的平均电流,估算单节18650续航天数,确定是否需要添加太阳能充电板。

设计图

果园夜间动物驱赶器结构flow
1
感知输入
2
控制处理
3
执行反馈
4
数据上报