主页 > E生活化 >在英特尔Edison平台上建造与执行MosquittoMQT >

在英特尔Edison平台上建造与执行MosquittoMQT


2020-06-27

在英特尔Edison平台上建造与执行MosquittoMQT
A WowWee robot is seen at the SIdO, the Connected Business trade show in Lyon April 7, 2015. The new professional event dedicated to the Internet of Thingstakes place in Lyon on April 7 and 8. REUTERS/Robert Pratta - RTR4WETL
简介

英特尔 Edison 板子的一个最大特色就是它不仅仅是一个 Arduino 兼容开发板,它也是一个可以提供基础 linux 存取能力给 Arduino sketch 的 linux 单板电脑。

在这个一系列的部落格中,我将探究不同种方式将 linux 能力整合到 Arduino sketch 当中,并且如何借用既有的程式码来让物联网开发更加简单。

我们将开始建造一个简单的感测器结点,包含温度感测器,光感测器和 LED 与开关。之后我们会使用 MQTT 发布资料到网际网路。使用 Node-Red 来触发事件,并且传送命令回到我们的感测器端点,藉此证明某些初步的资料分析。

Edison 板子的 linux 分支是来自于 Yocto 专案  。 Yocto 是一个为了有限资源的嵌入式系统所设计的小型的 Linux 核心。

MQTT

MQTT 是一个机器与机器间沟通的轻巧协定。 MQTT 基于 TCP/IP 协定之上,使用了 publish/subscribe 讯息 转传模式。 MQTT 协定的中心是一个 MQTT 伺服器或代理人,它可以让 publisher 或是 subscriber 来存取。使用 MQTT 可以建置一个感测网路,各种感测器可以用其独特的讯息格式发布它的感测值给其他的感测器。促动器也可以附注它所产生的功用到不同的讯息中。 MQTT 代理人将负责将讯息从 publishers 转送到 subscribers 。

範例:

微处理器 A 可以读取开关的状态,并且以"switch = on" 的讯息模式发布开关状态的讯息到 MQTT 伺服器。网路上的微处理器 B 订阅 MQTT 讯息"switch"。一但使用者拨动开关,微处理器 A 将发布一个讯息到 MQTT 代理人。这个代理人将转发这个讯息到列表上的订阅者。当微处理器 B 收到这个讯息,它可以分析这个内容,决定开关的状态并且决定电灯开或关。

更详细的 MQTT 可以在 http://mqtt.org 找到。

Edison 平台的 Yocto 作业系统 OS 伴随着一个小型的 MQTT 代理人,称之为 RSMB  。不幸的是,为了测试目的的用户端 MQTT 并没有包含在内。 在这篇文章中,我们将建置另一个 MQTT 代理人,称之为 Mosquitto ,大部分主要是当用户端的角色。在后续的文章中,我们将使用这些用户连接到我们的 Arduino sketches 。

在 Edison 平台建置 Mosquitto

预先假设读者已经架设好他们的 Edison 板子,并且熟悉标準的 Linux 操作。

建造 Mosquitto 是十分直觉的,并不需要思考太多。以下是在 Edison 平台上建造 Mosquitto 的步骤:

1. 从 org 下载 mosquitto

在英特尔Edison平台上建造与执行MosquittoMQT
2. 解压缩档案
在英特尔Edison平台上建造与执行MosquittoMQT
3. 编译
在英特尔Edison平台上建造与执行MosquittoMQT

4. 测试并安装您所编译的 mosquitto

在英特尔Edison平台上建造与执行MosquittoMQT

在 mosquitto 的根目录也有一个测试目标物。这个目标物需要安装 Python3,但它并没有包含在 Edison 作业系统中,所以后续的某些测试将会失败。而在 test/broker 目录里的目标物并不需要安装 Python3,而且它可以涵盖所有的 MQTT 操作。

测试您的客户端与伺服器端 mosquitto

Edison 作业系统预设会自动启动 rsmb 代理人。所以预设的 TCP 1883 埠以经被 rsmb 使用。我们将使用预设的 MQTT 埠测试用户端 mosquitto 到 rsmb  代理者。之后我们将会设置 mosquitto 代理人在不同的埠上并再测试一次。

开启两个 ssh  连线到 Edison 平台来测试用户端 mosquitto。

在第一个 ssh 连线,执行一个订阅'test' 主题的用户端程式 amosquitto_sub,并在 Edison 端执行。

在英特尔Edison平台上建造与执行MosquittoMQT

在第二个 ssh  连线,发布一个'Hello World!' 的讯息到同一个本地伺服器。

您应该可以看到在视窗中执行 mosquitto_sub  程式的讯息。请注意用户端 mosquitto_sub 程式是持续在运作,并会持续监听从伺服器端传来的新讯息直到终止执行。

在英特尔Edison平台上建造与执行MosquittoMQT

上面的测试显示出我们编译的用户端 mosquitto_sub 和 mosquitto_pub 正与本地端的 rsmb MQTT 伺服器正常的工作。

我们可以利用执行在不同埠上的 mosquitto  代理人来执行同样的测试。

在英特尔Edison平台上建造与执行MosquittoMQT
在英特尔Edison平台上建造与执行MosquittoMQT
使用同上的命令但是加上参数 -p 1993 给 mosquito_sub 和 mosquitto_pub,在埠 1993 上测试 mosquito 代理人。
在英特尔Edison平台上建造与执行MosquittoMQT
总结

我们在英特尔 Edison 平台上建造并执行伺服器与用户端 mosquitto 。在后续的文章中,我将开始利用我们建置的用户端 MQTT 开发 Arduino sketches 。

参考 :

Mosquitto 文件可以在这找到 http://mosquitto.org/documentation

英特尔 Edison 板子的详细资讯可以在这找到 http://www.intel.com/edison

欢迎加入「Inside」Line 官方帐号,关注最新创业、科技、网路、工作讯息
在英特尔Edison平台上建造与执行MosquittoMQT
在英特尔Edison平台上建造与执行MosquittoMQT


上一篇:
下一篇:

热门推荐
2020-06-06
多了DRS(风阻降低系统:即可变尾翼)、换了轮胎厂商、又复用KERS(动能回收系统),这幺多的关键新
2020-06-06
齐集三位最顶尖的F1知名人物、请他们来选出六项大赏,听起来很简单,不是吗?好了,準备接受分歧异议,看
2020-06-06
俗话说「成功的男人背后有个伟大的女人」,此话一点也不假。在F1赛车界,连续两年拿下世界冠军车手头衔的
2020-06-06
回想2007年Hamilton出道F1时,不仅速度惊人、学习力高,成熟的驾驶风格更让人不敢相信他只是
2020-06-06
摄影师兼一级方程式赛车发烧友 Tim Binnion 最近出席位于上海举行的 2018 Chine
2020-06-06
Ferrari 较早时透露厂方将会带来一部全新级别的新超跑,今天这部油电混合动力超级跑车 SF90
随机文章
2020-07-14
日本贸易部于星期一时表示,在未来的五年之间,他们将会耗资17亿美元,开发便宜的hybrid油电车款,
2020-07-14
近年来房价不断高涨,对于年轻人来说,就连买一间市区的小套房都是遥不可及的梦想,更别说是包含花园的独立
2020-07-14
会议进行时我会在白板中央画上一条线,左边写上「优点」、右边写上「缺点」,并提出以下问题:「请大家针对
2020-07-14
文章目录[隐藏]日本看板画职人的自信与忧心当社会不再需要留下的会是什幺?向职人致敬近日有段影片在网上
2020-07-14
日本手工艺品牌 Hender Scheme 继之前所推出的 Air Jordan 4、Nike Ai
2020-07-14
Onitsuka Tiger NIPPON MADE系列一向秉持高质感职人工艺,传承日本製鞋达人手作
宝马娱乐登录网址_澳门奥博集团登录网址8448|生活小技巧网站|影响力生活网|网站地图 申博官网备用网址_88msc菲律宾申博登入 申博官网备用网址_188申博官网备用网址直属现金网