Hackaday.io上的树莓派项目-Garden Squid
收藏
分享
脑图
 Hackaday.io上的树莓派项目-Garden Squid
关于项目
项目简介:Garden Squid是一个开放的平台,室内花园自动化,把软件,硬件和花园黑客在一起!
项目描述:Garden Squid的使命是成为所有类型的花园最开放和无障碍的自动化平台。打开,因为所有的硬件和软件设计都是开放的。任何人都可以从这个平台开始,添加新的自动化,新的传感器,或完全重新调整用途。可访问,因为任何人都可以拿起这个设计,并运行它。要自己构建硬件,只需要基本的焊接技能。无需处理交流、表面安装,甚至不需要 PCB。通过使用 X10 而不是继电器,任何类型的风扇或泵都可以自动化,从而允许各种设置。该软件是基本的,但以通用语言和框架编写。
项目图片
项目详情
Garden Squid是位于硬件、软件和园艺交汇处的开放平台。许多人喜欢园艺,编写软件,开发硬件,有时这些激情重叠。通过保持设计令人难以置信的简单,我希望建立一个平台,可以自动简单的园艺任务开箱即用,并轻松允许增加你的下一个花园黑客。
许多hackaday.io园艺系统都是根据特定的生长类型(如 NFT)和尺寸定制的,包括灯光和涉及多少泵。花园鱿鱼是不同的,因为你使用你目前的花园设备(泵,灯),插入交流插座,并插入无线X10模块。可以连接任何设备组合,自定义规则和计时器有关何时打开和关闭它们。通过使用 X10 而不是焊接继电器,我们允许更少的电线,更少的交流风险和更多的灵活性随着时间的推移。
通过让花园生长,我们还需要能够感知花园中的条件。虽然二氧化碳和湿度水平在混合良好的空气中相当恒定,但花园中的温度差异在光线、树冠和树下之间可能很大。通过以太网电缆使用单线温度传感器,我们可以绘制微气候图,并提供更高效的温度控制,以最大限度地提高效率和产量,并防止植物燃烧。
园艺是一个伟大的爱好,但每天不得不照顾它可以把它变成一件苦差事 -尤其是当你想去度假。这就是为什么花园鱿鱼可以通过网络服务器访问,以提供有关您的花园的数据,让你知道一切都运行顺利。
花园鱿鱼的建筑很简单:感知条件,记录条件,响应条件。我希望保持这个项目简单和灵活,以便它可能是未来扩展和重新利用其他家庭自动化或数据记录活动的基础。通过保持硬件的接近和安全(无需触摸交流电源),花园鱿鱼是安全和简单,足以让人接近作为第一个项目。该软件将用蛇,使用烧瓶和其他标准技术编写。传感器回路也将采用模块化,以允许新的传感器,或从设计中省略传感器。
项目文件
1 X 树莓派 3
1 X X10 CM19A USB 转行
1 X X10 TM751 电源插座收发器
3 X X10 AM466 3 引脚设备模块
1 X K30 CO2 传感器
1 X SHT31D 温度传感器
5 X 防水 DS18B20 1 线温度传感器
1 X 4700 pF 陶瓷电容器
1 X 2.2 千瓦电阻
1 X 62 欧姆电阻器
5 X 100 欧姆电阻器
昨天我注意到我的花园鱿鱼在绘图上有问题。调查一下, 我的设备上空间不足, 但这次不是我的错。显然, 如果你 rmmod w1 - them 没有 w1 - gpio, 你可以有一个糟糕的时间。有一些无效的内存在进行中,它每隔一秒左右会喷出一个调用堆栈,直到它填满磁盘。出于某种原因,modprobe 一定看不到依赖项。只是警告我的朋友, 如果你看到你的 1247578718 的 1 线 GPIO 不对, 它可能是你的内核。我不得不重新启动, 让它再次工作。
如果您是自动向系统添加水,并且没有您在那里监督它,则始终有可能系统会失败。如果它确实失败了,你必须假设你会有水流向最坏的地方,因为一旦它溢出,它会找到一种方法到达那里。如果你不在那里阻止它, 几个小时内, 你手上可能会洪水。
通过不自动填充或浇注系统,而是手动完成,这意味着在没有故障时,系统中的水会比你预计的要多。通过系统中有一定量的水,您至少可以根据其他故障(如泵运行时间过长)来规划该类型的容量。使用橡胶女仆容器或滴盘来掩盖您的容量,这样就不会出现任何问题。
避免地毯当然是关键,但有时是不可能的。放下篷布,然后一些熊猫片在上面,如果你担心,总是计划最坏的情况,所有的水最终在你的滴水锅。并且切从不自动向系统添加水。从来没有。
请注意,保存配置设置已禁用,但您可以查看图形并查看我的 A/C 温度如何变化,以及环境如何随时间变化。
一些有趣的功能是鲨鱼波像形状(这是我的 A/C 踢),高二氧化碳水平 (煮我的天然气燃烧炉 / 烤箱), 和温度在白天,当它太热,在拉斯维加斯运行 A/C 
我只想记录一下我在构建和运行我认为是一个简单的单线网络方面的旅程。虽然大多数示例都非常简单,通常只有 1 个温度传感器连接到面包板上,但这只是一个更真实的例子。
1-wire 是一个伟大的协议,因为它很简单,可以运行在各种电缆,并可以运行相对较长的距离(10 s 米)。与 USB(可能为 3m)、i2c 和 TTL 逻辑(<1m)相比,它提供了一种构建网络的方法,可以轻松覆盖一个房间或一个房子的多个房间。
1 线实际上使用 3 线。电源、接地和 1 根数据线。1 线总线是主/从共享总线,因为所有设备都在同一总线上,可以拉低总线,或让其高高浮动。
当然,当 1 线总线被拉低时,无论是由设备还是由主机(树莓派),这不会瞬间发生,而是会快速向下移动每根导线。总线的提升和降低的影响因网络大小(必须拉下导电线)以及网络大小(较长的导线传播信号需要更长的时间)和网络形状而异。
所有这些都会使事情变得复杂,而且可能如此。这些设计考虑的圣经在这里: https://www.maximintegrated.com/en/app-notes/index.mvp/id/148
现在,我想告诉你关于我的一线网络,我尝试了什么,以及它是如何结果。
首先,布线。最初我开始尝试使用正常的4导体电话线。这东西已经证明是 PITA 。电线的仪表很小,很难用、条带、焊、拼接。我最终去了 Cat5 电缆, 这要容易得多。双绞线对和增加的线规可能有助于解决传输问题。一个重要的一点是只使用1根电线的总线,不要使用任何你不需要的电线。把这些绑在一起是波浪反射的配方。
接线盒。根据上面引用的文档,单线网络不应位于星形配置中。但对于短网络来说,它似乎没问题。我买了一个RJ11 1-5接线盒,它允许我使用RJ11连接器和插入个别传感器,并删除他们当中。
总体而言,接线盒工作非常有效,但请记住,每个 RJ11 接线穿过电线 1-4 和导线 2-3。如果你把一个连接器和一个接线盒放在一起, 交叉取消对方, 这就是为什么我有一个男性电缆从 pi 。您可以轻松地在家得宝以 10 美元购买这些盒子。
布线。我选择了内线(2,3)来保持电源和信号,这两个信号都是5V信号。GND 位于引脚 1-4 上。我这样做是因为任何交叉的风险,你的风险损坏或破坏温度传感器。如果交叉 5V 线,您将无法连接,但传感器将正常。
连接。如果将所有导线运行在一起,并自己拼接,则可能不需要连接器。我选择了 RJ11 连接器,因为它们允许我使用电话接线盒。RJ45 连接器需要某种特殊板。
干扰。运行一线网络时,最大的问题与干扰有关。如果您的花园使用高功率灯,请尝试将电线从镇流器或线从镇流器连接到灯泡。这两个都相当嘈杂,即使在一个很好的镇流器。我注意到,当灯打开时,我有大约2分钟的时间,直到网络稳定下来,但它自己回来。
防水。我注意到一些 Adafruit DS18B20 传感器不一定完全密封。用水下泵将一个放入充满营养的再塞沃罐中也造成了干扰。有时泵本身也没有电气密封,这足以将传感器从网络上打掉。
电线的长度。我买了100米电缆,用了一半。我没有注意到传感器的导线长度的任何问题,我可以很容易地看到它在房子的长度工作。尽量避免所有传感器的导线长度相同,以避免反射聚集。
寄生力。我想做的一件事是能够依靠寄生的力量奔跑。这意味着设备从数据线(高浮动)而不是专用的 5V 线路中传输电源。这将允许我有一个白痴证明连接器, 其中两个引脚 2 - 3 是数据, 1 - 4 是接地。总的来说,我对这个安排只有麻烦了。DS18B20 传感器在进行温度转换时会吸引额外的电流。
对于 ds18b20 的 linux 驱动程序,您必须提供 strong_pullup+1 作为内核模块参数,否则传感器在转换过程中将失去电源,并且不返回任何内容。即便这样,增加额外的不稳定也不值得。我用了一根额外的电线。
总的来说,我希望这个现实世界的1线网络的例子可以帮助你设计自己的网络,并随时问下面的任何问题。
每个做过软件的人都知道,为了编写出色的代码,您需要迭代,并且快速迭代。这就是为什么拥有良好的开发环境和正确的工具是关键。
对于嵌入式项目,这比大多数软件项目更棘手,因为通常涉及硬件并需要硬件,而且硬件对于您的用例可能非常强大,但编译和在调试模式下运行有时会使事情变得缓慢。
即使在树莓派, 我非常高兴, 可以令人难以置信的缓慢。昨天,我试图做我的应用程序的npm安装,它花了很多小时完成。我还没有尝试过分析它, 但我也看到了传闻证据, 编译幻影 js 需要超过 2 天!日。
这样的编译时间在20世纪80年代是很好,但这些天,我们需要的东西多一点。
这就是为什么我希望花园鱿鱼有一个伟大的发展环境。一切都基于 linux, 包括覆盆子派和我的开发机器。他们都运行 ubuntu,通过投入一些模拟设备,我可以行使前端和前端的所有功能(除了测试硬件)。
这是一个很大的好处,因为运行"咕咕"可以很容易地需要一分钟,而在开发计算机上,它需要几秒钟。
软件包的体系结构问题是一个不断的问题, 因为试图通过 npm 安装幻象已经教会了我。显然, 没有二进制包通过 npm 的手臂。我最终从以下下载二进制文件:
https://github.com/aeberhardo/phantomjs-linux-armv6l
并遵循这些指示。
最后,只需分发最小站点的 tarball,而不是对 pi 进行开发,这是有道理的,但快速修复选项始终是不错的。
X10 与继电器
由于Garden Squid是一个开放的平台,并设计为修补,我要记录一些重大的设计决策。希望这将有助于你理解推理,并让你在做出自己的改变时有一些见解。
继电器
许多自动化项目涉及继电器。继电器很棒。它们允许您切换比使用晶体管更大的电流量,并在更机械的水平上切换。继电器的一个问题是,它们具有更大的电流和电压,这带来了额外的设计挑战,从零件到PCB向上。大多数设备都经过保险商实验室 (UL) 的测试和认证,确保安全,尤其是在插入交流插座时。
自动花园需要打开和关闭设备,这些设备多次使用交流壁电压。对于小型水下泵(<50W),每个设备的功率可能相当低,在高功率光的情况下,功率可能很高(1000W)。
人们不应该轻而而过地玩交流电流。当你采取大量的设备,并连接在一起,你应该更加小心。由于水涉及任何花园,你需要更加小心。
因此,让我们回顾一下继电器的问题:
1. 需要注意交流电源的设计限制。这真的提高了谁可以建立项目,我永远不会希望任何人冒险生命或肢体。安全是关键。
2. 需要将所有继电器放在一个集中的、受保护的位置。集中大量电流本质上是危险的,而且可能棘手的是用 15A 断路器进行房屋布线。
X10
现在让我们来谈谈X10。X10 基本上是一个小盒子里的无线中继。将其插入墙壁插座,然后将设备插入墙壁插座。内部继电器由通过房屋线路发送的信号控制。
X10 模块可免费使用,并且已经存在 20 多年了。该协议是众所周知的和理解,模块可以拿起便宜,如果你正在寻找交易。
X10 模块由 UL 测试,在多年的使用中,我只有一次失败。这是因为我很可能切换一个比它额定更大的电流。X10 模块对电流和功率都具有良好评级,甚至提供 240V 型号的高功率照明。
无线性质很好,因为您不需要从中央位置运行延长线,只需插入有意义的模块即可。
CM19A 是 USB 无线 X10 转式。你可以把它插入你的树莓派和摩卡德服务器 (https://sourceforge.net/projects/mochad/) 你可以很容易地外壳脚本或自动打开和关闭 X10 设备.
对于制造商来说,这是伟大的,因为它降低了火灾或触电的风险,因为项目中没有交流电流,这意味着即使是初学者也可以有一些乐趣,做一些惊人的事情,而不是冒着坏焊接火灾的风险。
步骤 1
步骤 2
此时,您应该能够运行类似:回声 "rf a1 打开"nc 本地主机 1099打开 A1。这将证明您的 X10 连接性良好。
步骤 3
CO2 传感器非常简单,可通过 TTL 串行工作。连接 K30(无需额外组件),确保穿过 rx 和 tx 导线。通过运行代码中的二氧化碳k30.py测试您的 CO2 传感器,以收集 CO2 样本。确保运行 raspi 配置并启用串行端口。
步骤 4
SHT31 是一个非常简单的传感器,如果您使用的是 adafruit 突破板,则无需额外组件。将这些线直接连接到树莓派突破的 i2c 线。确保运行 raspi 配置并启用 i2c。
步骤 5
使用电阻器和电容器为一线网络构建电路。将 CAT5 电缆上的 1 线母线、接地和 +5V 至 3 根导线匹配。将 RJ11 端压接到电缆上,这允许您使用 RJ11 接线盒设备。对于每个传感器:在电缆的插孔端附近添加一个 100 欧姆电阻器内联。将 DS18B20 焊接到 CAT5 电缆。
注意:一些 RJ11 接线盒交叉某些导线(引脚 1 和 4,引脚 2 和 3)。电路示意图中引用的引脚输出可防止 VCC 和 GND 被交换,这通常会破坏较差的 DS18B20。将 5V 线路保持到内针,将 GND 放在外针上。
步骤 6
转到 Web UI,并给传感器设置友好名称。这将允许花园鱿鱼将值记录到 pi 上的一组 CSV 文件。此时,您应该能够在 Web UI 中绘制数据图。
评论
0 / 100
查看更多
Sen
2020-08-25
643
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号