首页 > 平台 > Hackaday.io上的树莓派项目-SentriFarm

Hackaday.io上的树莓派项目-SentriFarm

Hackaday.io上的树莓派项目-SentriFarm
关于项目
项目描述:根据2015年的"可持续性"主题,许多澳大利亚农民面临的问题:澳大利亚有非常炎热的夏天和高火灾风险的日子,他们被禁止(和负责任的农民甚至不尝试反正)收获作物。(通常谷物收成在 11 月 12 月左右。由于气候变化,"灾难性"等级的火灾禁令日现在更为常见。目前,他必须开车额外的早(如早上5点)和检查围场的条件。考虑因素:不仅仅是预报天气,而是每个围场的当地条件;如果当地天气似乎太危险,可以之前的最新官方预测,他们不能继续收获的一天。 所有驾驶工作到 100s 公里/周或更多 (+ 燃料, 污染), 加上时间。这仅仅只是一个开始:正在进行的数据记录将纳入裁剪实践,记录政府法规的化学应用数据,并可能会产生意想不到的和有用的相关性!
项目图片
系统概述和高级设计
Sentrifarm 由能量采集传感器节点网络组成,根据服务器场的拓扑在地理上分布,能够以低功耗运行,并且无需依赖移动电话网络即可在长距离上进行通信。
(本项目详情以及链接材料目前构成决赛所需的顶级系统设计文档。其他输入条件列在各种项目日志中)
新颖的功能包括智能的端端监控和数据分析、一个屏蔽式系统,允许SX1276无线电连接到完全不同的嵌入式板,定制设计智能雨量计,以及无需多个 SIM 卡即可对多个围场进行远程农场监控的能力。
农民受益
及时报告信息
提高安全性和即时草火危险指数可见性
提高种植知识
降低运营成本
系统要求
主要目标:立即向农民通报情况
次要目标:在农场基地记录尽可能多的数据,包括来自农民通常未记录的传感器/数据的数据,以进行分析和新发现
长途飞行(最终超过20公里/12英里),以避免电信费
智能:如果条件排除收获,农场基础计算
可用性 / Ux: 简单的应用程序 (例如早上 6 点闹钟, 红色不好, 绿色为确定)
价格低廉、坚固耐用、可维护的商品组件:农民有足够的昂贵的固件升级,用于拖拉机和拖拉机的升级。
可以扩展以与社区/众包信息网站共享数据
传感器节点必须自给自足,以供电
为农民在现场通过移动设备"点击"本地传感器提供能力
Sentrifarm 也是一个实验,旨在测试实际农场上的各种设备和数据收集协议组合
初始原型
在真正的黑客精神,为最初的黑客奖建设许多设备(特别是,用于建立节点的各种计算模块)已经选择由于在手,我们有更重要的东西花钱在这一次:-)然而,设计是这样的,他们可以很容易地更改为更'生产'为导向的模块在未来。
组件包括 SX1276 915MHz LoRa 无线电、Teensy-LC 和 ESP8266 模块、ATtiny 供电雨量计和风测表以及树莓派节点
建筑
Sentrifarm 支持各种节点:
服务器场基站 - 使用行业标准协议 (MQTT) 将数据从其他节点聚合并转发到数据库和监视应用程序
帕多克节点 - 也称为围栏站,因为原型节点将安装在围场围栏柱上 - 一种太阳能供电的设备,具有合理的计算能力,能够记录来自各种传感器的数据,包括雨、风、空气温度、湿度、紫外线、霜冻、日光,甚至成像、安全和设备遥测等高级功能
地面传感器 - 设计用于收集地面温度和湿度,可能位于围场的网状物中。视情况可能连接到帕多克节点,或者最好是无线和太阳能或压电供电
设计概述
远程通信网络使用在 915MHz ISM 频段中运行的 Semtech SX1276 LoRa 无线电(inAir9 模块)。在澳大利亚,这仅限于范围 915-928 MHZ。SX1276 通过 SPI 进行通信。黑客奖构建使用BMP180 i2c气压计模块,DS18B20 1线温度传感器,DHT-11湿度传感器,风脉冲和定制设计的雨量计,以及各种其他模块和传感器将随着时间的推移集成。
农场基地包括以下设备:
标准计算设备位于农场办公室,软件包括 MQTT 代理和 Docker 容器,用于使用 Carbon 和 Grafana 进行记录和可视化,其他工具最初通过 Web 浏览器访问,以最大限度地实现移动设备兼容性。我们可以将数据复制到云中的 VPS。
服务器场站节点。预期黑客奖金构建将使用树莓派,提供两个不同方向的下行链路,以适应农场的拓扑。由于服务器场站可以访问电源,因此与其他模块相比,树莓派的额外绘制不是问题。我们使用一个无线电每个树莓派,以简化天线设计和软件实现这个初始构建。
中继器围栏柱节点的第一个版本是使用 Carambola2 嵌入式 Linux 设备构建的,并计划使用 openwrt板构建Domino.io版本。这提供了 USB 主机功能,允许轻松本地登录到 USB 存储进行开发和诊断,并可添加用于各种目的的其他 USB 设备,包括音频和其他实验。中继器围栏柱将需要比 Leaf 节点更大的太阳能电池板 (和 SLA 电池), 但会更少。在收集图像等数据时,由于电源/带宽,不会通过无线电传输,而是收集到 SD 卡/USB 上。一个新的功能是一个按钮,将允许农民开车和打开wifi(通常关闭,以节省电力)下载图像到移动设备。
1 X 青少年 LC(选择#1场节点)
1 X ESP-201 ESP8266(#2场节点选项 - 启用要求 wifi)
1 X 树莓派(每个中央节点)
1 X Carambola2 OpenWRT 模块(每个 Linux 围场节点)
4 X SX1276 LoRa 模块收音机(每个模块 1 个)
1 X PCF8591 i2c ADC(每个模块)
1 X DS18B20 1 线防水温度(每个模块)
1 X BMP180 温度/气压计(每个模块)
1 X Arduino Nano 或类似, 或 Attiny85 模块为雨谷
1 X 电阻器、电容器、开关、电线、电压调节器等
1 X DS2482S i2c 至 1 线(用于 ESP8266 模块)
1 X GUVA-S12SD 紫外线传感器(每个模块)
1 X DHT-11 湿度传感器
1 X 阿蒂尼 85 / 迪吉斯帕克脉冲计数
1 X 外壳、管道、电缆扎带、加法胶带、螺丝等。
1 X 太阳能电池板
1 X USB 电源关闭的 SLA 电池和充电控制器
1 X 风速和风向传感器,如https://www.sparkfun.com/products/8942
1 X 定制制造的 915 MHz Yagi 天线
1 X 根据 github 存储库的电路板
1 X 带 Ubuntu 服务器 14.04 带 Docker 的 PC
需要注意的一些事情:
设想的生产系统,隐藏管道工作内的所有电缆
管道工作需要足够坚固,能够承受强风阵风
除了在内部使用Linux模块之外,远端可能相同;毕竟,在农舍同时伐木条件没有什么可失去的。虽然,组件可能会分裂,因为天线可能会安装在无线电塔或风车,使范围
我们可以运行电缆下来测量土壤温度和湿度;虽然我的理想是这些传感器以某种方式无线连接
从图片中看,一个不太明显的重要因素是需要保护电子产品在 40°C 的夏末免受下午阳光的照射。因此,使用一个外壳,可能是双重绝缘,反射,并添加着色器,并相对于太阳能电池板的位置帮助。
所以就在一切需要工作的时候。一切都出了问题
当我试图连接它时, 唯一的风表自毁。这尤其令人沮丧!
我住的地方,我不能只是跳上车,买另一个这样的部分,Jaycar是45分钟的路程,不携带那些专业部件,我甚至没有时间尝试和反向工程他们的气象站,也没有支付钱。最近的到达时间是星期二, 如果我为快递站而难。因此,这意味着进入半决赛提交,我们将成为要模拟风。我可能只是从 BOM 过去的数据中馈送数据。这也很烦人, 因为我花了一天做一个 i2c 奴隶使用 Ttiny85 是风量表的接口, 所以节点可以保持睡眠, 而不是脉搏计数。
我还购买了太小的金属盒, 没有得到足够的各种适配器的 Sma 到 Bnc 天线馈送。因此, 最终重新利用外壳, 所以整个事情看起来又躲开了。
在尝试整理电路时,我损坏了用于部署的 ESP-201 模块,无法将备用闪存。(幸运的是, 结果, 因为我接错了跳线。因此, 我花了星期六得到 Teensylc 版本结束, 而不是有完美的工作凌晨 1 点, 以及安装 Carambola2 基站。
但在夜间,青少年停止。从那以后就没闪过它的 LED 了。所以我现在有一个死去的青少年。我需要联系哈卡迪商店, 征求他的建议。所以我不得不去ESP-201备用,而不是我确实得到的工作。
除了 ESP 现在在其闪存中耗尽了空间, 因为我添加了最终的触摸, 所以花更多的时间调试和调整的东西, 以适应。
ESP-201在完美地运行了几个月后,现在正在经历绞刑,需要从深度睡眠后按下按钮重置。主要嫌疑人是昨天才集成的湿度传感器。但我现在坚持它, 湿度是草火危险指数的三个关键成分之一。
尽管如此,我最不想要的就是放弃这个接近尾声,所以继续推动通过,我们有一个工作系统的时刻,用于产生"操作"视频。
因此,我们有一个1公里的镜头记录天气数据在围场。在下面的照片中,地平线上的树木是"另一端"。尽量不要看所有的电缆领带...
将电源从笔记本电脑切换到太阳能充电器后,紧张地驱车 10 分钟回到家里检查日志。我可以看到串行 LED 上的活动, 但不知道传感器是否坠毁了..
在大型测试场的远端,我们达到了接待目标,我们开车去了。
我可以通过这个得到一个信号!(注:信标时间偏移 +09:48 后本地时间)到变送器的范围为 2100 米。
[DBUG] RX rssi_pkt=-100 snr_pkt=-14 stat=38 sz=37 ptr=38 hdrcnt=564 pktcnt=534
[RX] 37 bytes, crc=0 rssi=-100 DATA=54582042
TX BEACON 6658 13-09-2015 06:56:00
嗯,我们刚收到一个信号;Rssi 就在边缘但有了数字,这就是您需要的。
就在这条路上,我们遇到了这些落马者:
不幸的是, 我的手机摄像头质量不高 - 篱笆附近的那些棕色飞溅是袋鼠。
我们一直开车向北行驶了一段时间后,我们失去了信号,并不意外。因此,我们采取了右转。在回到光束覆盖后,我们再次在4100米发出信号,并一直行驶。在我们最远的范围内,我们仍然远离汽车,我们终于在6100米记录了最后一个信标。一直这样, 接收器上唯一的海拔高度是我举起手臂, 伸出车窗!记住,发射机也只有1米高。
超出这个范围,我们需要更多的帮助。当地俱乐部的土堆让我们获得了一些高度,也许3米。还有一个信号范围:7000m!
正如地图所示,我们所有的接收都大致在发射机的预期光束中。很好!
最后,这是澳大利亚,所以我们做了我们必须做的。嗯,我们勇敢的农民做到了,无论如何,爬上了塔在他的名字。它花了一点摆弄,因为在这个范围与定向天线的灵敏度是相当精细的。
但最后,几米高,他能够得到灯塔。在9300米的大距离。哇!
所以,这一天完全超出了我们的预期。我期待必须调整无线电设置(增加位纠错,降低比特率),并要求更多的发射机高程,以超越几个K的。因此, 那些小 inAir9 模块包一拳!
所以今天当地的天气跳过了春天,涌到夏天,在汽车表盘显示30C,所以我们选择了一个伟大的一天,终于出来,看看这些air9收音机将真正工作。
我们使用 Sentrifarm 模块部署了此部署,该模块将固件修改为 TX 信标。在这种情况下, 它是一个 Carambola2 没有传感器
注意地平线上, 左半部分的长深绿色补丁是大约 2 公里外的磨砂块...然后,我们到了车上,使用从上网本供电的森特里夫姆叶节点,用时间戳和无线电SNR数据记录信标的接收。金的笔记本电脑上有一个GPS记录。
当我们开车时,我们把天线从窗户拿出来。
在我们离开之前,当我还在用最后一分钟的固件调整来胡作其用时,Kim从黄铜和废木和胶带中取得了高收益方向 Yagi。他擅长天线!
所以我们开车在测试场周围。原来收音机性能相当不错。我们一直有信号沿测试围场的远端,不只是直接在TX光束前,我们本来希望,但远离边缘。
中间右边的绿色团块是 TX 信标站点。在这一点上, 我们收到的信标很好。这已经是一个伟大的结果,约1200米从灯塔。
第二个目标是试验分布式烟雾/碳氢化合物传感器。这仍在卡上, 但已经推迟到未来的一些时间, 因为我们需要进一步考虑权力 / 操作执行。
MQ2 烟雾/碳氢化合物传感器具有"加热器",需要运行至少 3 分钟才能稳定值。叶节点的当前设计从深度睡眠中唤醒,读取传感器,通过收音机执行 MQTT 事务,并在 30 秒内返回睡眠状态。因此,在当前配置中使用 MQ2 将影响节点使用的功率。
MQ2 作为某种火灾警报传感器有用,还需要连续检查。以(例如)15 分钟间隔记录烟雾/气体对绘制远方丛林火灾或污染中的灰尘/烟雾进展的学术兴趣,但不那么令人兴奋。
当然,内部烟雾报警器可以运行 9V 电池多年,所以有办法解决这个问题,它只是不必做,以满足下一个视频提交的最后期限。
我们希望仍然把一个 MQ2 在无线电塔上, 因为那里将有足够的电源, 只是为了看看它是如何工作的。
除了显示 BMP180 传感器和微控制器工作正常, 还没那么有趣。
最后。经过一些令人沮丧的过程,我设法整理出一个可扩展的数据记录和可视化解决方案。
我开始在 OpenHAB, 然后 EmonCMS, 这两个承诺了很多, 但我想要一些有点交钥匙, 花了这么多时间在过去浪费时间学习如何构建和部署软件时, 我只想使用它;我不知道我是否看错了教程或什么, 但我不能得到牵引力, 其中任何一个与 Mqtt 饲料后, 花了几个小时...然后我绊倒了格拉法纳
Grafana是一个很酷的基于浏览器的应用程序,在石墨/碳记录基础设施和耳语数据存储的基础上提供漂亮的可视化功能。整个事情在 Docker 实例中运行,因此可以轻松进行试验和维护。真正好的是 ti 可以接受其他源以及导出数据,并可以集成警报功能。需要。
因此,最后,我们有一个端到端的软件和硬件堆栈:
微控制器和传感器 - > MQTT-SN 在 InAir9 LoRa 915MHz -> 嵌入式 Linux 与 MQTT-SN/MQTT 代理 -> 农场中央登录石墨与一个很好的,非常可定制和灵活,但也易于使用的 Web 界面
一直在整理收集所有数据的后端。我们最初看OpenHAB,但现在我正在看一种叫做EmonCMS的东西,看起来它可能稍微快一点,让它做我们想做的事,从MQTT记录下一个项目里程碑。请注意,这并不意味着我们将来也不会使用 openhab 。理想情况下,Sentrifarm 将能够通过使用 MQTT 将数据发送到任一系统。
一路上,我发现了码头。图像一旦建成,修改图像的速度有多快,我印象深刻。它非常能缓存以前下载的所有依赖项。因此,我能够在几秒钟内从 EcomCMS 实例中添加模块,然后删除模块。为什么我以前没用过这个!
Sen
256次阅读
2020-08-27