一次学会使用Adafruit IO平台!

电子说

1.3w人已加入

描述

Adafruit IO 是一个免费/付费的IoT 平台,提供数据云端化、图像化的服务整合,Adafruit IO 可以让用户自由定义云端的资料内容;

Protocol 除了支持MQTT(S)、HTTP(S)、WebSocket 外,也提供多样化的API供使用者使用,

大部分程序语言都可以透过HTTP 或MQTT 协议对Adafruit IO 存取。

接下来就要开始带大家一步步操作,内容包含以下七个部分:

1. 注册Adafruit IO账号

2. 建立Group

3. 建立Feed

4. 建立Dashboard

5. 取得Username & AIOKey

6. 软件安装

7. 程序设计(IoT范例)

一、注册Adafruit IO 账号

首先至Adafruit IO官网注册页面,注册免费账号。

免费及付费账号所支持的功能差异请参见下表,一般小型项目使用免费账号即可;有更多需求的伙伴可以自行评估是否升级,以$10 USD/月或$99 USD/年的方式去付费使用。

MQTT

二、建立Group

Group(群组)主要用来集中管理Feed(传感器节点),可将一个Group当作一台装置看待(如下图所示的Device 1号、Device 2号),装置内便能建立各自的传感器,好处是可以更集中管理或存取每个装置内的传感器。

MQTT

请参考下图建立Group。

MQTT

三、建立Feed

Feed(节点)是用来存放感测数据及观看历史数据的地方:下图红框区域会呈现历史数据折线图;蓝框由左至右分别表示「新增一笔资料」、「下载所有数据」、「过滤及塞选数据」;下方绿框会显示历史数据;右侧紫色框内除了显示Feed基本数据的「Feed Info」外,更可针对此Feed新增更多设定。

MQTT

点入Feed Info后可见,画面如下图所示,红框内容为预设提供的API,若是使用MQTT 协议可以直接复制MQTT by key这行内容,作为MQTT 要Subscribe(订阅)或Publish(发布)的Topic(主题),详细HTTP 的API可以参考官网提供的API Documentation。

MQTT

请参考下图建立Feed。

MQTT

四、建立Dashboard

Dashboard 即仪表板,以图型方式呈现数值,默认提供多种图表供选择,包含开关、滑杆、调色盘、图片、折线图等等,使用这些图表相互搭配可以很容易的建构出网页版的监测站,比起其他平台省去不少建置费用及时间成本!

MQTT

在建立Dashboard 的时候预设有多种block可以选择。

MQTT

选择Dashboard 时需要选取对应的数据源(即Feed),并针对细节做显示设置:例如Gauge可以设定标题、数值显示的范围、线宽粗细等等,可依照使用需求去设定调整。

MQTT

请参考下图建立Dashboard。

MQTT

五、取得Username & AIO key

在对Adafruit IO 数据操作时都需要经过验证,使用MQTT、HTTP时都需提供账号及AIO Key才可存取Adafruit IO,以下将介绍如何取得账号密码。

进入Adafruit IO官网,点选红框「My Key」跳出账号密码。

https://io.adafruit.com/

MQTT

下图蓝框为Username,红框是系统产生的AIO Key,若密码意外泄漏,也可透过右边绿色框内的「REGENERATE KEY」按钮重新产生新的密码。这里有一点要特别注意,Adafruit IO会定时检查Github上公开的code,看有没有人不小心把密码放上去,若是被扫描到的话,Adafruit IO 相当地贴心,会自动帮你重新产生新的key,不过还是请大家要小心,密码不要乱放唷!

MQTT

六、软件安装

(一)软件下载与扩充

撰写程序时我们是采用与Scratch类似的Blockly 来编写程序,所以需要下载LinkIt 7697专用的程序撰写编辑器BlocklyDuino v3。

https://github.com/MediaTek-Labs/BlocklyDuino-for-LinkIt/releases/tag/3.0.312b

目前该程序只支持Windows的操作系统,请依照自己的版本将下载下来的压缩文件解压缩。

MQTT

因为该编辑器是免安装的版本,对于路径相当要求,解压缩后的文件夹不能放置在任何有中文档名的文件夹内,否则上传程序时可能会产生错误。

除了编辑器外,我们还需要下载兼容BlocklyDuino的链接库CIRCUS Pi KIT,因为原先的BlocklyDuino内并没有Adafruit IO相关的程序积木,所以需要用户自行扩充。

https://github.com/iCShopMgr/CIRCUS_Pi_KIT

MQTT

如上图所示,点选扩充程序CIRCUS Pi KIT链接后,找到「0622扩充程序.zip」这个选项并点选。文件名的0622是发布尔日期,若有新的版本日期会不同。

依照下图所示,点选「Download」的选项下载扩充程序到自己的计算机,下载完成后请解压缩。

MQTT

截至目前为止我们应该获得了两个文件夹,分别是程序编辑器「BlocklyDuino」以及「0622扩充程序」。接下来请将「0622扩充程序」文件夹内的两个档案复制起来,并在BlocklyDuino文件夹内贴上并取代。

MQTT

(二)安装驱动程序

请下载并安装「CP2102N 驱动程序」,以便PC能连接到您的LinkIt 7697。

点选页面内「DOWNLOADS」的选项,并依照您操作系统的版本,下载对应的驱动程序并安装。

MQTT

将上述步骤做完就完成软件的准备啰~现在开启软件检查看看有没有扩充程序吧!打开BlocklyDuino文件夹,并点选「BlocklyDuino.exe」,如下图所示,检查看看有没有「Adafruit IO」的选项。

MQTT

七、程序设计(IoT 范例)

本次使用Linkit7697做为IoT 装置硬件,开发环境使用BlocklyDuino,示范如何与Adafruit IO沟通,将数据发送至Adafruit IO、透过Adafruit IO Dashboard网页控制Linkit7697 LED亮灭。

(一)程序撰写

依照下图所示拉入积木程序代码,请自行修改WiFi ID、WiFi密码、Adafruit IO Username、AIO Key;DeviceID 可以自定义,在云端平台会作为Group 名称,并且积木程序将会使用DeviceID 作为MQTT ID,所以每个装置请使用不同的DeviceID,重复使用将会剔除ID 相同者联机。

MQTT

程序说明

1. 设定并联机到WiFi联机,请自行修改WiFiID、密码。

2. 设定并联机到Adafruit IO,请自行修改AdafruitIO Username、AIO Key。

3. 在Loop函式中持续同步AdafruitIO状态以检查传感器数据是否更新。

4. 使用计时的方式取代Delay,每10秒将目前的开机毫秒数更新到云端。

5. 设定当云端传感器led更新时判断内容并控制内建LED亮灭。

完整Adafruit IO范例程序

https://github.com/iCShopMgr/CIRCUS_Pi_KIT/blob/main/Example/AdafruitIO%E7%AF%84%E4%BE%8B%E7%A8%8B%E5%BC%8F.zip

(二)Adafruit IO设定

在Adafruit IO中可以透过首次发布新资料时自动建立Feed,建议大家可以自行建立所有的Feed,以确保资料发布成功。

下图为建立一个名为「icshop」的群组,「led」、「time」Feed。

MQTT

下图为建立一个名为「icshop」的Dashboard。

MQTT

在「icshop」Dashboard内点选红框「Create New Block」新增图块。

MQTT

选择「Stream」图块。

MQTT

数据源选择icshop「time」。

MQTT

设定Stream Block Title,可自定义。

MQTT

新增「Toggle」图块。

MQTT

数据源选择icshop「led」。

MQTT

设定Toggle Block Title(可自定义),可设定发送的文字内容,默认为「ON」、「OFF」。

MQTT

完成后如下图所示。

MQTT

Linkit7697 将会每10秒发送一次开机时间到AdafruitIO,并且使用者可透过网页开关控制Linkit7697 LED亮灭,如下图所示。

MQTT

关闭LED

MQTT

开启LED

八、结语

Adafruit IO 支持MQTT(S)、HTTP(S)、WebSocket,所以不管用什么语言都很容易上手;再加上相当直觉的网页操作接口、简洁好上手的Dashboard、完整的官方API,更重要的是有免费版本可以使用;我们也针对 Adafruit IO 制作了积木程序,对于初学者使用上会更加容易,不妨现在就一起使用 LinkIt 7697 操作看看吧!

审核编辑:汤梓红

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分