电子说
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/年的方式去付费使用。
二、建立Group
Group(群组)主要用来集中管理Feed(传感器节点),可将一个Group当作一台装置看待(如下图所示的Device 1号、Device 2号),装置内便能建立各自的传感器,好处是可以更集中管理或存取每个装置内的传感器。
请参考下图建立Group。
三、建立Feed
Feed(节点)是用来存放感测数据及观看历史数据的地方:下图红框区域会呈现历史数据折线图;蓝框由左至右分别表示「新增一笔资料」、「下载所有数据」、「过滤及塞选数据」;下方绿框会显示历史数据;右侧紫色框内除了显示Feed基本数据的「Feed Info」外,更可针对此Feed新增更多设定。
点入Feed Info后可见,画面如下图所示,红框内容为预设提供的API,若是使用MQTT 协议可以直接复制MQTT by key这行内容,作为MQTT 要Subscribe(订阅)或Publish(发布)的Topic(主题),详细HTTP 的API可以参考官网提供的API Documentation。
请参考下图建立Feed。
四、建立Dashboard
Dashboard 即仪表板,以图型方式呈现数值,默认提供多种图表供选择,包含开关、滑杆、调色盘、图片、折线图等等,使用这些图表相互搭配可以很容易的建构出网页版的监测站,比起其他平台省去不少建置费用及时间成本!
在建立Dashboard 的时候预设有多种block可以选择。
选择Dashboard 时需要选取对应的数据源(即Feed),并针对细节做显示设置:例如Gauge可以设定标题、数值显示的范围、线宽粗细等等,可依照使用需求去设定调整。
请参考下图建立Dashboard。
五、取得Username & AIO key
在对Adafruit IO 数据操作时都需要经过验证,使用MQTT、HTTP时都需提供账号及AIO Key才可存取Adafruit IO,以下将介绍如何取得账号密码。
进入Adafruit IO官网,点选红框「My Key」跳出账号密码。
https://io.adafruit.com/
下图蓝框为Username,红框是系统产生的AIO Key,若密码意外泄漏,也可透过右边绿色框内的「REGENERATE KEY」按钮重新产生新的密码。这里有一点要特别注意,Adafruit IO会定时检查Github上公开的code,看有没有人不小心把密码放上去,若是被扫描到的话,Adafruit IO 相当地贴心,会自动帮你重新产生新的key,不过还是请大家要小心,密码不要乱放唷!
六、软件安装
(一)软件下载与扩充
撰写程序时我们是采用与Scratch类似的Blockly 来编写程序,所以需要下载LinkIt 7697专用的程序撰写编辑器BlocklyDuino v3。
https://github.com/MediaTek-Labs/BlocklyDuino-for-LinkIt/releases/tag/3.0.312b
目前该程序只支持Windows的操作系统,请依照自己的版本将下载下来的压缩文件解压缩。
因为该编辑器是免安装的版本,对于路径相当要求,解压缩后的文件夹不能放置在任何有中文档名的文件夹内,否则上传程序时可能会产生错误。
除了编辑器外,我们还需要下载兼容BlocklyDuino的链接库CIRCUS Pi KIT,因为原先的BlocklyDuino内并没有Adafruit IO相关的程序积木,所以需要用户自行扩充。
https://github.com/iCShopMgr/CIRCUS_Pi_KIT
如上图所示,点选扩充程序CIRCUS Pi KIT链接后,找到「0622扩充程序.zip」这个选项并点选。文件名的0622是发布尔日期,若有新的版本日期会不同。
依照下图所示,点选「Download」的选项下载扩充程序到自己的计算机,下载完成后请解压缩。
截至目前为止我们应该获得了两个文件夹,分别是程序编辑器「BlocklyDuino」以及「0622扩充程序」。接下来请将「0622扩充程序」文件夹内的两个档案复制起来,并在BlocklyDuino文件夹内贴上并取代。
(二)安装驱动程序
请下载并安装「CP2102N 驱动程序」,以便PC能连接到您的LinkIt 7697。
点选页面内「DOWNLOADS」的选项,并依照您操作系统的版本,下载对应的驱动程序并安装。
将上述步骤做完就完成软件的准备啰~现在开启软件检查看看有没有扩充程序吧!打开BlocklyDuino文件夹,并点选「BlocklyDuino.exe」,如下图所示,检查看看有没有「Adafruit IO」的选项。
七、程序设计(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 相同者联机。
程序说明
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。
下图为建立一个名为「icshop」的Dashboard。
在「icshop」Dashboard内点选红框「Create New Block」新增图块。
选择「Stream」图块。
数据源选择icshop「time」。
设定Stream Block Title,可自定义。
新增「Toggle」图块。
数据源选择icshop「led」。
设定Toggle Block Title(可自定义),可设定发送的文字内容,默认为「ON」、「OFF」。
完成后如下图所示。
Linkit7697 将会每10秒发送一次开机时间到AdafruitIO,并且使用者可透过网页开关控制Linkit7697 LED亮灭,如下图所示。
关闭LED
开启LED
八、结语
Adafruit IO 支持MQTT(S)、HTTP(S)、WebSocket,所以不管用什么语言都很容易上手;再加上相当直觉的网页操作接口、简洁好上手的Dashboard、完整的官方API,更重要的是有免费版本可以使用;我们也针对 Adafruit IO 制作了积木程序,对于初学者使用上会更加容易,不妨现在就一起使用 LinkIt 7697 操作看看吧!
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !