×

植物提醒框开源分享

消耗积分:0 | 格式:zip | 大小:0.45 MB | 2023-06-29

分享资料个

描述

动机

作为新的植物父母,不幸的是,我经常忘记给植物浇水,或者错误地将植物放置在阳光太少或太多的地方。有时,我希望我的工厂可以通过某种方式让我知道它需要水或更多的阳光,这是我开展这个项目的动力。

为了希望能延长我的植物和你的植物的寿命,我创建了这个植物提醒框,如果植物需要水或需要不同量的阳光,它会向植物所有者发送短信。此外,盒子有一个屏幕,可以显示植物的阳光和水位,以便植物所有者可以直观地“检查”植物。这样一来,我或你真的没有理由没有绿拇指!

概述:系统和电源框图

 
 
 
poYBAGN3LoOAAB7cAAE4rIkcVy4239.png
 
1 / 2系统框图
 

连接到 Wifi

硬件

为了能够从盒子发送文本,我需要连接到 wifi。我使用了一个微型 USB 分线板并插入了 wifi 适配器。在整个项目中,我在通过手机的热点连接到 Wi-Fi 时遇到了一些麻烦,然后我意识到每次启动 PocketBeagle 时我都需要打开热点窗口。在 PocketBeagle 本身上,我将引脚 VBUS (P1_5) 和 VIN (P1_7) 焊接在一起,并将引脚 ID (P1_13) 和 GND (P1_15) 焊接在一起,以将 microUSB 板和 wifi 适配器连接到 USB1 总线。

poYBAGN3LoiAcENkAAdpB1I1ZQc26.jpeg
USB 适配器和 Wi-Fi 加密狗
 

软件连接适配器后,我需要使用 cloud9 门户连接到 wifi。这是使用下面的 connmanctl 命令完成的。同样,如果我想连接到手机的 wifi,我需要在扫描 wifi 时打开手机的热点窗口。我遇到的另一个问题是我无法在非交互模式下打开代理,所以我不得不在我的代码中创建一个无法连接到 wifi 的错误字段。

 
 
 
poYBAGN3LouAC24rAAGCVvFbATc276.png
 
1 / 2与 Rice IoT Wi-Fi 的软件连接
 

通过 PocketBeagle 发送文本

要通过 PocketBeagle 发送文本,我需要确保我已连接

poYBAGN3LpCAH2jpAActEJKD6ps67.jpeg
 

ted 到 wi-fi,我还必须使用 smptlib 库登录到我的电子邮件以连接到 gmail 服务器。

pYYBAGN3LpSAL7VeAALK1YFeap8433.jpg
文本
 

为此,我不得不手动登录我的 gmail 并允许第三方应用程序登录我的电子邮件,因为我从 gmail 收到了一些警报,表明设备正在尝试登录我的电子邮件。我还必须为这种情况创建一个错误字段。以下是一些有用的说明和发送文本的代码:

poYBAGN3LpaAIursAAEXoGD8xl0551.png
链接:https://www.digikey.com/en/articles/how-to-make-a-beaglebone-based-appliance-notification-texter
 

土壤湿度和光传感器测量

土壤湿度传感器

设置好 wifi 和短信界面后,我使用土壤湿度传感器来监测植物的水位。我使用板上的 I2C 引脚连接到传感器,还需要一个四针连接器。引出线显示在下面的卷曲图中。传感器同时进行湿度和温度测量,但我只在这个项目中使用了湿度方面。传感器根据电容值测量湿度,通过对我自己的植物的一些测试,我发现植物浇水后的值至少为 580,所以这就是我在代码中设置的最小值.

 
 
 
poYBAGN3LrmALyHBAAq1Efyu4SA28.jpeg
 
1 / 2土壤湿度传感器
 

下面是一些设置 I2C 引脚并实时输出湿度和温度测量值的示例代码。

poYBAGN3LruAF_JmAACqfrghnWM916.png
土壤湿度传感器示例代码
 

传感器

对于光传感器,我决定通过将它们放置在植物的不同侧面来获取它们的输出值并对它们进行平均以获得更准确的奇异读数。传感器输出模拟值,所以我使用了 BeagleBoard 上的两个 Ain 引脚。引出线显示在下面的卷曲图中。光传感器使用毫伏测量光,通过研究普通室内植物所需的阳光量,我发现范围在 1000 到 2000 mV 之间。高于此范围的值表示过多的阳光照射,而低于此范围的值表示曝光不足。

poYBAGN3LsGAOHFKAAlCD8cqJaM41.jpeg
光传感器
 

下面是一些示例代码,用于设置 ADC 总线,获取两个传感器值,并对它们进行平均。

pYYBAGN3LsOANgsEAACSeL_2AAg289.png
光传感器示例代码
 

在液晶屏上显示

硬件

首先,我将 IM1、IM2 和 IM3 引脚焊接在一起,以便屏幕能够连接到 PocketBeagle 的 SPI 总线。

pYYBAGN3LsaAM5p6AADg5S1fSQU86.jpeg
IM 焊接连接
 

接下来,我将 LCD 屏幕上的引脚 Vin、GND、CLK、MISO、MOSI、CS 和 D/C 连接到下图所示的 PocketBeagle。

pYYBAGN3LsiAUagkAADEvcHvP3E89.jpeg
TFT LCD 屏幕与 BeagleBoard 的连接
 

软件

为了显示水位和光照水平,我需要配置 TFT LCD 屏幕。我使用了 PocketBeagle 的 spi 板并导入了一些有用的库,包括:

  • 电路蟒蛇
  • 显示器
  • 数码
  • 太平船务
  • Adafruit_BBIO
  • 终端机
  • Adafruit_display_text

我为显示器导入的所有库都包含在下面的代码中,这是我发现对连接屏幕最有用的参考:

https://www.adafruit.com/product/2090

这是我发现的显示文本最有用的参考:

https://learn.adafruit.com/circuitpython-display-support-using-displayio/text

当我第一次开始使用它时,我能够在 cloud9 门户上显示我已导入到我的项目文件夹中的图像。

poYBAGN3LtaAEwyOAA-G1iRIhdo26.jpeg
显示图像
 

这是一些代码,其中purple.bmp是图像。首先,我导入了正确的库。

pYYBAGN3LtmABXgBAAElxkWqlqI422.png
显示导入库代码
 

接下来,我设置了我的 SPI 总线以及 PocketBeagle 上的 CS 和 DC 引脚,如下图所示。我从当前所在的文件夹中导入图像,设置我的显示,然后显示我的图像。

pYYBAGN3LtyABEgMAAE5GCCDx88316.png
显示图像代码
 

虽然我的项目不涉及显示图像,但了解如何使用 LCD 屏幕以及以后如何显示文本对我来说至关重要。

在显示文本方面,我必须导入一些额外的库,而不是下面的代码,包括 Adafruit_display_text。

poYBAGN3Lt-ADZRTAAMJzd4PAfc056.jpg
文字显示
 

这是我用来设置背景颜色和在屏幕上显示文本的函数,一旦我导入了正确的库。

pYYBAGN3LuGAInGiAAEWUj291Yc945.png
显示文本功能的代码
 

由于 wifi 连接和电子邮件登录功能有点挑剔,我在我的代码上设置了一个错误字段,这样如果出现问题,屏幕就会在启动时变为红色。

最后,我为设备构建了一个小盒子,.ai 文件可以在本文末尾找到。这是该设备在放入外壳之前和之后的一些图片。

 
 
 
pYYBAGN3LuSAb3ReAACkMm1fJH486.jpeg
 
1 / 2裸体
 

总之,一旦下载了 GitHub 存储库,用户只需在代码中设置电子邮件和电话号码设置,并确保 PocketBeagle 已连接到互联网。连接后,设备将开始运行。该设备将显示植物的水位和光照水平,并相应地向用户发送短信。

 

 


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

评论(0)
发评论

下载排行榜

全部0条评论

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