跑在树莓派上智能家居雏形

跑在树莓派上智能家居雏形


简介

一个以微信为终端的好玩的小东西

可以实现的功能

可以实现以手机微信端对树莓派终端进行实时监控、摄像头云台操纵、闯入报警、温度检测、灯光控制、自动光线控制等功能

设备图片

运行截图

需要用到的所有硬件

  • 路由器
  • 树莓派主板
  • 树莓派电源(5V 2A)
  • 至少 8g tf卡 (推荐class 10,8g足矣)
  • 支持ouv的摄像头(罗技C170)
  • 花生棒及电源(或用花生壳内网版代替)
  • 乐高积木(小颗粒)
  • 两根网线
  • 温度传感器(DHT11)
  • 光线传感器(光敏电阻模块)
  • 人体红外传感器(HC-SR501)
  • 继电器(5V低电平触发)
  • 步进电机(28BYJ-48-5V)
  • 步进电机驱动板(UL2003型)
  • GPIO连接线若干

需要安装的所有软件

Windows端

  • Putty(0.63)
  • WinSCP(5.1.7)
  • Win32DiskImager(0.9.5)
  • Notepad++

Raspberry Pi端

配置过程

初始化树莓派

使用Putty登陆树莓派

Username:pi

Password:raspberry

获取root权限

sudo passwd root

(需要输入两次你想设置的root密码)

sudo passwd --unlock root

设置完成后重启Putty,以root身份登陆

释放空间及设置时区

以root身份登录后会自动弹出raspi-config设置工具,也可直接输入raspi-config调出

1. 执行第一项,一直选择ok即可

2. 选择第四项,然后选择第二项,进入时区设置

3. 分别选择Asia——Shanghai,确定,即可改为+8时区

设置静态ip

sudo nano /etc/network/interfaces

把这一行

iface eth0 inet dhcp

替换为

iface eth0 inet static

address 192.168.1.101

netmask 255.255.255.0

gateway 192.168.1.1

dns-nameservers 114.114.114.114

修改resolv.config文件

sudo nano /etc/resolv.conf

修改为

nameserver 114.114.114.114

否则不能解析域名

更新软件源

nano /etc/apt/sources.list

删除原文件所有内容,用以下内容取代:

deb http://mirror.sysu.edu.cn/raspbian/raspbian/ wheezy main contrib non-free

deb-src http://mirror.sysu.edu.cn/raspbian/raspbian/ wheezy main contrib non-free

Ps:树莓派官方提供的软件源列表 http://www.raspbian.org/RaspbianMirrors

Ps2:国内的几个软件源

中山大学

http://mirror.sysu.edu.cn/raspbian/raspbian/

中国科学技术大学

http://mirrors.ustc.edu.cn/raspbian/raspbian/

清华大学

http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/

华中科技大学

http://mirrors.hustunique.com/raspbian/raspbian/

大连东软信息学院源(北方用户)

http://mirrors.neusoft.edu.cn/raspbian/raspbian/

重庆大学源(中西部用户)

http://mirrors.cqu.edu.cn/Raspbian/raspbian/

  • 更新缓存并升级软件

    sudo apt-get update && apt-get upgrade

安装及配置

安装所需要的所有软件,将必须的软件包安装完毕,并且调试成功

调试过程如果有问题可以参见本博客(附录)中的其他文章,或欢迎留言讨论

安装软件

  • webpy

    git clone git://github.com/webpy/webpy.git

    ln -s `pwd`/webpy/web

    cd /root/webpy

    sudo python setup.py install

  • RPI.GPIO

    (安装RPI.GPIO 首先需要安装RPi.GPIO所需的Python Development Toolkit)

    sudo apt-get install python-dev

    sudo apt-get install python-pip

    sudo pip install rpi.gpio

  • python-lxml

    sudo apt-get install python-lxml

  • python-memcache

    sudo apt-get install python-memcache

  • apache2

    sudo apt-get install apache2

  • mjpg-streamer

    (安装mjpg-streamer 首先需要安装一下几个依赖包)

    依赖包:

    sudo apt-get install subversion

    sudo apt-get install libv4l-dev

    sudo apt-get install libjpeg8-dev

    sudo apt-get install imagemagick

    (编译安装mjpg-steamer)

    wget http://sourceforge.net/code-snapshots/svn/m/mj/mjpg-streamer/code/mjpg-streamer-code-182.zip

    unzip mjpg-streamer-code-182.zip

    cd mjpg-streamer-code-182/mjpg-streamer

    make USE_LIBV4L2=true clean all

    make DESTDIR=/usr install

配置路由器

在路由器设置界面内,为树莓派设置好静态ip,或者在树莓派端设置静态ip,记住此ip

配置花生棒(或花生壳内网版

如果网络环境拥有公网ip,则可以在路由器上设置ddns(ddns可以搜索其他相关文章),如果不具备此环境,则需要花生壳内网版(软件)或花生棒(硬件)来实现公网地址从而与微信公众平台对接。

首先申请一个花生壳域名,然后登陆花生棒管理端页面(http://hsk.oray.com/bang/

选择内网映射添加映射,填入树莓派静态ip,将树莓派的80端口映射到域名上,并且勾选使用外网80端口(非常重要,否则无法完成对接)

申请另外一个花生壳域名,将此域名映射为树莓派的8080端口,依然勾选使用外网80端口

Ps:关于花生壳内网版的获取,可以在

http://www.oray.com/activity/140902/?icn=oray_140902&ici=hsk_home-grid

中缴纳一元认证费开通免费级服务

花生壳内网版的设置与花生棒大同小异,需要注意的是需要如果使用花生壳内网版则在工作前需要确认花生壳内网版正常工作并能正常解析

配置apache2

因为我的80端口需要被微信公众平台占用,所以我不能让网页走80端口,需要更改端口

nano /etc/apache2/ports.conf

将Listen 80改为Listen 8080

调试摄像头

运行考入树莓派中的Git包目录中testcam文件夹中的“stream.sh”文件:

sudo chmod +x stream.sh(先编译脚本文件,才能用./filename 来运行)

sudo ./stream.sh

在运行程序时,如果发生错误,可能是之前由于运行过,进程仍然在工作,导致没法再运行,可以先运行ps -A,查看运行中的进程和进程ID号,再使用“kill id号”杀掉进程

在pc上运行Git包中的“testcam.html”文件,右击编辑index.html,将树莓派ip换成你的树莓派固定ip,保存,双击打开testcam.html

看到摄像头输出图像,说明摄像头工作正常。

申请及配置公众平台测试账号

  1. 打开页面 http://mp.weixin.qq.com/wiki/home/index.html 申请一个公共平台的测试账号
  2. 在左侧选择 测试号申请|在线调试选择接口测试号申请
  3. 申请成功后,进入管理界面
  4. 在接口配置信息的URL处输入你在花生壳申请的域名,后面加上/weixin

    Token中填上你自己喜欢的一串字母,完成后不要点击提交

    (此时可以先下载我之前的微信公众平台基础模板进行对接,可以对接成功后在进行接下来的工作,以测试网络环境是否配置完毕

    文章地址:http://blog.csdn.net/u010027419/article/details/40835963

下载及配置主程序

  • 在此Github中下载完整代码包,解压后进行编辑

    (Git:https://github.com/329703622/wechatpi

  • 填入刚才自己设置的的Token以及测试号提供的appID和appsecret(yeekey稍后提到)
  • 填入自己的所有传感器对应的GPIO接口

    (传感器调试参考此博客(或附录)其他文章)

  • 设置完毕之后使用WinSCP放入树莓派文件目录
  • 使用Putty登录树莓派
  • 在刚在文件所在目录执行chmod +x start.sh 更改文件权限
  • 执行 ./start.sh
  • 如果出现如图所示信息,则程序正确运行
  • 此时在微信公众平台测试账号的网页上点击提交,如果提示成功,则整套系统基本配置成功

部署web页面

  1. 编辑Git包中的文件中的index.html,在你的树莓派ip处改为树莓派的ip地址
  2. 将index.html上传到/var/www目录下了,替换之前的index.html
  3. 在浏览器中输入 http://你的树莓派局域网ip:8080/尝试一下能否访问

    如果成功出现页面,则web页面部署成功

设置微信公众账号菜单

  1. 在微信公众平台管理测试账号下方选择获取access token
  2. 在左侧菜单选择 * 基础接口 获取access token*
  3. 在右侧最下方选择 使用网页调试工具调试该接口
  4. 首先获得access token

    在appid和secret中填上之前管理测试账号页面提供的数据,点击检查问题

  5. 下方蓝色的access_token就是一会提交菜单要用到的access_token,复制此token
  6. 分别在接口类型选择自定义菜单和在接口列表选择自定义菜单创建接口。进入如下界面,填入刚才的access_tokenaccess_token具有一定的时效性,时间过长后需重新获取)
  7. 在body中填入Git包中的menu.txt内的内容,点击检查问题
  8. 若显示Request successful即为菜单创建成功。

Ps:取消关注微信号重新关注即可直接查看效果。否则受限于微信限制,需要24小时后缓存刷新方可查看。

Ps2:参数说明

参数 是否必须 说明
button 一级菜单数组,个数应为1~3个
sub_button 二级菜单数组,个数应为1~5个
type 菜单的响应动作类型
name 菜单标题,不超过16个字节,子菜单不超过40个字节
key click等点击类型必须 菜单KEY值,用于消息接口推送,不超过128字节
url view类型必须 网页链接,用户点击菜单可打开链接,不超过256字节

申请Yeelink物联网服务

  1. 打开 http://www.yeelink.net/ 注册账号
  2. 登陆后在管理首页上,您的API Key 即为yeekey
  3. 添加一个新设备
  4. 添加完毕后记住自己的设备ID
  5. 在程序中填入自己的设备id以及yeekey,并将附近自己的yeelink页面改为自己的页面

结尾&心得

  • 接触了Python,一门非常棒的语言
  • 学会了MarkDown写博客,太方便了
  • 玩了树莓派
  • 过了买东西剁手的瘾
  • 无聊了有事情干

附录

时间: 2024-10-14 07:39:40

跑在树莓派上智能家居雏形的相关文章

当中国情人节遇上智能家居 你准备好了吗?-南京物联传感招商加盟总部

8月20日是一年一度的七夕情人节,今年小伙伴们都找到陪你一起度过的那个Ta了吗?在物联传感,今年的情人节不同于以往,热闹非常,因为今年的情人节恰好与“2015深圳国际智能家居&智能硬件博览会”(简称ISHE)碰到了一起,物联传感的小伙伴将汇集在深圳会展中心4号馆里,期待大家的光临. 随着七夕临近,酒店的预定量也是节节攀升,不管订不订到房,都可以来物联传感展位感受不一样的智能家居.智能家居可以帮助控制家庭中的灯光.电器.环境监测设施.安防设备等,用户通过手机.平板电脑等就可以远程控制它们,更简单的

海尔云厨吸油烟机可视化交互 开启智能家居新入口

本月初,海尔在北京发布了一款云厨吸油烟机产品,这款产品在外型上和常规吸油烟机产品并无二致,仅仅只是在机身上多了一块4.3寸规模的高清触摸屏,但这块触摸屏并不是一块普通的触摸屏,而是可以向用户提供多元化需求解决方案的屏幕. 比如,它可与手机多屏互动.支持手机同步微信聊天,也可以为用户提供互联网上的各种菜谱(具备1.5万条视频菜谱数据),使得用户边学习边烹饪--除此之外,这款云厨吸油烟机产品还通过集合喜马拉雅FM向家庭主妇们提供新闻.有声书等海量音频内容,以及可知厨房舒适度.监控厨房空气质量.随时记

智能家居平台乱战,京东欲借“超级APP”争夺控制中心

近两年,智能硬件一路走红,衍生出一系列诸如智能手环.智能路由器等设备,BAT巨头的加入更是让整个市场异常火爆,各家都在尝试以智能硬件产品为切入,在万物互联时代找到自己的新位置. 根据今年美国的CES情况来看,更多的厂商把精力聚焦在智能家居设备,以此趋于构建一个完整的智能家居平台,但是当我们见识到市场上不断推陈出新的智能设备后,就产生一个问题:谁将统一控制这些设备,担当控制中心的角色?  2014年1月,两位苹果前员工创办的智能家居公司Nest被谷歌以32亿美元的高价收购,当时关于Nest的讨论甚

基于树莓派(Raspberry Pi)平台的智能家居实现(一)----继电器模块,DHT11模块

前言:    ??其实做这个智能家居系统我还是因为学校的毕业设计,距离上篇文章发布已经过去了20多天了,之前想着只是做一个烟雾报警,然后通过Zabbix进行报警,但是通过这20多天的设计,我发现实现报警的功能其实除了邮件,还有短信.微信.甚至电话.但是因为各种原因,比如.....钱0.0,哈哈哈,因此我计划用企业微信进行一个报警,然后貌似通过普通微信进行一个简单的交互(interactive),还是不错的选择,并且做出来的效果也很棒.??最后想说的是:"基于树莓派(Raspberry Pi)平台

树莓派 百度语音 智能家居小助手

大体思路(程序写的有点乱,只是大体框架,还有好多坑留着慢慢填) 树莓派3通过USB声卡录音 ==>> 录音传给百度语音识别 ==>> 返回txt文本 ==>> IF TXT=操作智能家居的语句 THEN 执行相应动作 ELSE 将txt文本提交tuling123 ==>> 返回txt ==>> 传给百度语音文字转语音==>> 树莓派播放 import uuid import base64 import json import urll

【智能家居篇】wifi网络结构(上)

转载请注明出处:http://blog.csdn.net/Righthek 谢谢! WIFI是什么,相信大家都知道,这里就不作说明了.我们需要做的是深入了解其工作原理,包括软硬件.网络结构等.先说明一下WIFI是遵循IEEE802.11协议的,802.11是最早被国际标准组织认可的无线局域网协议,应该是1999年,到现在都有15年了.那时候哥还在读小学,连电脑都没摸过!太落后了...后来发展出很多以字母为后缀的802.11标准协议,如a.b.g.n.ac等. 本章节不作802.11协议的讲解,后

「玩转树莓派」搭建智能家居远程监控系统

前言 前几天,在食堂吃饭,本来每天中午的新闻三十分换成了视频监控.我们已经习惯了,前十分钟看着领导都很忙,中间十分钟中国人民都很幸福,后十分钟别的国家都生活在水深火热里,顺便跟同事谈谈国家大事.突然主角换成了我们自己,便毫无抬头的欲望. 恰巧最近也有在接触大屏监控的解决方案,于是乎,就索性拿树莓派实验了一把,做一个智能监控系统. 软硬件清单 读卡器以及 SD 卡(装系统用) 摄像头一枚,支持 USB SSH连接工具(SecureCRT,Xshell) 宽带.路由器(家中常备) 装好系统的树莓派

转载智能家居 作者:热情的沙漠 出处:http://www.cnblogs.com/buptzym/

理工男打造帝都89平智能家庭 毕业后的2016年年初,搬入新家,总算不用在出租屋里鬼混了,于是就想把之前童年的梦想:智能家居+家庭影院好好实现一下~ 相比帝都高昂的房价,这些东东还凑合玩得起,不过在有限预算下实现尽可能定制和强大的功能会更有意思.我yy了以下几个场景: 每当下班回家,指纹解锁大门,家里温馨的灯光自动打开,天气热的话空调也会自动开启.第二天如果下雨,前一天晚上灯光还会自动提醒我带伞. 即使出差在外地,我也能在宾馆里随时看家里电影,像访问本地硬盘一样读取家里文件,远程控制下载. 对手

【智能家居】Raspberry Pi 系统安装篇

Raspberry Pi 中国名 树莓派,科普请移步 树莓派-百度百科 ,智能家居这个系列想了很久了,但一直不知道从何落笔,Raspberry Pi 很像 Arduino 但又不是,它出现大大降低进入智能家居领域的门槛, 啰嗦两句: 1.树莓派购买的时候建议买个外壳,安全第一哦!如果动手能力强的可以参考我的这边文章自己做一个,也是So easy ! Raspberry Pi 外壳DIY(图解) 2.树莓派SD卡选购可以购买SD卡或TF卡,为了防止资源浪费可以购买带SD卡转换卡皮的TF卡,将来不玩