点亮你的第一颗IoT LED

博客

2019-08-18

77

0

一、简述

本篇我们将基于Eclipse Mosquitto™ MQTT Broker,在一台手机或电脑上云点亮另一台嵌入式设备上的一颗LED。

二、环境准备

2.1 MQTT Subscriber

有几种方式可以打造一个MQTT的IoT终端:

1) 利用Linux Deploy,在一台安卓手机上部署一个Linux的执行环境,在该环境中安装mosquito client。我们将远程点亮手机上的闪光灯。这种方式可以让你家里的闲置安卓手机重新发挥作用,但是比较硬核。

安装Termux,通过SSH连接容器中的Linux:

在我所使用的红米Note2手机中,向/sys/class/leds/flashlight/brightness写入1或0可以打开或关闭手机上的闪光灯:

2) 在部署了Linux操作系统的Raspberry PI等开发板上,安装mosquito client。通过开发板上的GPIO驱动,点亮LED。

 

  • MQTT Broker

如果你拥有自己的云服务器,你可以部署自己的Mosquito MQTT Broker。如果你没有自己的服务器,有一些公共的测试服务器可以让你尝试:

Server Broker Port Websocket
iot.eclipse.org Mosquitto 1883/1883 n/a
broker.hivemq.com HiveMQ 1883 8000
test.mosquitto.org Mosquitto 1883/1883/8884 8080/8081
test.mosca.io mosca 1883 80
broker.mqttdashboard.com HiveMQ 1883  

 

上面的建议只是让你可以通过公网IP去访问MQTT Broker以及和部署在世界上其他任何地方的IoT控制终端取得联系,在你自己的电脑上部署MQTT Broker并通过局域网访问也无碍于学习MQTT IoT的工作模式。

  • MQTT Publisher

你需要一个终端来给你的LED控制板发送指令。其实它可以和以上两个设备之一同为一个设备,但为了体现我们是远程点亮的,最好它是一台不同的设备。

如果是IOS设备,可以安装MQTTTool:

如果是PC,可以安装MQTT.fx:

安装的软件用于提供MQTT消息发送用户界面。

(安卓上暂时没有找到类似的软件,感兴趣的同学可以尝试利用mosquito自己写一个)

三、装载程序

3.1 受控端

1. 将mqtt的broker服务器地址添加至/etc/hosts,名字即为mqtt,使用telnet查看mqtt broker是否可用;

2. git clone https://github.com/mobangjack/mqtt_led_iot,使用make命令编译代码;

3. 执行run_mqtt_led_new_state_sub_main.sh脚本,开始订阅LED状态控制命令。

 

3.2 控制端

在装了MQTT.fx的PC上,连接到mqtt broker,在topic输入框中填入led/newstate,在下方payload输入框中填入1,点击Publish按钮,受控机上的LED将被打开;在payload输入框中填入0,点击Publish按钮,受控机上的LED将被关闭:

你也可以使用IOS上的MQTTTool发布led/newstate主题的MQTT消息来控制LED:

 

四、结语

在IoT中点亮一颗LED就好比在编程语言中输出一句Hello World,揭露的是一个领域的一个入口,更多的高级应用还需要耕耘者的进一步挖掘。我们正处在一个波涛汹涌的时代,一个又一个的浪潮正推动着我们创下一个又一个的历史高峰。抓住机遇,踏浪而行。

附录

1)使用PC端MQTT.fx发布LED控制指令

2)使用IOS端MQTTTool发布LED控制指令

发表评论

全部评论:0条

帮杰

疯狂于web和智能设备开发,专注人机互联。