×

智能鸡舍Arduino开源分享

消耗积分:0 | 格式:zip | 大小:0.09 MB | 2022-10-27

张健

分享资料个

描述

我的母鸡和我住的地方不同。他们有一个自动门,可以按我设定的时间打开和关闭,但母鸡是生物,而不是机器。他们有时不能及时进入。这意味着我必须走大约 15 分钟到鸡舍,手动打开门,然后回家。我认为必须有一个更好的解决方案,我不仅可以及时打开/关闭,还可以根据我的需求打开/关闭。但是没有。嗯,没有……因为我自己做了解决方案……看看智能母鸡舍!而且它的功能远不止按需开关门,它可以根据内部温度打开/关闭加热器,当鸡可能关在外面时通知您,还可以检查您的自动给水器是否出现故障和溢出!

传感器

打开/关闭门开关

我用微动开关知道门是打开还是关闭

 
pYYBAGNYsaWAbXybABT0Xo5WepI79.jpeg
 
1 / 4
 

运动传感器(PIR SENSOR)

 
 
 
poYBAGNYsa2ABpa_ABHhK-czAK479.jpeg
 
1 / 2
 

水位传感器

 
 
 
pYYBAGNYsbOAcTUXAA3UEjk-ZlE10.jpeg
 
1 / 2
 

就我而言,我遇到的唯一问题是自动填充系统中的水可能会出现故障,如果出现故障,我希望它通知我,所以我在水箱上切了一个洞,并将土壤 oplá 套件湿度传感器放入。所以当水到达它,它触发。

门伺服

 
 
 
poYBAGNYsbqAFOlOAA8y-2baGvM41.jpeg
 
1 / 2已安装门伺服
 

温度感应器

不幸的是,我找不到我使用的温度传感器的照片

中继

现在我们根据原理图连接所有东西

印刷电路板

 
 
 
pYYBAGNYscOAbUNKAA6Rlao1oE005.jpeg
 
1 / 4
 

物联网云设置

poYBAGNYscWACR2UAAAzqbvINRQ816.png
 

 

poYBAGNYsciAcNzzAAA2xavgo3U595.png
 

 

pYYBAGNYscqADjpUAAAwmk3cxq8159.png
 

activityLog - 字符串,只读,更改时

closeTime - 时间、读写、变化

doorRealState - 整数,只读,更改时

doorShouldBe - 布尔值,读取和写入,更改时

doorState - 布尔值,只读,更改时

errorLog - 字符串,只读,更改时

heatState - 布尔值,读取和写入,更改时

heatTempStartup - 浮点数,读取和写入,更改时

湿度 - 浮点数,只读,定期(30 秒)

motionOutside - 字符串,只读,更改时

doorState - 布尔值,只读,更改时

openTime - 时间、读写、变化

压力 - 压力,只读,定期(30 秒)

temperatureIn - 温度,只读,周期性(10s)

waterOverFlow - 布尔值,只读,更改时

IFTTT 通知(需要 IFTTT Pro+)

首先,我们创建新的小程序并向其添加带有 JSON 有效负载的 webhook 触发器。

poYBAGNYsc6Ab_-NAACj2UkWIM0106.png
 

然后我们添加触发器应该做什么。我选择了通知,但您可以选择电子邮件和其他内容。

pYYBAGNYsdGAd83aAAEBg2uVJms037.png
 

然后我们添加过滤器

poYBAGNYsdSASsCoAADJHCiGgBE379.png
 

并将其粘贴到过滤器代码

var payLoad = JSON.parse(MakerWebhooks.jsonEvent.JsonPayload);
if (payLoad.value1 == "motionOutside"){
 if (payLoad.value2 == "Motion outside detected!"){
   IfNotifications.sendNotification.setMessage("Motion outside detected!")
 }else{
   IfNotifications.sendNotification.skip();
 }
}else if (payLoad.value1 == "waterOverFlow"){
 if (payLoad.value2 == "true" || payLoad.value2 == "1" || payLoad.value2 == "True" ){
   IfNotifications.sendNotification.setMessage("Water is overflowing!")
 }else{
   IfNotifications.sendNotification.skip();
 }
}else if (payLoad.value1 == "errorLog"){
 IfNotifications.sendNotification.setMessage("Error! Check errorLog!");
}else if (payLoad.value1 == "heatingState"){
 if (payLoad.value2 == "true" || payLoad.value2 == "1" || payLoad.value2 == "True" ){
   IfNotifications.sendNotification.setMessage("Heating turned on...")
 }else{
   IfNotifications.sendNotification.skip();
 }
}
else{
 IfNotifications.sendNotification.skip();
}

然后我们继续并完成。

现在在配置文件图标下,我们单击我的服务并找到 webhook

打开文档。

我们将带有 JSON 有效负载的触发器中的 {event} 更改为我们的触发器名称并复制它。

pYYBAGNYsdeAVtiMAABQ8JuHWK8013.png
 

然后我们回到 Arduino IoT Cloud 并单击 set webhook。

pYYBAGNYsdqAFHBTAADscl6gxWg834.png
 

我们在那里粘贴我们的链接添加它,就是这样!

3D打印零件

不幸的是,我找不到我在哪里下载了大部分模型,因此在没有信用的情况下将其添加到此处将是抄袭,但我相信您可以找到适合您的模型!

仪表板

这个项目的仪表板上有很多选项,所以让它对自己友好!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !