raspberry pi

1989年11月15日下午4:30,F4龙卷风在阿拉巴马州的亨茨维尔肆虐,炸死21人。 除非在琼斯谷小学(Jones Valley Elementary)开展课外学习的人们Swift思考,否则情况可能会更糟。 一旦断电,他们就把孩子们带到楼梯下。 他们幸存下来,尽管顶层被从建筑物上撕下了。 21名伤亡者中有一位前来接孩子的母亲。

那是我兄弟的学校。 我的教堂和其他几个教堂被毁。 当他们重建并清理该地区时,我上学的路线改变了几个月。 这些是您收集的生活在人均龙卷风第一位的故事。 这些故事灌输了对龙卷风的健康尊重,并注意龙卷风的警告。

对龙卷风警告的尊重使我详细考虑了它们如何工作。 重要方面是通知如何到达,如何理解警告是否适用于您的特定位置以及警告的紧急程度。 这使我学习了如何构建和编码物联网(IoT)设备以警告龙卷风警告。

您如何获得警告? 在1990年代后期,我花了50美元购买了一台气象广播 ,它只能向我所在的县发出警报,而我以前的那台气象广播则向该电台范围内的任何县发出警报。 它告诉我龙卷风警告,严重的雷暴警告和其他天气事件。 太好了。 但随后在2007年,国家气象局开始发布基于暴风雨的警告,其中包括多边形,以更精确地匹配暴风雨威胁的地区,而与政治边界无关。 很高兴知道警告是否在我们县内,但我们仍然必须弄清楚我们是否在受警告的地区,因此花了更多时间来处理警告和躲藏。 天气电台使用我熟悉的地理区域名称广播了此信息,但仍存在不确定性。

我家的不确定性是可以忍受的,在那里我需要花费10秒钟检查雷达并掩盖。 但是在工作场所中,要求更高的精度是很合理的。 除非警告是针对您所在的地区,否则您不希望停止生产,并且您不想错过警告,因为您需要确保人员安全。 律师对扶手椅气象学家的信任度不高。

现在,手机运营商会在网络上向受警告区域的塔楼范围内的电话发出龙卷风警告,但是这些系统往往会发出过度警告,包括可能在县的一个区域出现警报时到达县内的所有人。

然后是具有计算功能和第三方天气广播板的Raspberry Pi。 国家气象局在互联网上而不是在天气广播中发布基于风暴的警告的多边形。 下一步很明显:当我需要知道我所在地区何时有龙卷风警告时,提醒我,而不是其他任何事情。

(还有一些其他有趣的事情可能需要立即发出警报。墨西哥拥有使用相同技术的地震预警系统,而加利福尼亚州也在开发类似的系统。在极少数情况下,强烈的雷暴伴随有足够强的直线风以确保有适当的庇护场所,但并不经常。龙卷风警告足够频繁且客观,足以采取自动行动。)

要为自己制作天气广播,请遵循GitHub上的说明 。

如何制作原型1

首先,让我建议从其他家庭成员那里买入,他们可能会在项目工作中因您的分心而受到影响。 然后列出零件清单。 我咨询了一位朋友,他做的物联网工作比我要弄清楚的这部分还要多。 你需要:

  • Raspberry Pi 3 B +
  • AIWIndustries气象广播板和配件
  • 电源
  • 微型SD卡

等待其他部件到达时,用Raspbian加载SD卡。 零件到达时,将它们按短顺序放在一起,然后运行示例代码。 开始清理像Pi_4707这样的示例代码,然后几乎从头开始重写它,因为它对您的应用程序不够强大。

测试中

接下来,弄清楚如何从国家气象局接收和处理消息:文本消息,CAP消息和各种来源。 在风暴系统中捕获来自各种来源的消息,然后使用它们来评估风暴系统的处理。 各种库也许能够帮助处理NWS消息,但是它们似乎都与它们的特定用例密不可分。

测试一切。 创建一个可与代码一起使用的无线电芯片模型,因为您无法合法地模拟进入芯片的消息,并且您实际上并不想以这种方式测试芯片。 为每个挑战编写测试。 您可以将模拟程序设置为比真实广播程序运行得更快,并使测试套件更早完成。 确保您的代码可以运行很长时间。 编写单元测试和集成测试。

测试收集消息并评估特定位置的影响。 使用这些捕获的消息并重播风暴系统以确保其正常工作。 寻找边缘条件,或发明一些条件。

代码库

将项目放在GitHub或其他代码存储库上。 我在Raspberry Pi NOAA天气广播(NWR)上有我的。 由于各公司要支持开源的发展,可以释放你的代码和使用工具,如Travis.ci运行你的构建在多个环境和coveralls.io检查你的测试代码覆盖率。 它们的设置非常简单。

使用您的设备

然后进入棘手的部分:集成来自广播和Internet的消息,并解决在各种情况下的操作。

输入组件和事件库。 考虑一下Zope and Circuits框架 ,前者既已建立,又是功能完善的Web应用程序服务器,而后者是一个事件框架,它也支持Web I / O。 我想要小而简单,所以我选择了Circuits。 编写验收测试以确保其行为符合您想要的方式,因为您的系统仅与其框架一样可靠。

在这一点上,我花了一些时间尝试用Circuits改造无线电代码,但是发现这并不是一件容易的事,因为存在一些微妙的不同方式来考虑要发布给芯片和所选框架的各种命令。 我得稍后再讲。

将无线电代码包装在Circuits适配器中,并设置框架以从最简单的Internet提要(如国家气象局)生成网络消息。

最后,建立一种机制来模拟来自无线电和Internet的事件,并建立警报代码以触发中继并播放音频警报。

瞧! 现在,我们有了可用的警报器。 接通扬声器,即可发出警告了。

最后的想法

还有更多工作要做:服务器端监视和警报,建立更新过程,为SOHO模型添加可视显示以显示天气和警报状态,以及其他Internet提要以提高可靠性和更快警报的潜力。 另一种选择是连接到需要获得UL 2572认证的火灾报警公共广播系统。

如果您不想有任何麻烦,而只是收到通知,请与我联系以获取更多信息。

翻译自: https://opensource.com/life/16/10/build-your-own-raspberry-pi-tornado-warning-system

raspberry pi

raspberry pi_构建自己的Raspberry Pi龙卷风预警系统相关推荐

  1. raspberry pi_如何用一点Raspberry Pi管理大型酒店

    raspberry pi 带有Raspbian Lite的Raspberry Pi可以非常灵活地安装许多有用的服务(另请参见我的Raspberry Pi项目文章 ). 通过搜索开源软件并使用此出色的设 ...

  2. raspberry pi_在月光下将Raspberry Pi变成蒸汽机

    raspberry pi Valve's Steam Machines aim to bring your Steam game library right into your living room ...

  3. raspberry pi_我如何使用Raspberry Pi与孙辈联系

    raspberry pi 我非常喜欢Raspberry Pi计算机,因为它是一种学习和使用计算机的有趣方式. 我希望我小时候有类似的感觉,但是我尽了最大的努力,用滑尺和当地大学的大型机. 我还发现Ra ...

  4. raspberry pi_使用Kubernetes在Raspberry Pi上进行集群计算

    raspberry pi 是否曾经想打造自己的云? 现在你可以! 它所需要的只是一些廉价的开源硬件和开源软件. 只需花费约200美元,我就可以使用Fabric8在Kubernetes云操作系统上安装四 ...

  5. raspberry pi_十个有趣的Raspberry Pi项目:JAXenter的精选

    raspberry pi 自2012年2月推出以来,Raspberry Pi的袖珍尺寸,多功能性和价格便宜的芯片就获得了轰动性的成功.其最初旨在帮助学校推广计算机科学,这款英国设计的单板计算机可轻松移 ...

  6. raspberry pi_现在您的Raspberry Pi可以给草坪浇水了

    raspberry pi 开源有很长的开发人员开发自己的痒病的历史,并且很少有痒病像不必要的花钱一样痒. 草坪浇水系统因汇款而臭名昭著. 当罗伯特·布斯(Robert Booth)着手开始机器人项目时 ...

  7. raspberry pi_适用于Linux,Raspberry Pi和开源的游戏:年度热门读物

    raspberry pi 对于游戏和Linux来说,这是一个好年头. 一方面,近年来在Linux上玩专有游戏变得更加容易,但是开源游戏也取得了许多进步,这在一定程度上要归功于复古游戏的复兴. 如果您是 ...

  8. raspberry pi_如何使用Raspberry Pi构建WiFi相框

    raspberry pi 数码相框非常好,因为它们可以让您欣赏照片而不必打印出来. 此外,添加和删除数字文件比打开传统框架并在要显示新照片时在内部交换图片要容易得多. 即便如此,从数码相框中取出SD卡 ...

  9. raspberry pi_如何使用Raspberry Pi构建数字针Kong相机

    raspberry pi 在2015年末,Raspberry Pi Foundation通过发布小型Raspberry Pi Zero震惊了整个世界. 而且,他们在MagPi杂志的封面上免费赠送了它 ...

最新文章

  1. linux 删除含有关键词的文件_误删除Linux系统文件了?这个方法教你解决
  2. 1字符集 iso latin_ISO-8859-1 、Latin-1 西欧编码介绍及应用
  3. CocoaPods 安装与使用教程
  4. boost::endian模块实现udt转换的测试程序
  5. 审计日志删除 oracle,oracle audit,怎么审计ORACLE日志
  6. Bash Shell学习笔记二
  7. 注意| .NET开发者大会防疫须知 !
  8. 浅析Entity Framework Core中的并发处理
  9. 服务器的响应一直一直发送不过去,zeroRPC:在发送响应后继续运行进程
  10. python add_argument()用法解析
  11. 监测div大小变化_CSS怎么实现div随着网页的大小变化而变化呢?
  12. function 多个函数用一个_程序员如何用一个脚本每天定时给多个女友发微信暖心话...
  13. Python程序员薪资 你不知道的事
  14. 共享可写节包含重定位_周末去哪?来云浮!来乡村美食(番薯)节!
  15. python开发抢票软件_12306抢票软件run python版
  16. 【C语言编程5】复数计算器
  17. 安卓游戏开发一(超级玛丽)
  18. 通用管理平台GBase 8c Platform
  19. Gradle依赖本地aar包
  20. python写excel标记文字颜色_[知识积累]python3使用xlwt时写入文档字体颜色和边框样式--转载...

热门文章

  1. HashMap深度分析
  2. 从零搭建angular环境和初项目
  3. curl_multi实现并发
  4. 多线程基础:两种常见的创建线程的方式
  5. CES神吐槽:人工智能快要“烂大街”了?
  6. serialVersionUID的作用
  7. 【angularjs】【学习心得】ng-class总结
  8. php发送email
  9. 如何优雅地本地化构建Mybatis源码
  10. getobject java,Object get(Object obj)