AWS IoT+树莓派 打造动态监控(1)

副标题:AWS IoT设定手顺和树莓派mosquitto安装

看到AWS登录信用卡后可以免费使用1年的消息,正好手头有个树莓派3,看看能不能连动做点好玩的东西。

下面内容就是我初次使用AWS的云服务IoT,做了一个动态监控并邮件报警的小系统。

场景

树莓派作为一个消耗电力极少的微型计算机,可以作为很好的长时运行服务器。当然也包括监控用途。我想定的场景是,利用树莓派和USB摄像头,做成一个监控摄像头。如果监控的范围内有变动的话,截图上传到GoogleDrive,将截图地址发送给指定的Gmail邮箱。

需要有的硬件

  • 树莓派 3B
  • 作业用Macbook/PC
  • USB摄像头
    • 我使用的罗技 C370 USB摄像头。免安装驱动。最好买官方验证过的摄像头,可以绕过很多坑。
    • 下面的手顺到今天还没有用到USB摄像头,可以先提前准备和测试。

1 整体概念

这篇文章里实现的是 mosquitto→AWS→Gmail(红框中内容)的流程。

AWS IoT流程概念图:下面按照这个流程图设定AWS。

2 AWS IoT配置

准备工作

注册AWS帐号

  • 这个帐号跟amazon购物用的帐号不通用,请另外申请。注意,需要绑定信用卡。

正式作业

2-0 选择对应的服务。图标和名称如下
2-1 进入IoT设置页面。



※ 类型(type)暂时无视,不需要创建。

2-2 创建规则


点击 Add action创建规则对应的反应事件

2-3 创建规则对应的反应事件

这里做成发送通知邮件。




在下面页面登记MQTT需要的主题(Topic)和订阅者列表(Subscriptions)。



创建主题

创建完成的页面

点击 Public to topic 和 Create Subscription按钮,开始登记收听端列表(只创建一个测试用)


在弹出窗口中输入信息


邮箱会收到验证用邮件,点击链接通过验证


验证后,就变成下面的状态


此时进入之前规则制定窗口(主题创建的网页可以关掉),选择对应选项后,点击 Add action按钮


在下面页面,点击Create rule,完成创建


创建完成如下图


2-4 创建策略
  • 可以简单理解成,把事务,规则,主题什么的配置在同一个文件中用于管理的一个方式。
  • 需要注意的是,创建完成后,需要跟保证安全的CA证书,事务,主题绑定。
    点击 Policies和Create a policy



创建后的策略

2-5 安全对策

AWS平台发行CA证书以及密钥,保证通信的安全性。
按照下图选择1 Certificates和点击2 Create a certificate 按钮



点击Create certificate 按钮



生成后的密钥下载页面。先下载保存在本地,最终会上传到Raspberry pi上。

证书情报查看页面,但是已经生成的密钥不能再检索。

证书生成完成后,就需要绑定事务和策略
首先选择 Attach policy




CA证书用同样的方式进行绑定。
接下来就是激活证书,使其可用。
点击下面页面中 Activate



提示已被激活

3 Raspberry Pi配置

Raspberry Pi 和AWS IoT之间的通信采用MQTT协议,请google自行学习。或者参照我的另一篇MQTT协议理解

准备工作

Raspberry Pi 3 提前安装好raspbain系统。
开通SSH或者VNC,以便通过自己的macboook/PC操控

Raspberry Pi 设置

3-1 执行下面命令,按照MQTT客户端。

$ sudo apt-get install -y mosquitto-clients

3-2 做成作业目录。用来保存CA证书。

$ mkdir aws-iot && cd $_

3-3将本地保存的下面三个CA证书,上传到2中生成的文件夹中。

XXXX-certificate.pem.crt
XXXX-private.pem.key
rootCA.pem
※不包含XXXX-public.pem.key证书
※rootCA.pem如果丢失,可以从下面url下载
rootCA.pem下载
执行下面命令,分别把3个证书上传到aws-iot中

scp 本地文件路径 pi@192.168.0.X:/home/pi/aws-iot

3-4 执行pub命令,测试

mosquitto_pub --cafile rootCA.pem
--cert 发行证书前半部分-certificate.pem.crt
--key 发行key前半部分-private.pem.key
-h 服务地址前半部分.iot.ap-northeast-1.amazonaws.com
-p 8883 -q 1 -d
-t topic/sns
-m '{"message":"Raspberry Pi "}'

※ -m '{"message":"Raspberry Pi "}',最后"Raspberry Pi "部分会换成GoogleDrive的地址,此时内容可以随意。
★★★★★★★★★★★★

mosquitto_pub执行是坑最多最多的地方。以下几点需要注意!

  • 要保证命令执行位置在aws-iot

  • 确保mosquitto是最新。

    • 现在最新版本是1.4.12
    • 检查mosquitto_pub版本命令

    mosquitto_pub --help | grep version
    - 升级mosquitto_pub版本命令方法1
    >$ sudo apt-get update
    >$ sudo apt-get install mosquitto-clients

    • 升级mosquitto_pub版本命令方法2
      GPG key安装

$ sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
$ sudo apt-key add mosquitto-repo.gpg.key

安装mosquitto-jessie.list

$ sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list -O /etc/apt/sources.list.d/mosquitto-jessie.list

安装mosquitto

$ sudo apt-get update
$ sudo apt-get install mosquitto mosquitto-clients

  • Error: The connection was lost....发生的时候

    • 确保AWS上的 事务,CA,策略 是绑定OK的,且CA是激活状态。
    • 确保-h参数的主题名称和策略中的Resource匹配。最简单办法是Resource设置成* 。
  • 降级mosquitto(估计用不着,网上找的解决方案记录一下)

查询已经安装的程序,顺便记住程序全名
apt list mosquitto*

删除对应程序
apt-get –purge remove XXXX(第一步里面的名称)

重启系统

安装旧版本程序
然后下载代码,自己编译

1.安装和使用注意点

1.1 安装

版本为mosquitto-1.4.5

下载源代码包

wget http://mosquitto.org/files/source/mosquitto-1.4.5.tar.gz

解压

tar zxfv mosquitto-1.4.5.tar.gz

进入目录

cd mosquitto-1.4.5

编译

make

安装

sudo make install

1.2 安装注意点

【1】编译找不到openssl/ssl.h
【解决方法】——安装openssl
sudo apt-get install libssl-dev
【2】编译过程找不到ares.h
sudo apt-get install libc-ares-dev
【3】编译过程找不到uuid/uuid.h
sudo apt-get install uuid-dev
【4】使用过程中找不到libmosquitto.so.1
error while loading shared libraries: libmosquitto.so.1: cannot open >shared object file: No such file or directory
【解决方法】——修改libmosquitto.so位置

创建链接

sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1

更新动态链接库

sudo ldconfig
【5】make: g++:命令未找到
【解决方法】
安装g++编译器
sudo apt-get install g++

★★★★★★★★★★★★

3-5 测试结果(gmail邮件)

到这一步为止,Raspberry Pi→ AWS IoT → SNS 已经疏通。

下一步

使用motion程序,进行动态监控和触发警报邮件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容