0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

室内播种机的制作

454398 来源:wv 2019-09-20 08:53 次阅读

第1步:传感器芯片 - RPi配置

我们将在该项目中使用SGP30 CO2和VOC(挥发性有机化合物)传感器。它讲的是I2C,它在Raspberry Pi上相对容易使用。 Adafruit的Arduino和CircuitPython板已有预先存在的库,但我找不到Pi的库,所以我自己写了。

将传感器连接到Pi

首先,我们让Pi设置为I2C。

在本指南中,我引用 物理Pi引脚数 ,不 Broadcom或GPIO号码。在本PDF中,我使用的是中间的(白色背景,在键中标记为“位置”)。

在你的Pi上,运行 sudo raspi-config 。在“接口选项”下,找到并启用“I2C”。

在Raspbian的最新版本中,我们需要的软件已经安装,但为了以防万一,使用 apt-get 来安装 python-smbus 和 i2c-tools:

$ sudo apt-get update

$ sudo apt-get install python-smbus i2c-tools

关闭pi并连接SGP30突破端的引脚,如下所示:

SCL →Pi pin 5

SDA →Pi pin 3

Vin →Pi 5v(任何会做)

Gnd →Pi接地(任何会做)

1v8 未连接

打开Pi电源并检查是否检测到SGP30。运行 i2cdetect -y 1 并查找地址为0x58的设备。 (注意,在其他一些Pis上,你想要 i2cdetect -y 0 ,显然)。

就是这样!让我们试着谈谈这件事。

第2步:传感器芯片 - 脚本

现在连接并检测到传感器芯片,让我们测试一下。

从Github下拉SGP30 RPi库:

$ git clone https://github.com/misterfifths/sgp30.git

将目录更改为克隆的仓库:

$ cd sgp30

运行演示脚本:

$ python demo.py

SGP30需要大约15秒才能预热,所以希望看到“热身。..。..“一会儿。最终你应该看到如上图所示的输出。

疑难解答

IOError :检查与突破的连接板。这通常意味着I2C连接出现问题。

使用SMBus的

ImportError :未安装SMBus。运行 apt-get install python-smbus。

第3步:演讲者

Raspberry Pi Zero没有专用音频输出,因此我们将使用PWM引脚来模拟它。我们将遵循Adafruit的本指南中的一些内容,不幸的是,这些内容已经过时了。还有一些小的调整,主要是因为使用单声道音频。

Raspberry Pi设置

启用PWM音频的设备树覆盖,记录在这里。在您喜欢的编辑器中以root身份打开/boot/config.txt ,并在最后添加此行:

dtoverlay=pwm

您可以跳过此步骤Adafruit将PWM引脚设置为Alt-5模式的指南;对于设备树覆盖,这似乎是不必要的。

您也可以跳过Adafruit指南中的低通滤波器,除非您有冒险精神。没有它我们从Pi得到了不错的音频。

运行`sudo raspi-config`,在“Audio”下,强制输出超过3.5mm(耳机)插孔。这将确保即使连接HDMI电缆,扬声器仍然可以工作。

重新启动Pi。

连接放大器

现在已将Pi设置为PWM音频,我们需要连接放大器。规格表说如果我们没有差分输出(我们没有),我们应该接地音频。所以布线是这样的:

放大器A + →Pi引脚12(这是 pwm 叠加使用的PWM音频引脚默认)

放大器A - →Pi接地(任何会做)

放大器输入→Pi 5v(任何会做)

Amp Gnd →Pi接地(任何会做)

Amp SD 未连接(这是关机引脚 - 可以很有趣,但不是必需的)

将放大器输出端子连接到扬声器,然后重新启动Pi。

测试音频并最大限度地减少静电

由于我们使用PWM伪装音频输出,因此波形非常嘈杂。以下是我们如何从Pi获得合适的音频:

运行 alsamixer 并将音量调高。

使用 aplay 播放声音。你应该听到声音,之后可能会听到很多静电。

使用小螺丝刀调节放大器板上的电位计。如果您听到静电,请将其关闭只是,直到您不再使用它为止。如果您什么也听不到,请将其翻转直至听到静电,然后再向下听。

再次运行 aplay ,看看它是如何发声的。即使低于静态限制,我们也会在音频文件的响亮点上发出嘶哑的声音。根据需要调整电位计。

请记住,扬声器最终会放在一个盒子里,所以你可能希望它尽可能大。

故障排除

如果您无法让扬声器播放任何内容,请检查接线,并确保在调整 config.txt 后重新启动。还要检查 gpio readall 的输出:您应该看到物理引脚12处于模式ALT5。如果没有,请尝试运行 gpio -g mode 18 alt5 。这应该是设备覆盖的默认设置,但值得一试。

步骤4:灯光

用于呼吸和咳嗽动画,我们需要一些灯!我碰巧有一个Pimoroni Blinkt!方便,但你可以很容易地使用一条NeoPixels。

Blinkt被设计为盾牌,但这对我们没有好处;我们想要很多这些针脚。事实证明,从检查引脚排列,Blinkt实际上只使用了4个引脚。因此,我们只需将这些内容直接连接到Pi,这样我们就可以使用Python库而无需更改。

连接Blinkt

连接以下引脚:

Blinkt pin 2 →Pi 5v(任何会做)

Blinkt pin 4 →Pi ground(任何人都会这样做)

Blinkt pin 16 →Pi pin 16

Blinkt pin 18 →Pi pin 18

所有其他Blinkt引脚可以不连接

测试

启动Pi并安装Blinkt带有 sudo的Python库apt-get install python-blinkt

运行 python 并尝试一个简单的灯光演示,也许是这样的:

import blinkt

blinkt.set_clear_on_exit()

blinkt.set_all(128, 50, 50)

blinkt.show()

# admire for a few seconds

# hit ctrl+d to exit

疑难解答

男人,Blinkt pinout实在令人困惑。确保你的方向正确(注意圆角)。在我们的模型中,如果您将Pimoroni盗版徽标放在顶部,则需要在标题的左侧放置引脚(参见照片)。

第5步:软件 - Google表格设置

每隔几秒钟,代码会将空气质量读数记录到Google电子表格中。我们正在使用gspread库。授予对Google表格的gspread访问权限有点复杂,他们的指南有点过时了。请按照以下步骤操作:

转到Google Cloud Resource Manager。您可能必须注册Google开发人员计划才能访问此计划。

点击顶部的“创建项目”按钮,随意填写详细信息

在下一页的“API”面板中,选择“转到API概述”。

在该页面上,点击顶部的“启用API和服务”。

搜索并启用Google Drive API和Google表格API。不要担心有关凭据的警告;我们接下来会处理。

返回API Dashboard并从左侧列表中选择“Credentials”。

下拉“创建凭据”按钮并选择“服务帐户密钥”。当需要对Sheet进行更改时,这将创建一个“用户”,我们的脚本将充当该用户。

在下一页上,为帐户指定一个名称(任何将要执行的操作),并从“角色”下拉列表的“服务帐户”部分为其指定“服务帐户用户”角色。

确保在“密钥类型”部分中选择“JSON”并点击“创建”。 JSON凭证文件将自动下载。保持安全,不要在任何地方发布!它等同于密码(虽然它只能访问您授予它访问权限的密码,但它仍然是最安全的)。

最后,我们需要找到服务帐户用户的完整用户名。选择左上方的汉堡菜单,然后选择“IAM&admin”,然后选择“IAM”,转到“IAM”仪表板。记下服务用户帐户的电子邮件地址。它应该是“username@appname.12345.iam.gserviceaccount.com”形式的东西。 (请注意,这也在我们之前下载的JSON文件中,如果您只是想从那里抓取它。)

好的,这很令人筋疲力尽。最后一步是为数据记录制作电子表格并授予对服务用户的访问权限。我们会这样做:

制作新的Google表格。不需要任何特别的东西。您可能想要制作一个列标题(将有三个:时间戳,CO2(ppm)和VOCs(ppb))。

授予我们之前制作的服务帐户用户的编辑权限。在右上角,选择“共享”,粘贴服务用户的电子邮件地址,下拉铅笔按钮并选择“可以编辑”。点击“发送”,你应该好好去!

记下电子表格网址中非常长的ID部分(/spreadsheets/d/和/edit 之间的部分)。我们需要在下一步配置gspread。

第6步:软件 - 现在全部在一起

好吧,让我们下拉并配置完全可以使用的软件!

安装一些依赖项:

$ sudo apt-get install python-pip python-pyaudio

$ pip install pydub oauth2client gspread

克隆存储库:

$ git clone https://github.com/misterfifths/planter.git

转换到新的 planter 目录:

$ cd planter

将SGP30驱动程序复制到 planter 目录。如果您以前克隆过它,那应该类似于。..。..

$ cp 。./sgp30/sgp30.py 。

将Google表格JSON凭证文件从上一步复制到种植者目录,并将其命名为“gsheets-creds.json”。

查找或记录您喜欢的咳嗽声(尝试freesound.org!)并将其放入 planter 目录中。

在您喜欢的编辑器中,打开“planter.py”文件。

在初始化GoogleSheetsLogger的第22行附近,将长串数字和字母替换为您在上一步中创建的工作表的ID。

在第143行附近,更改设置 cough_filename 的行中的文件名,以匹配您在步骤6中选择的咳嗽的文件名。

就是这样!运行 。/planter.py 以完成整个过程。如果空气质量良好,前几秒钟前LED将以轻松的蓝色“呼吸”。如果不好,扬声器会发出咳嗽声,灯光会同步发出红色脉冲。

在代码中逛逛并改变一些东西 - 时间,“好”和“坏”的空气质量阈值,颜色等

第7步:案例

我们用激光切割机制作外壳为种植者。我们设计了两个部件:木制外箱,带电子设备的隐藏隔间和传感器伸出的孔,以及用于工厂的防水丙烯酸套管。

两件式的PDF均可在这里找到。盒子的骨架是使用激光切割器Ruby Gem构建的(如果你用Illustrator打开PDF,你可以看到我们在画板之外使用的设置)。我们使用了1/8“厚的木材;如果你使用不同的厚度,或者如果你的激光切割机的切口与我们的切口明显不同,你将需要调整盒子.PDF包括3个面板选项 - 两个带有非常大的格栅用于灯的小孔和第三个带有较大圆圈的孔,Blinkt上每个LED一个。

为了防水丙烯酸,我们用硅胶粘合剂密封它,我们让它在一夜之间固化。彻底测试密封用水填充套管,让它静置一段时间,然后在外面寻找水滴。根据需要重新开始直到你满意为止。

切割后,我们染了木头并涂上了巴西棕榈树基于蜡的轻质防水。盒子应以相当明显的方式装配在一起。后面有四个孔的面,下面的孔是SGP30芯片穿过(上下颠倒)。两个小块在上面PDF的右侧是芯片顶部的小盖子。没有孔的部分是“架子”帽子安装在盒子三面的插槽中,为播种机套筒和电子设备的分离提供支撑。

步骤8:将所有内容和后续步骤拼凑起来

现在一切都在运行,现在是时候把它全部塞进去了。我们这里没有任何好的建议。我们确实使用半尺寸面包板的电源导轨为所有组件提供了一个电源和接地源,但是我们只是把东西塞进去并用一点热胶和胶带固定。

关于从哪里开始的想法:

添加土壤湿度传感器,或植物健康的其他传感器(根电容,叶子颜色等)

在你的推文上

添加温度和湿度传感器以提高SGP30的准确度

添加轮子和光电传感器以使工厂停留在空气质量不佳的情况下老板或城市或EPA

尽可能多的阳光。

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

    关注

    2525

    文章

    48069

    浏览量

    739987
  • Arduino
    +关注

    关注

    184

    文章

    6427

    浏览量

    184826
收藏 人收藏

    评论

    相关推荐

    GPS能室内定位吗?

    GPS能室内定位吗? GPS(全球卫星导航系统)是一种使用卫星技术进行定位和导航的系统,它可以在户外环境下非常准确地确定位置信息。然而,在室内环境下,GPS的定位准确性会大大下降,甚至无法使用。因此
    的头像 发表于 12-12 14:39 1407次阅读

    如何利用ZigBee技术进行室内定位?

    怎样利用ZigBee技术进行室内定位?
    发表于 11-09 07:26

    写字制作过程

    写字制作过程,图解,利用了core——XY的结构,详细制作图解,需要有一定制作基础的DIY同学。
    发表于 09-27 07:41

    基于Arduino的家庭自动化项目

    包含相关代码、详细图文、物料表一个简单的基于DIY Arduino的家庭自动化项目,它使用土壤湿度传感器、泵和其他电子元件来自动浇水植物。它由一个适合室内园艺的混凝土花盆箱组成。自流式播种机也可作为水培系统使用。电气系统可根据农业和农业需求以及微灌系统进行扩展。
    发表于 09-26 08:16

    51单片POV趣味制作解析

    u3000本书所有制作都经过作者亲手制作完成,对制作过程和编程思路等采用了大量图片作详细阐述,力求使读者“看了就能做,做了就成功”。本书可作为单片初学者及电子DIY爱好者的参考用书,
    发表于 09-26 07:32

    制作1.5公里覆盖的对讲

    制作简易的对讲,覆盖范围1.5公里,无噪音,声音清晰!包含相关物料表+线路图+代码文件
    发表于 09-25 08:11

    基于单片AT89C51的室内灯光控制系统的研究和开发

    本篇论文介绍了就是基于单片AT89C51的室内灯光控制系统的研究和开发。本系统是以单片为控制器的核心,本系统主要由光照检测电路、热释电红外线传感器及处理电路、单片系统及控制电路组
    发表于 09-25 08:03

    单片编程下载线的制作讲解

    该文档为最简最新单片编程下载线制作讲解文档,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
    发表于 09-22 07:58

    九种室内定位技术概览 室内定位技术的原理和应用场景

    近年来,国内外相关厂商研发与应用了多种室内定位技术,其应用场景也不断丰富。本文介绍了室内定位技术的用途,详细解读了九种室内定位技术,并介绍了室内定位技术的原理,以及国内外主流的
    的头像 发表于 08-30 10:53 1.1w次阅读
    九种<b class='flag-5'>室内</b>定位技术概览 <b class='flag-5'>室内</b>定位技术的原理和应用场景

    一文搞懂室内外网线不同

    网线从其应用场景来看分为室外网线和室内网线,室内外网线有什么不同呢?这是很多网友的疑问,为了帮助大家正确选择,科兰通讯小编围绕室内外网线展开介绍。 室内外网线不同: 顾名思义,室外网线
    的头像 发表于 07-11 10:58 793次阅读
    一文搞懂<b class='flag-5'>室内</b>外网线不同

    带Seeed SenseCAP K1100的物联网播种机

    电子发烧友网站提供《带Seeed SenseCAP K1100的物联网播种机.zip》资料免费下载
    发表于 06-13 16:03 0次下载
    带Seeed SenseCAP K1100的物联网<b class='flag-5'>播种机</b>

    通过5v引脚为Wemos D1 mini供电时报错怎么解决?

    减去 9v 稳压器。 Wemos 播种机 R3_schem.jpg 当通过 reg 为 5v 引脚供电时,我仍然没有工作的步进驱动器。 我肯定错过了什么。我不明白为什么调节器变得这么热,或者为什么步进驱动器在 USB 电源上工作而不在 5v 引脚电源上工作。 有任何线索吗?
    发表于 06-06 10:11

    室内LED显示屏都有哪些工厂

    会议室LED显示屏报价 会议室P2LED显示屏 室内LED显示屏厂家,深圳迈普光彩产品全面室内全彩显示屏、户外全彩显示屏、透明led显示屏、舞台租赁led显示屏、LED地砖显示屏、LED软模组、小间
    的头像 发表于 05-11 09:14 2096次阅读
    <b class='flag-5'>室内</b>LED显示屏都有哪些工厂

    室内光缆的分类-科兰

    室内光缆分类,由于室内光缆受到建筑物环境,敷设条件等限制,导致了室内光缆的结构设计趋于复杂化,光纤与光缆所用材料多样化,光缆的机械性能与光学性能各有侧重等。 1.按使用环境和地点进行划分 可分为
    的头像 发表于 05-05 10:16 632次阅读

    光纤光缆厂家:室内光缆有哪几种分类形式

    光缆主要有哪几种类型?光缆的使用分类及场景有很多不同,按照使用环境可将光缆分为室内光缆和室外光缆。由于在室内光缆使用中受到很多因素的限制,所以室内光缆的设计结构趋于复杂化。今天小编就来讲讲室内
    的头像 发表于 04-26 14:42 646次阅读