Quakesense
Quakesense项目是一种开源地震和环境监测系统,该系统由低功率和低成本的物联网网络组成,由能量自主传感器节点制成,通过能量收集系统供电,并连接到恒星拓扑中的网关。
该项目基于两种新兴的物联网技术,即MQTT和Lora,这是最有前途的低功率广泛区域网络(LPWAN)技术之一,可在覆盖范围,当前消耗,有效载荷,带宽和数据速率之间提供良好的妥协。
通过专用的基于Web的接口,将收集的数据提供给用户,从而可以实时监视地震事件和环境参数。
项目暗示
Quakesense项目的主要组成部分是:一个或多个传感器节点,单渠道Lora Gateway和IoT Cloud平台。
组件描述
传感器节点
每个传感器节点由以下组件组成:
- STM32 Nucleo F401RE开发板基于STM32F401RE 84 MHz ARM Cortex-M4 MCU,带有浮点单位(FPU),512 kb的闪存和96 kb的SRAM
- STM32F401RE的数据表:http://www.st.com/resource/en/datasheet/stm32f401re.pdf)
- X-Nucleo-iks01a2运动MEMS和环境传感器扩展板包括:
- LSM6DSL:MEMS 3D加速度计和3D陀螺仪
- 数据表:http://www.st.com/resource/en/datasheet/lsm6dsl.pdf
- LSM303AGR:MEMS 3D加速度计和磁力计
- 数据表:http://www.st.com/resource/en/datasheet/lsm303agr.pdf
- LPS22HB:MEMS压力传感器
- 数据表:http://www.st.com/resource/en/datasheet/lps22hb.pdf
- HTS221:电容性数字相对湿度和温度传感器
- 数据表:http://www.st.com/resource/en/datasheet/hts221.pdf
- Dragino Lora/GPS盾牌包括:
- RFM95W 137 MHz至1020 MHz低功率,远程Lora RF收发器
- 数据表:http://www.hoperf.com/upload/rf/rfm95_96_96_97_98w.pdf
- Quectel L80 GPS模块基于Mediatek MTK MTK MTK MTK MT339在芯片上多合一的GPS系统(SOC)
- 数据表:https://www.quectel.com/uploadimage/downlad/l80_hardware_design_v1.1.pdf
- 与之连接的种子工作室太阳能充电器盾牌v2.2:
- Adafruit 2000 mah Lipo电池
- 数据表:https://cdn-shop.adafruit.com/datasheets/liion2000mah37v.pdf
- Seeed Studio 1.5 W太阳能电池板
- 数据表:http://wiki.seeedstudio.com/1.5w_solar_panel_81x137/
默认情况下,每个传感器节点以低功率模式运行。在此配置中,STM32 MCU以停止模式运行(MCU被停止并关闭时钟,但是SRAM和寄存器内容保留),GPS模块处于始终集结模式(一种智能节能模式,允许GPS模块可以根据环境和动作的方式适应并自动适应lorRora模型,以适应全部适应,并自动地稳定下来。
当发生地震事件时,加速度计会生成与唤醒事件相关的中断,并且节点开始在运行模式下运行,从而使STM32 MCU和GPS模块完全在模式下唤醒GPS模块,而Lora模块则将其放置在发送模式。如果3个加速度组件中的至少一个超过参考阈值,则会发生唤醒事件(水平成分为50 mg,垂直成分为1120 mg)。
一旦处于运行模式,传感器节点就会开始读取和记录加速度数据以计算包围的持续时间,该持续时间定义为加速度阈值的第一个和最后一个超过峰值之间的时间间隔,以及峰值接地加速度(PGA)的3个组件,定义为绝对值的最大加速度振幅。得益于GPS模块,计算出的强度参数也将是地理参考的,因此将最终发送到网关的纬度,经度,高度,日期和时间参数添加到Lora数据包中。
节点的基线行为可以预见到通过LPS222HB和HTS221 MEMS传感器对环境参数(温度,相对湿度和压力)进行周期性监测(温度,相对湿度和压力)。
网关
单渠道Lora网关由以下组件组成:
- B-L475E-IOT01A2 STM32L4 Discovery套件以:
- STM32L475VG:超低功率臂皮层MCU,其中包括浮点单元(FPU),1 MB的闪存和128 kb的SRAM
- 数据表:http://www.st.com/resource/en/datasheet/stm32l475vg.pdf
- Inventek ISM43362-M3G-L44:Wi-Fi模块(802.11 b/g/n)
- 数据表:http://www.inventeksys.com/wp-content/uploads/ism43362_m3g_l44_functional_spec
- SPSGRF-868:Sub-GHz(868 MHz)低功率RF模块
- 数据表:http://www.st.com/resource/en/datasheet/spsgrf.pdf
- spbtle-rf:蓝牙v4.1模块
- 数据表:http://www.st.com/resource/en/datasheet/spbtle-rf.pdf
- M24SR64-Y:动态NFC标签,包括印刷NFC天线
- 数据表:http://www.st.com/resource/en/datasheet/m24sr64-y.pdf
- HTS221:电容性相对湿度和温度传感器
- 数据表:http://www.st.com/resource/en/datasheet/hts221.pdf
- LSM303AGR:MEMS 3D加速度计和MEMS 3D磁力计
- 数据表:http://www.st.com/resource/en/datasheet/lsm303agr.pdf
- LSM6DSL:MEMS 3D加速度计和MEMS 3D陀螺仪
- 数据表:http://www.st.com/resource/en/datasheet/lsm6dsl.pdf
- LSP22HB:260-1260 HPA绝对数字输出晴雨表
- 数据表:http://www.st.com/resource/en/datasheet/lps22hb.pdf
- Dragino Lora Shield包括:
- 基于SX1276的RFM95W低功率,远程LORA RF收发器
- 数据表:http://www.hoperf.com/upload/rf/rfm95_96_96_97_98w.pdf
网关在功能上负责接收传感器节点发送的数据包,解析包封的值并通过MQTT协议将其转发到Adafruit IO平台。
网关还处理数据包的完整性:每次收到新数据包时,网关都会计算校验和将其与接收到的消息中的一个进行比较。如果不匹配,将数据包删除,并将错误消息发送到Adafruit IO平台。
Adafruit io
Adafruit IO平台用于在与地震事件有关的实时环境数据和强度运动参数中收集,处理和可视化。
用户界面(UI)由仪表板组成,其中包括通过线图,仪表和其他块实现的一些小部件,以显示环境参数的值以及峰值地面加速的三个组件的时间趋势。
软件组件
用于实施Quakesense项目的软件库和框架是:
- Arduino Core STM32:https://github.com/stm32duino/arduino_core_stm32
- STM32LOWPOPER库:https://github.com/stm32duino/stm32lowpower
- Adafruit GPS库:https://github.com/biagiom/adafruit_gps
- Arduino Lora库:https://github.com/sandeepmistry/arduino-lora
- wifi-ism43362-m3g-l44库:https://github.com/stm32duino/wifi-ism43362-m3g-l44
- LSM6DSL库:https://github.com/stm32duino/lsm6dsl
- hts221库:https://github.com/stm32duino/hts221
- LPS22HB库:https://github.com/stm32duino/lps22hb
作者
Biagio Montaruli [email protected]
执照
该软件已根据GNU GPLV3的条款许可。有关更多详细信息,请参见许可证文件。
致谢
该项目是为我在理工大学(Poliba)的物联网的本科论文开发的。
我要特别感谢我的教授和主管Luigi Alfredo Grieco,以及在开发该项目期间帮助我的所有远程信息处理实验室(@Telematics-Dev)的研究人员和人。