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

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

3天内不再提示

树莓派和Arduino的家庭自动化指南

454398 来源:网络整理 作者:网络整理 2020-01-30 17:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

我们之前已经讨论过Arduino和Raspberry Pi的相对优点–它们各有千秋。但是,它们不一定是一个选择,而是将它们组合在一起,以充分利用两者的优势。家庭自动化是此的理想选择。家庭自动化市场上充斥着昂贵的用户系统,它们彼此不兼容且安装成本很高。如果您有Raspberry Pi和Arduino,只要愿意花时间和精力,就可以以一小部分的价格实现相同的事情。

更新:自从撰写本文以来,我发现了OpenHAB,这是一个在Raspberry Pi上运行的免费开源家庭自动化平台,可以与大量现成的智能家居套件以及Arduino集成。观看下面的视频以了解更多信息,然后转到Raspberry Pi上的《 OpenHAB入门指南》以了解更多信息。

Heimcontrol.js是一个Node.js应用程序,旨在在Raspberry Pi上运行。与Arduino和一些现成的远程控制插座结合使用,可以轻松控制AC设备。您可以添加温度传感器,甚至可以控制电视,但今天我们将保持基本状态,并在以后的教程中扩展该项目。

以下是该项目的细分:

Raspberry Pi将充当大脑和操作的网关–它将运行与Mongo数据库绑定的Node应用程序,并为任何Web浏览器提供前端界面。

目前,由Pi供电的Arduino将在电子设备之间连接–无线电控制电源开关

为此,您需要:

Arduino和Raspberry Pi

一些远程控制的插座和控制器(我使用了它们)

有源USB集线器

在开始之前,这是项目创建者本人的演示视频。

重新开始

我们将在该项目中使用Raspian,如果您以前曾进行过其他黑客活动,我强烈建议您从全新安装开始。下载最新的Raspian映像,将其复制到SD卡,并确保扩展文件系统并启用SSH。本指南的其余部分将假定您已完成此操作,并且正在使用默认用户通过SSH连接。

如果您以前未进行过此操作,则此视频介绍了在其中准备SD卡的过程OS X:

这是Windows用户使用的:

准备工作

安装过程非常繁琐,并且从此处的说明中得出。不幸的是,它们已经过时或不是为Raspian设计的,因此我在下面进行了很大的调整。以下代码大部分都可以粘贴在块中,而无需一一粘贴。由于我们在Pi本身上进行了一些编译,因此请注意,整个过程将花费很长时间。我会说自己去喝杯茶-但是当我说“很长时间”时,我的意思是一天中最好的时间-所以178杯会更合适。

所有命令都应该键入进入终端,您可能需要在某些时候按Enter键。这些最初的几个命令将更新系统并安装必备组件:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install git-core git scons build-essential scons libpcre++-dev xulrunner-dev libboost-dev libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev

接下来,我们需要安装Node:

sudo mkdir /opt/node

wget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gz

tar xv*** node-v0.10.2-linux-arm-pi.tar.gz

sudo cp -r node-v0.10.2-linux-arm-pi/* /opt/node

sudo ln -s /opt/node/bin/node /usr/local/bin/node

sudo ln -s /opt/node/bin/npm /usr/local/bin/npm

向您的配置文件添加PATH变量,以便操作系统知道Node的位置。使用nano文本编辑器,如下所示:

sudo nano /etc/profile

找到显示 export PATH 的行,并将其替换为:

NODE_JS_HOME=“/opt/node”

PATH=“$PATH:$NODE_JS_HOME/bin”

export PATH

按Ctrl-X退出,然后按Y保存。

您可能需要注销并再次登录才能使路径更改生效,但是您可以使用命令:

which node

如果没有得到任何指向Node二进制文件的输出,则出问题了。

Mongo

下一个工作是安装Mongo。 Mongo是基于文档的No-SQL数据库,越来越多的Web应用程序使用它。不幸的是,这将永远需要安装,因为我们必须对其进行编译。在运行以下命令时,您会遇到很多错误,例如:

{standard input}:13085: Warning: swp{b} use is deprecated for this architecture

不要担心这些。因此,运行以下命令以安装Mongo:

git clone git://github.com/RickP/mongopi.git

cd mongopi

scons

sudo scons --prefix=/opt/mongo install

scons -c

完成后,我们首先需要进行更多设置以修复权限问题并确保其在启动时运行。

p》 sudo useradd mongodb

sudo mkdir /data/dbb

sudo chown $USER /data/db

cd /etc/init.d

sudo wget -O mongodb https://gist.github.com/ni-c/fd4df404bda6e87fb718/raw/36d45897cd943fbd6d071c096eb4b71b37d0fcbb/mongodb.sh

sudo chmod +x mongodb

sudo update-rc.d mongodb defaults

mongod

这最后一个命令将启动Mongo服务器,您需要打开一个新的Terminal才能继续执行其他命令。我对这一步骤并不完全有把握,因此,如果有人可以在有关如何使mongod在启动时自动启动的注释中更正此错误,将不胜感激。

sudo shutdown -r now

最后,是时候安装Heimcontrol.js Node应用程序了。

cd ~pi

git clone git://github.com/ni-c/heimcontrol.js.git

cd heimcontrol.js

npm install

您可以通过键入

node heimcontrol.js

开始运行应用程序。此时,您应该可以通过 http://访问控制界面从Pi进行localhost:8080 ,如果要从另一台计算机访问localhost,则将其替换为IP地址(也可以设置端口转发以从世界任何地方访问它),因此我d鼓励您在连接Arduino之前四处查看并检查所有数据库是否正常工作。

硬件

最终,我想要一个硬接线继电器,但现在我会

我已经使用了Maplin的一些便宜的20英镑套装(带有3个插座),打开了遥控器,这样我就可以直接与433 MHz进行接口了。芯片内部。我在这里找到了相关说明。

您还可以购买单独的433 MHz发射机,准备在eBay或业余电子供应商上使用。您需要做的就是将VCC连接到Arduino上的5 V,GND和一个控制引脚–记住您使用了哪个。 (Willi Thiel的示意图)

该插件通过发送“三态代码”来工作,但这些代码因制造商而异。请参考RCSwitch文档以找到您的确切代码。该Wiki指南也可能会有所帮助。

与Arduino的通信是通过称为duino的Node库完成的。如果Heimcontrol应用程序正在运行,请停止它,然后使用以下命令安装Arduino桥。

npm install duino

Arduino必须已上传此代码-我建议您复制并粘贴以从不同的计算机。它本质上是一个侦听器程序,可以响应Pi的串行命令,但是没有阻止您使用自己的功能对其进行扩展的功能。

应用程序启动,请转到设置菜单》 Arduino 。

从此处可以添加一个新项目,选择RCSwitch方法,发送器的引脚和三态地址代码。记住要保存,然后回到主屏幕屏幕查看新按钮。

错误:

经过数小时的操作调试代码后,我发现一位数字的引脚号不起作用–确保将发射器放在引脚 10 上。

我还发现Arduino插件在我的接收器所需的三态代码的最终位不正确地进行了硬编码。首先进行一些解释:三态代码由3个字节的信息组成。第一个确定我们的网络号(1-4),第二个确定我们的收发器地址(同样为1-4,最多产生16个可寻址套接字)。最后一个字节包含两位填充位,外加2位用于开/关。不幸的是,最后一个字节被硬编码到Arduino插件中–在我的情况下,开/关代码不正确。

我不得不手动编辑 plugins/arduino/index.js 使用正确的代码。如果您使用与我相同的远程控制插座,则将第80行向前更改为:

// Send RC code

if (item.value) {

return that.pins[item.pin].triState(item.code + “FFFF”);//change from FF0F

} else {

return that.pins[item.pin].triState(item.code + “FFF0”);//change from FF00

}

责任编辑:wv

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

    关注

    30

    文章

    5888

    浏览量

    89285
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195993
  • 树莓派
    +关注

    关注

    122

    文章

    2069

    浏览量

    109756
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    断电 0 秒恐慌!树莓 UPS 终极指南

    自动化中心)时,缺乏内置的断电保护功能。为何要为树莓使用UPS?防止数据损坏:突然断电可能会中断文件系统操作,导致SD卡损坏,进而引发系统不稳定或启动失败。确保安
    的头像 发表于 08-17 11:04 3774次阅读
    断电 0 秒恐慌!<b class='flag-5'>树莓</b><b class='flag-5'>派</b> UPS 终极<b class='flag-5'>指南</b>!

    如何搭建高效的树莓NAS?完整安装与配置指南

    访问、存储和共享文件。使用树莓创建网络附属存储(NAS)是为家庭或小型办公室构建个性且经济高效的存储解决方案的绝佳方式。树莓
    的头像 发表于 08-13 17:45 1375次阅读
    如何搭建高效的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>NAS?完整安装与配置<b class='flag-5'>指南</b>!

    树莓操作系统:版本、特性及设置完整指南

    树莓操作系统是什么?树莓操作系统是由树莓基金会专为树莓
    的头像 发表于 07-28 18:26 843次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>操作系统:版本、特性及设置完整<b class='flag-5'>指南</b>!

    工业树莓的高光时刻!树莓工业级 HMI 列阵!

    上海晶珩作为树莓官方设计合作伙伴和代理商,基于树莓技术开发了一系列工业级人机界面(HMI)产品,广泛应用于工业自动化、楼宇控制、智能制造
    的头像 发表于 07-23 18:36 546次阅读
    工业<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的高光时刻!<b class='flag-5'>树莓</b><b class='flag-5'>派</b>工业级 HMI 列阵!

    树莓防火墙完整指南:如何在局域网中配置 IPFire ?

    如果你希望在树莓派上配置IPFire,本指南将提供一种简单而有效的方法来加强你的网络安全。在日益互联的世界中,保护家庭或小型办公室网络免受外部威胁至关重要。一个有效的解决方案是部署防火墙——一种监控
    的头像 发表于 07-21 16:34 814次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>防火墙完整<b class='flag-5'>指南</b>:如何在局域网中配置 IPFire ?

    树莓5上使用YOLO进行物体和动物识别-入门指南

    大家好,接下来会为大家开一个树莓5和YOLO的专题。内容包括四个部分:在树莓5上使用YOLO进行物体和动物识别-入门指南
    的头像 发表于 07-17 17:16 1573次阅读
    在<b class='flag-5'>树莓</b><b class='flag-5'>派</b>5上使用YOLO进行物体和动物识别-入门<b class='flag-5'>指南</b>

    树莓小技巧:无需键盘或显示器,如何通过WiFi设置树莓

    树莓是一款小巧便携的USB供电计算机,可以隐藏起来用于小型项目,如网络服务器或家庭自动化。通常,设置树莓
    的头像 发表于 06-26 15:41 1054次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>小技巧:无需键盘或显示器,如何通过WiFi设置<b class='flag-5'>树莓</b><b class='flag-5'>派</b>?

    树莓分类器:用树莓识别不同型号的树莓

    在本教程系列的第一部分中,您将学习如何使用树莓AI摄像头来检测不同的树莓型号。本系列由DavidPlowman创建,他是树莓
    的头像 发表于 06-13 16:39 1001次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>分类器:用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>识别不同型号的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>!

    树莓“揪出”家里的耗电怪兽!

    在本应用中,我们将使用树莓设置一个CE电流监测器,并通过网页界面显示电路的电流读数。本项目使用的组件硬件组件树莓2ModelBx112通道20安培电流监测控制器x1项目背景介绍在本
    的头像 发表于 06-04 15:33 1148次阅读
    用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>“揪出”家里的耗电怪兽!

    树莓“吉尼斯世界记录”:将树莓的性能发挥到极致的项目!

    树莓是一款功能强大、体积小巧且高度可定制的设备,多年来,我们见证了它被应用于众多领域。无论是将其装入3D打印的经典游戏机外壳,还是简单地将它隐藏起来作为家庭文件服务器,我们都报道过在社区里用
    的头像 发表于 05-22 16:53 1213次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>“吉尼斯世界记录”:将<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的性能发挥到极致的项目!

    树莓也能实现海上自动化驾驶?

    全员登船,共赴树莓之旅生活中有些问题,用树莓派来解决会更有乐趣。今天,我们要与航海爱好者们分享一个由创客TommyJoad打造的巧妙项目。Joad是一位帆船船长,对现代自动驾驶系统了
    的头像 发表于 04-24 16:04 544次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>也能实现海上<b class='flag-5'>自动化</b>驾驶?

    智能家庭爱好者必看:树莓语音助手打造指南

    、恒温器或其他自动化功能时,语音助手会特别有用。树莓提供了一种可靠且经济实惠的托管HomeAssistant的方式,并且可以与各种插件和硬件很好地集成。设置正确的
    的头像 发表于 04-18 16:02 793次阅读
    智能<b class='flag-5'>家庭</b>爱好者必看:<b class='flag-5'>树莓</b><b class='flag-5'>派</b>语音助手打造<b class='flag-5'>指南</b>!

    树莓PLC:让工业自动化进入DIY时代!

    PLC和树莓简介可编程逻辑控制器(PLC)是一种专为各种行业的流程自动化和机械控制而设计的工业计算机。PLC以其高可靠性、坚固耐用性著称,能够处理诸如管理传送带、监控传感器或操作机器人系统等任务
    的头像 发表于 04-11 15:32 1215次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>PLC:让工业<b class='flag-5'>自动化</b>进入DIY时代!

    STM32、Arduino树莓开发方式差异大吗

    最近看到有网友问:STM32、Arduino树莓开发方式差异大吗?   要说相同点,它们之间也有很多相同点。但你要说他们之间开发的差异,其实也蛮大的。   STM32、Arduino
    的头像 发表于 01-02 11:33 1937次阅读

    Raspberry Pi树莓新手指南

    电子发烧友网站提供《Raspberry Pi树莓新手指南.pdf》资料免费下载
    发表于 12-23 17:05 4次下载