使用LoRaWAN的智能水位和洪水警报系统
扫描二维码
随时随地手机看文章
水位监测及洪水预警系统(基于环境因素)
目的:
•监测降水(雨)和大气压,作为潜在洪水或水位变化的关键指标。
•通过The Things Stack使用LoRaWAN进行长距离无线传输数据,非常适合偏远地区,如河流、水库或农村地区。
•对可能导致洪水的情况发出早期预警,以便采取积极的应对措施。
•在云平台上可视化数据,以便进行持续监控和趋势分析。
先决条件:
•Arduino (C/ c++)编程基础。
•电子学和传感器的基本概念。
•熟悉Arduino IDE或PlatformIO开发环境。
•了解LoRaWAN通信和物栈操作。
•云物联网平台基础知识。
所需材料和软件:
硬件:
•WISBLOCK基础:RAK19007基础板轮缘Gen
•WISBLOCK核心:RAK3172 STM32WL5(集成LoRaWAN)
•WISBLOCK传感器:
•RAK12030雨水传感器
•BME680环境传感器(用于大气压力、温度和湿度)
•DS18B20温度传感器(如果浸入保护管中,用于环境温度或水温)
•WISBLOCK杂项:
•RAK1921 OLED显示器(可选,用于调试和本地读取)
•其他组件/配件:
•WisGate Edge Lite 2 (LoRaWAN网关)
•电池连接器电缆
•太阳能电池板连接器
•太阳能电池板
•螺丝刀
软件:
•Arduino IDE或PlatformIO
•用于RAK模块的Arduino库(例如RAKwireless_RAK3372_BSP)和用于传感器的特定库(例如Adafruit_BME680, dallasttemperature, OneWire, Adafruit_SSD1306, Adafruit_GFX)。
•RAK7268V2网关配置软件。
•在The Things Stack(用于LoRaWAN网络)和用于可视化和警报的云物联网平台上的帐户。
•预计持续时间:8-12小时。
学习成果:
•能够设计以自然灾害预防为重点的环境监测系统。
•能够解释与洪水风险相关的降水和大气压力数据。
•掌握LoRaWAN通信在潜在的挑战环境(例如,农村,障碍)使用物栈。
•具备配置关键警报和实时决策可视化数据的知识。
•有在户外部署物联网设备的经验,考虑水保护和能源自主。
设置和实现步骤:
•硬件组装:将RAK3372 (Core)模块连接到RAK1907 (Base Board)模块。连接传感器(雨传感器,BME680, DS18B20)和OLED显示器(如果使用)。连接电池电缆和太阳能板。
•开发环境配置:安装Arduino IDE/PlatformIO,支持RAK3372板。为传感器和OLED安装必要的库。
节点编程(RAK3372):
•编写代码从雨传感器读取数据(雨滴检测,或强度估计,如果传感器允许)。
•从BME680读取大气压力(快速的压力下降可能表示低压系统,因此表明恶劣天气和可能的强降雨)。
•从DS18B20读取温度。
•执行逻辑以侦测洪水风险情况(例如,在一段时间内持续降雨,快速和持续的压力下降)。
•将RAK3372配置为LoRaWAN节点,定期发送数据,并在检测到风险情况时发送告警信息。
•实现低功耗模式(深度睡眠),以最大限度地延长电池寿命。
•网关配置(RAK7268V2):将网关接入网络,配置为与the Things Stack相连。
Things栈配置:
•进入Things Stack控制台。
•注册网关:添加RAK7268V2网关。
•创建应用程序:创建新的应用程序。
•注册设备(RAK3372节点):使用其LoRaWAN凭据注册设备。
•配置有效负载格式化器(解码器):编写Javascript代码来解码传感器有效负载。
•配置警报集成:向物联网平台或通知服务添加集成(例如,“Webhook”或“MQTT”)以接收洪水警报。
•测试与部署:在真实环境中测试系统,模拟降雨,观察压力变化。确保所有部件都安装在防水外壳内,并确保雨敏传感器正确外露。
挑战和故障排除提示:
•洪水数据解释:将传感器读数与实际洪水风险相关联可能需要更先进的数据分析和该地区的水文知识。考虑与外部气象数据集成。
•防水:如果部署在户外和靠近水源,所有电子元件必须在一个完全防水的外壳中(IP67或更高)。雨水传感器必须设计为室外使用。
•雨水传感器维护:雨水传感器可能需要定期清洗,以防止污垢或碎片的积累,影响精度。
•网络可靠性:确保LoRaWAN通信在恶劣天气条件下(雨、风)是稳健的,并且网关有一个最佳的位置。
评估标准:
•该系统精确监测降水和大气压力。
•当满足预先设定的条件时,会迅速而可靠地发出洪水风险警报。
•数据在云平台上清晰可视化,允许有效监控。
•该装置对环境条件具有抵抗性,并在监测期间利用太阳能自主运行。
•代码健壮、高效,警报逻辑也很有效。
本文编译自hackster.io