资料介绍
描述
本文是迪肯大学 IT 学院为主题 SIT210 - 嵌入式系统开发提交的作业组合的一部分。
关于该项目
以下项目适用于智能狗水碗,当水碗变干时,它会根据电容式土壤湿度传感器的读数自动补充水。每当重新装满水碗时,都会通过 IFTTT 通过电子邮件提醒用户。
这个项目的灵感
我拥有两只名叫吉米和利奥的骑士国王查尔斯猎犬。有时,当我作为救济教师下班回家时,他们的水碗是干的,而在澳大利亚经常发生的非常炎热的日子里,当这种情况发生时,我会感到内疚。话虽如此,即使在不热的日子里,这两个男孩也有用他们小狗的眼睛让我感到内疚的习惯。
这个怎么运作
粒子氩和粒子光子通过粒子云进行通信。Particle Argon 测量水分并根据其读数以及该状态是否发生变化来发布“干燥”或“充满”事件。此事件由 Particle Photon 订阅,如果干燥,它将打开,通过连接到软管的电磁阀重新填充碗。当碗重新装满时,将发布一个事件,该事件将导致 IFTTT 向狗主人发送电子邮件。
水分水平通过api.ThingSpeak的 webhook 可视化,它会生成折线图和水位计。
如何设置
第 1 步:修改宠物饮水机
首先,我们修改了宠物饮水机以容纳电容式土壤湿度传感器,方法是使用无绳电钻在背面钻一个 12 毫米的孔,然后用钢锯切掉剩余部分。然后,我们用圆锉磨平了传感器所在的凹口。修改的图片如下所示。
之前计划通过钻一个孔来容纳防水湿度传感器的接线和一个更大的孔作为软管的入口来修改大型水容器,然后在软管和传感器的电线进入后用密封剂密封这些孔,但在用 Selley's All Clear 密封后,瓶子在一夜之间淹没了碗,所以这个想法被废弃了。
第 2 步:设置继电器和电磁阀
要设置继电器,首先将您的 Particle Photon 插入 Particle Relay Shield for Photon 的接头。接下来将接线连接到您将使用的继电器的 COM 和 NO 触点端子(注意:NC 触点端子应该为空) 。在下面的例子中,我们选择在代码中使用引脚 D6 作为我们的 RELAY_PIN,该代码对应于继电器屏蔽上的 5 V 继电器 RELAY 4。
接下来将绝缘的 1/4" 母铲形接触端子压接到每根电线。这些将连接到 12V 电磁阀上的两个公连接器。然后通过加热将 2 段软管连接到 2 个母 1/2" 软管连接器用沸水冲洗软管,将其滑到每个适配器上,并用 O 形圈夹固定软管。这个设置可以在下面看到。
应该注意的是,螺线管是 12 V,但继电器只有 5 V。因此其中一根电线被切成两半,并添加了一个母 DC 筒形插孔适配器,以提供为电磁阀供电所需的电压。对于大多数电磁阀来说,哪根电线的极性无关紧要。
在将连接到水龙头的软管末端,连接一个 12 毫米软管接头,如下所示。
由于南澳大利亚的天气非常潮湿,因此使用室内水龙头适配器将狗水碗设置在室内。
第 3 步:设置电容式土壤湿度传感器
将粒子设备连接到红色和绿色 LED 以及电容式土壤湿度传感器,如下面的面包板的 Fritzing 图中所示。
下面的接线图将匹配下面 Github 链接上提供的代码。
第 4 步:编码
设置继电器和传感器的接线后,将提供的 C++ 代码复制并保存到 Particle Web IDE 上的新应用程序文件中,验证并将其闪存到您的 Particle 设备。
在创建的项目中,从传感器发布的代码被写入粒子氩,订阅和控制继电器的代码被写入粒子光子。
现在需要校准电容式土壤湿度传感器读数。为此,将传感器放置在水碗中,并在水碗半满和水碗满时读取空气中的读数。在将 Particle Argon 插入笔记本电脑时,通过串行监视器查看读数。这些读数是从循环中的以下代码行打印的:
// Take the reading
int moistureValue = analogRead(SENSOR_PIN);
// Print to serial so you can keep track, particularly when determining
// moisture values from sensor when dry and when water bowl is full.
Serial.print("Moisture Level: ");
Serial.println(moistureValue);
Serial.print(Time.hourFormat12());
Serial.print(":");
Serial.print(Time.minute());
Serial.print(":");
Serial.print(Time.second());
要查看这些读数,请打开 Arduino IDE(作为 Particle 和 Arduino use.ino 文件)并选择工具 -> 端口 -> /dev/cu.usbmodem..... 如下图所示。
然后选择 Tools -> Serial Monitor 查看读数。
从这些读数中,我确定水分读数在充满时为 2190,在干燥时为 3220。然后,我使用以下代码行将这些值分别映射到 100 % 和 0 %,以便于阅读碗的装满程度。
// Map these values to a percentage of how full. In this case when water bowl // was full moisture reading was 2190 and when dry it was 3220.
int moisturePercentage = map(moistureValue, 2190, 3220, 100, 0);
获得这些读数后,可以尝试进行试运行。两个 Particle 设备都已经在运行,因此将螺线管连接到水龙头并相应地调节水流,然后测试螺线管是否打开并且当湿度传感器干燥并且螺线管关闭时红色 LED 是否打开,绿色 LED 是否打开当湿度传感器暴露在水中时,红色 LED 熄灭。
第 5 步:设置 IFTTT
在进行测试运行时,通过检查粒子控制台并选择事件日志或我的设备来检查粒子设备正在发布的事件。
我们可以从上面的事件日志中看到粒子 Argon 已启动两次都已发布“完整”。
连接到继电器的 Particle Photon 的“开启”事件是我们将设置为通过 IFTTT 向用户发送电子邮件的事件。
如果您尚未在此处设置 IFTTT 帐户。
设置好帐户后,单击右上角的“创建”创建一个新的小程序,如下所示。
在下一页上,单击“如果这样”按钮。
在下一页上搜索粒子并单击粒子图标。
在下一页上选择“新事件发布”。如果您还没有,请按照提示连接您的 Particle 帐户。
在“发布的新事件”页面上,输入如下所示的详细信息,然后单击“创建触发器”。
这将带您返回 If This Then That 页面,您将在其中单击“The Then That”按钮。
在下一页上搜索 gMail 并单击 gMail 图标。
在下一页上选择“给自己发送电子邮件”。如果您还没有,请按照提示连接您的 gMail 帐户。
在“给自己发送电子邮件”页面上,输入下面显示的详细信息,然后单击“创建操作”。
单击“创建操作”后,您将进入以下页面。单击“完成”按钮。
第 6 步:设置 Webhook
我们现在将创建一个 webhook,以便在 ThingSpeak 上绘制水分百分比值。为此,我们首先将以下代码行插入smartdogwaterbowlpublish.ino应用程序:
// ThingSpeak
const char * eventName = "thingSpeakMoisturePercentageReading_";
// ThingSpeak Channel information
unsigned long myChannelNumber =XXXXXXX;
const char * myWriteAPIKey = "XXXXXXXXXXXXXXXX";
Particle.publish(eventName, "{"Moisture Percentage": "" + String(moisture) + "", "key": "" + myWriteAPIKey + "" }", PRIVATE, NO_ACK);
delay(PUBLISH_INTERVAL); // Moisture level read every minute
对于我的 Channel Number 和 myWriteAPIKey,您将能够在 ThingSpeak 页面的以下屏幕上找到要输入的字符,黄色圆圈所在的位置。
代码行:
Particle.publish(eventName, "{"Moisture Percentage": "" + String(moisture) + "", "key": "" + myWriteAPIKey + "" }", PRIVATE, NO_ACK);
将解析为分配给事件名称“thingSpeakMoisturePercentageReading_”的 JSON 块:
{
"Moisture Percentage":"97"
"key":"XXXXXXXXXXXXXXXX"
}
接下来在 Particle Photon Cloud 界面中,通过输入以下数据来构建“WebHook”类型的新“Integration”:
单击“高级设置”并输入以下内容作为 JSON 块,将每个参数附加为字段编号以显示在 ThingSpeak 频道上:
{
"event": "thingSpeakMoisturePercentageReading_",
"url": "https://api.thingspeak.com/update",
"requestType": "POST",
"api_key": "XXXXXXXXXXXXXXXX",
"field1": "{{{Moisture Percentage}}}"
}
单击“保存”并启动集成。
如果您还没有,请创建一个ThingSpeak帐户来接收和处理数据。现在创建一个新的“Channel”,给它一个名字和定义的字段来接收与上面的 JSON 块匹配的数据,如下所示:
将“元数据”设置为“JSON”并保存频道。现在可以将数据可视化为图形和仪表。
在左侧,我们在“15 分钟”时间尺度上创建了一个设置为“样条曲线”的折线图,显示了最后 480 个结果(过去 8 小时的结果)。将“Y 轴最小值”设置为“0”,将“Y 轴最大值”设置为略大于 100,例如 110。这表明狗从水碗中喝水的时间急剧下降。
在右侧,我们创建了一个仪表小部件,它显示了碗的当前水分百分比水平。该仪表的设置如下所示。
- 物联网狗碗和狗粮秤开源分享
- 三个传感器协同工作的智能狗碗
- Doggo水碗加注监视器/指示器 第1部分
- Doggo水碗补充监视器/指示器 第2部分
- 基于粒子群算法的D2D通信边缘缓存架构 3次下载
- 通过多模态特征融合来设计三维点云分类模型 3次下载
- 如何结合粒子群寻优与遗传重采样实现RBPF算法 2次下载
- 如何使用禁忌退火粒子群算法解决火力分配的问题 7次下载
- 如何使用核模糊聚类进行动态多子群协作骨干粒子群优化 21次下载
- 如何使用室内环境约束的行人航向粒子滤波算法进行修正方向误差 9次下载
- 云计算资源的动态随机扰动如何进行粒子群优化策略 1次下载
- 如何使用粒子Mean Shift迁移进行红外人体目标跟踪算法概述 2次下载
- 使用云计算任务调度的遗传粒子群优化算法的详细资料概述 9次下载
- 基于改进粒子群算法的云计算任务调度算法 0次下载
- 磁性纳米粒子的制备及其细胞分离方面的应用
- PLC可以与哪些设备进行通信 792次阅读
- 关于电子元器件空间辐射单粒子效应的考核 1341次阅读
- STM32中的独立看门狗和窗口看门狗 1212次阅读
- 如何使用消息队列进行通信 1304次阅读
- 如何使用消息队列进行通信 1193次阅读
- STM32中的独立看门狗和窗口看门狗 1882次阅读
- 尘埃粒子计数器使用说明 8024次阅读
- 一文看懂云电子狗与普通电子狗有什么区别 2.6w次阅读
- 电子狗哪个牌子好?电子狗排行榜十大牌子 7.8w次阅读
- 电子狗是什么_电子狗和导航仪的区别 3w次阅读
- 详细剖析汉云通信——人工智能语音交互系统 6486次阅读
- 通过改进算法对光伏组件内部参数进行准确辨识,并对外部输出特性进行预测 8322次阅读
- 通过云计算来挖掘人工智能服务的优势分析 5170次阅读
- STM32看门狗配置(独立看门狗IWDG和窗口看门狗WWDG) 8286次阅读
- stm32看门狗时间计算 独立看门狗和窗口看门狗的特性是什么 8660次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多