13826| 2
|
[项目] Python/MicroPython物联网(IoT)框架示例-自动灌溉 |
这个项目是由鲍比·伦纳德( Bobby Leonard)制作的。一个 pympy 自动灌溉系统, 推送通知到 android, 降雨预测与 darksky api 更有效的用水。 NodeMCU ESP8266 拓展板 ESP Wemos D1 Mini 土壤湿度传感器(Arduino兼容) 超声波传感器(通用型) 继电器模块( (Arduino和树莓派兼容) ) 电阻 1k欧姆 DHT11温湿度传感器(4引脚) 光电阻跳线 (通用) 面包板 (通用) android 设备 软件应用程序和在线服务 Darksky天气API 作者想法: 本教程的想法是提供如何使用 micropython 设备读取传感器数据的示例。然后如何使用运行树莓派跑通python , 用这些传感器数据做一些有用的事情。您将找到可用于测量距离 (水位)、控制继电器 (泵)、土壤水分 (电容式土壤水分)、温度和湿度 (dh11) 和光线水平的代码示例。用树莓派 代码演示如何发送推送通知、向 Google Sheet写入数据、从 darksky 请求天气预报数据以及如何将 http 请求与 web 应用程序一起用于监视,并与 mpy 设备进行交互。 其次, 构建一个示例代码框架, 可以快速、轻松地进行修改, 以便用于所有未来的 mpy 项目。设置是无限的 mpy 子级, 与浇水壶的父级对象联系, 后者执行子级无法执行的复杂功能。此框架包括子设备的标准引导. py (连接到 wifi, 使用 ntp 设置时间) 和需要添加到父级 web 应用以允许新设备连接的定义列表。 我构建了这个系统, 作为一个自动运行浇水壶、Micropython 和 http 请求的方法。micropython 设备是读取传感器和控制继电器的节点。他们将数据报告反馈到树莓派3运行的 flask 服务器上 (这可以是运行 python 3 的任何设备, 甚至是您的电脑或AWS EC2实例。 mpy 节点能够使用 http 请求在它们之间传输信息, 即一个主板获取土壤水分级别并向服务器报告, 另一个主板然后请求此信息并使用它来决定是否运行泵。在节水方面, 泵控制器也可以向树莓派主板要求天气预报。当树莓派主板收到此请求时, 它将联系 darksky 以获取未来24小时的降水概率。泵控制器再次使用此信息来决定是否运行泵, 即如果明天的浇水周期之前要下雨, 泵接收到信息,就不会被启动。我用的泵,是一个小小的 usb 水族馆泵。它是一个潜水泵, 如果它干了会烧坏。为了防止这种情况的发生, 我在水箱的顶部放置了一个 hcsr04 超声波传感器, 以测量到水顶的距离。这就是推送通知的来龙去脉, 如果泵无法以较低的水位运行, mpi 开发板将与树莓派通讯, 然后树莓派将使用 slack 向我的手机发送通知。这个项目是对以前矿山项目的扩展, 和那个项目一样, 所有的传感器数据都保存到谷Google Sheet中, 每个板都有单独的工作表。 笔记: 我编写了连续运行的代码, 例如, 如果存在网络超时, 并且导致异常, 导致主板停止的情况下, 这时,主板将保持深度睡眠并重新设置自身, 直到它可以运行。这是很好的, 但它让你无法在 repl 中输入命令, 唯一的方法来改变板上的文件似乎是擦除闪存, 并再次安装 mpy, 然后加载已编辑的文件。 您需要将MicroPython文件中包含的IP地址更改为运行Flask服务器的任何机器的IP地址。要使用Google Sheet,您需要遵循以下说明:http://gspread.readthedocs.io/en/latest/oauth2.html 要获取您的Darksky API密钥,请到下面的链接并注册:https://darksky.net/dev 要建立Slack,请登陆本网站注册,然后安装在您的手机上:https://slack.com |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed