自动化花园
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
应用和在线服务
| ||||
| ||||
| ||||
| ||||
|
关于这个项目
这是使用我的自动化花园的第二个项目,但这次一切都将由 Cayenne 控制,因此会容易得多。我还添加了一个树莓派来制作延时视频。
设置 Arduino 图> 图> 图> 图> 图> 图> 图> 图>
为了监控我们的花园,我使用了一些有用的设备。在开始之前,记得将以太网扩展板连接到 Arduino。
连接
土壤湿度: 检查植物是否需要水。
- VCC:5v
- 地线:地线
- A0:A1
粉丝:我 如果它变得很热它会激活或只是为了呼吸新鲜空气。
- 一根电线从电阻器连接到引脚 3-风扇的 GND 连接到晶体管的中间引脚。
- 风扇的 + 连接到继电器(中间引脚)晶体管的最后一个引脚连接到 GND。
- 二极管连接到晶体管的中间引脚和 GND。
水泵: 它会随着土壤水分而激活。
- + 连接到继电器的中间,GND 连接到电源的 GND。
光敏电阻(可选): 这部分可以让我们测量房间里是否有足够的光线。
- 一部分连接到 A0,电阻接地。
- 另一个电压为 5V。
- 阳极 (+) 连接到继电器。另一个到电源的GND。
光:
- 阳极 (+) 连接到继电器。另一个到电源的GND。
湿度/温度传感器: 此设备需要一些代码才能与 Cayenne 一起正常工作。
- VCC:3.3V
- 地线:地线
- DAT:数字引脚 8
水位传感器:
- VCC:5V
- 地线:地线
- SIG:A2
最后安装 图>
我在图中使用了 2 个继电器,因为 Fritzing 还没有 4 通道继电器。对于继电器,我只使用了一个 12v 电源。我将正极和负极线分开,然后从正极焊接 3 线并连接继电器上的每个部分。一个就足够了,因为所有东西都不会同时打开。
我为 Arduino RELAY 使用了 5V 电源:
- VCC:5V
- 地线:地线
- IN1:PIN2 激活灯
- IN2:PIN5 激活水泵
- IN3:无 IN4
- PiN4:激活风扇
卡宴设置
在这里,我们将看到如何配置 Cayenne,非常简单。
- 首先在此处创建一个帐户。
- 然后,您应该使用 Rj45 电缆连接以太网屏蔽。
- 这是连接到 Cayenne 以及配置嗡嗡声/温度传感器的代码。
此代码适用于 w5100 屏蔽 该代码可在 cayenne 上获得,用于其他以太网/WiFi 屏蔽。另外不要忘记添加您的令牌 创建帐户后即可获得。
#include "DHT.h"//#define CAYENNE_DEBUG // 取消注释以显示调试消息#define CAYENNE_PRINT Serial // 将其注释掉以禁用打印并节省空间#include
#定义 DHTPIN 8 // 我们连接的数字引脚#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
#define VIRT_TEMP V1#define VIRT_HUM V2
// Cayenne 身份验证令牌。这应该从 Cayenne Dashboard.char token[] ="your toker";
DHT dht(DHTPIN, DHTTYPE);unsigned long prev_DHT_refresh, interval_DHT_refresh =1000;
void 获得设置(){ Serial.begin(9600); Cayenne.begin(token);
dht.begin();}void loop(){ Cayenne.run();
getDhtValues();
}
void getDhtValues() { unsigned long now =millis(); if (now - prev_DHT_refresh> interval_DHT_refresh) { // 读取温度或湿度大约需要 250 毫秒! // 传感器读数也可能长达 2 秒“旧”(它是一个非常慢的传感器) float h =dht.readHumidity(); // 读取摄氏温度(默认) float t =dht.readTemperature(); // 检查是否有任何读取失败 if (!isnan(h) &&!isnan(t)) { Cayenne.virtualWrite(VIRT_HUM, h); Cayenne.celsiusWrite(VIRT_TEMP, t); } prev_DHT_refresh =现在; }}
Cayenne 中的设备 图> 图> 图> 图> 图> 图>
我们几乎完成了 Arduino。现在是简单的部分。我们将在 Cayenne 上添加所有设备。
添加设备 -> 自定义小部件
选择您喜欢的小部件类型。我使用湿度和水位图表,否则我使用值。对于湿度和温度传感器,我们使用虚拟引脚:
- 温度:Vpin1
- 湿度:VPin2
对于其他设备,而不是选择虚拟引脚,而是使用带有引脚链接的模拟。相同的程序,但这次在执行器中然后选择连接到继电器的 Arduino 引脚,用于光/风扇/水泵。
事件和触发器 图> 图> 图> 图> 图> 图> 图>
现在我们有了仪表板,我们将要设置触发器:
- 水泵: 当检测到的土壤湿度太干时,这将打开泵。请注意,我使用了 2 个触发器:一个用于启动水泵,另一个用于停止它。
- 水位: 当该值高时,表示缺水。在这里,我们会收到一封电子邮件提醒我们。
- 事件: 我设置了 4 个事件,一个是早上开灯,一个是晚上关灯,2 个是开/关风扇。
设置树莓派 图> 图> 图>
让我们做一个植物生长的时间流逝。
3 软件:
- 树莓派
- Win32diskimager 将映像刻录到 SD 卡上
- Putty 远程连接到 Raspberry WIn32 磁盘成像器:
下载后,安装它。打开它:
1. 您将看到“设备”。一般来说默认是好的(如果你只连接了 SD 卡)
2.点击蓝色图标文件夹,选择你下载的Raspbian Jessie镜像
3.点击写入就完成了。您现在可以将卡插入 Raspberry。
腻子: 它允许我们通过 SSH 连接,打开 Putty(无需安装)。
- 将网线连接到 Raspberry
- 您需要通过简单的方法找到 Raspberry 2 的 IP:
- 连接到您的盒子界面,您将能够看到带有 IP 的设备
- 将触摸屏和键盘连接到终端然后
ifconfig.
现在在 Putty 中输入 IP 地址。它将类似于 192.168.0.3 然后输入。
- 它会要求信任,点击是(图片)。
- 登录:
pi
, 密码:raspberry
.把窗户留在一边,我们稍后再来。
现在我们已经运行了 Raspberry,需要进行一些更新,因此在 Putty 中复制粘贴命令:
sudo apt-get updatesudo apt-get upgrade
VNC:
如果您没有将 Raspberry 安装 VNC 连接到远程控制的屏幕。
sudo apt-get install tinyvncserver
完成后启动服务器:
vncserver :1
并在您的计算机上下载vncviewer,连接输入IP和服务器数量。它看起来像这样 192.168.0.3:1
卡宴: 您可以使用 Cayenne 远程控制您的 Raspberry,只需安装它:
wget https://cayenne.mydevices.com/dl/rpi_03wl1tt4nt.shsudo bash rpi_03wl1tt4nt.sh -v
延时摄影 图>
最后一步!我们现在可以在 Putty 或终端粘贴中启用相机:
sudo raspi-config
然后去启用相机。我们必须创建一个文件夹来存储图片:
cd /home/pi/Desktopmkdir 延时摄影
插入网络摄像头后,我们将创建一个脚本来每小时拍摄一张照片:
cd /home/pi/Desktop nano timelapse.sh
粘贴这个:
SAVEDIR=/home/pi/Desktop/timelapse/while [ true ]; do filename=-$(date -u +"%d%m%Y_%H%M-%S").jpg/opt/vc/bin/raspistill -o $SAVEDIR/$filenamesleep 3600;done;
并确保脚本可执行:
chmod +x timelapse.sh
结论 图> 图>
本教程很长但非常简单,只需很少的设备即可连接和配置平台。在图片上是一团糟。我用了太长的电线。我会在植物生长完成后发布我的延时效果。
建议:
以太网屏蔽可能会收到错误 DHCP 失败。尝试连接时,我在 Arduino 论坛上找到了解决方案:您必须在随机位置焊接两个 100 欧姆的电阻器以惹恼读者。
代码
- 代码片段 #1
- 代码片段 #9
代码片段 #1Arduino
#include "DHT.h"
//#define CAYENNE_DEBUG // 取消注释以显示调试消息
#define CAYENNE_PRINT Serial // 将此注释掉以禁用打印并节省空间#include#define DHTPIN 8 // 我们连接的数字引脚#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
#define VIRT_TEMP V1#define VIRT_HUM V2
// Cayenne 身份验证令牌。这应该从 Cayenne Dashboard.char token[] ="your toker";
DHT dht(DHTPIN, DHTTYPE);unsigned long prev_DHT_refresh, interval_DHT_refresh =1000;
void 获得设置(){ Serial.begin(9600); Cayenne.begin(token);
dht.begin();}
void loop(){ Cayenne.run();
getDhtValues();
}
void getDhtValues() { unsigned long now =millis(); if (now - prev_DHT_refresh> interval_DHT_refresh) { // 读取温度或湿度大约需要 250 毫秒! // 传感器读数也可能长达 2 秒“旧”(它是一个非常慢的传感器) float h =dht.readHumidity(); // 将温度读取为摄氏度(默认值) float t =dht.readTemperature();
// 检查是否有任何读取失败 if (!isnan(h) &&!isnan(t)) { Cayenne.虚拟写入(VIRT_HUM,h); Cayenne.celsiusWrite(VIRT_TEMP, t); } prev_DHT_refresh =现在; }}
代码片段 #9SH
SAVEDIR=/home/pi/Desktop/timelapse/while [ true ]; do filename=-$(date -u +"%d%m%Y_%H%M-%S").jpg/opt/vc/bin/raspistill -o $SAVEDIR/$filenamesleep 3600;done;
制造工艺
- Raspberry Pi Universal Remote
- 一片树莓派
- Cycle Chaser
- Raspberry Pi Thief Detector
- Raspberry Pi 温度传感器
- RASPBERRY PI 家庭自动化
- Raspberry Pi 自动浇灌网站
- MrRobot – 支持 Ubuntu 移动应用的机器人(涉及 Raspberry Pi 和 arduino)
- Raspberry Pi CD Box Robot
- 通过蓝牙控制的树莓派机器人
- 使用 Arduino 和 Raspberry Pi 构建您的 Internet 控制的视频流机器人
- RaspiRobot Board V2