0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一次学会使用Adafruit IO平台!

jf_cVC5iyAO 来源:易心Microbit编程 作者:易心Microbit编程 2022-11-22 16:16 次阅读

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/年的方式去付费使用。

a31a6010-6717-11ed-8abf-dac502259ad0.jpg

二、建立Group

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

a338a188-6717-11ed-8abf-dac502259ad0.png

请参考下图建立Group。

a360eb0c-6717-11ed-8abf-dac502259ad0.gif

三、建立Feed

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

a39aa20c-6717-11ed-8abf-dac502259ad0.png

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

a3c52aae-6717-11ed-8abf-dac502259ad0.png

请参考下图建立Feed。

a3e695d6-6717-11ed-8abf-dac502259ad0.jpg

四、建立Dashboard

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

a4782cda-6717-11ed-8abf-dac502259ad0.png

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

a4d877e8-6717-11ed-8abf-dac502259ad0.png

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

a4fd955a-6717-11ed-8abf-dac502259ad0.png

请参考下图建立Dashboard。

a511ceee-6717-11ed-8abf-dac502259ad0.gif

五、取得Username & AIO key

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

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

https://io.adafruit.com/

a555bfe6-6717-11ed-8abf-dac502259ad0.png

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

a57a69cc-6717-11ed-8abf-dac502259ad0.png

六、软件安装

(一)软件下载与扩充

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

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

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

a5998492-6717-11ed-8abf-dac502259ad0.png

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

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

https://github.com/iCShopMgr/CIRCUS_Pi_KIT

a5cab26a-6717-11ed-8abf-dac502259ad0.png

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

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

a5e33a74-6717-11ed-8abf-dac502259ad0.png

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

a6066eb8-6717-11ed-8abf-dac502259ad0.png

(二)安装驱动程序

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

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

a6339438-6717-11ed-8abf-dac502259ad0.png

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

a6562cf0-6717-11ed-8abf-dac502259ad0.png

七、程序设计(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 相同者联机。

a6806646-6717-11ed-8abf-dac502259ad0.png

程序说明

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。

a6ae10b4-6717-11ed-8abf-dac502259ad0.png

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

a6d063bc-6717-11ed-8abf-dac502259ad0.png

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

a6f4858a-6717-11ed-8abf-dac502259ad0.png

选择「Stream」图块。

a723e4f6-6717-11ed-8abf-dac502259ad0.png

数据源选择icshop「time」。

a74ba4c8-6717-11ed-8abf-dac502259ad0.png

设定Stream Block Title,可自定义。

a7733d1c-6717-11ed-8abf-dac502259ad0.png

新增「Toggle」图块。

a79a7fe4-6717-11ed-8abf-dac502259ad0.png

数据源选择icshop「led」。

a7bc4e62-6717-11ed-8abf-dac502259ad0.png

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

a7ddc83a-6717-11ed-8abf-dac502259ad0.png

完成后如下图所示。

a800bd22-6717-11ed-8abf-dac502259ad0.png

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

a81fa552-6717-11ed-8abf-dac502259ad0.jpg

关闭LED

a843ddbe-6717-11ed-8abf-dac502259ad0.jpg

开启LED

八、结语

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

审核编辑:汤梓红

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

    关注

    2545

    文章

    50384

    浏览量

    750653
  • IO
    IO
    +关注

    关注

    0

    文章

    433

    浏览量

    39035
  • IOT
    IOT
    +关注

    关注

    186

    文章

    4153

    浏览量

    195841
  • MQTT
    +关注

    关注

    5

    文章

    645

    浏览量

    22383

原文标题:一次学会使用Adafruit IO 平台!

文章出处:【微信号:易心Microbit编程,微信公众号:易心Microbit编程】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    学会使用示波器

    学会使用示波器
    发表于 08-10 22:47

    5分钟学会使用CPLD教程

    5分钟学会使用CPLD教程
    发表于 08-19 11:03

    学会使用A4988驱动电机有什么帮助

    初识Arduino,有什么错漏的地方请指正.学会使用A4988驱动电机对于DIY3D打印机,雕刻机很有帮助。6线般是两组,先用万用表接其中根线,然后一次点其他线,凡是不同的都是另外
    发表于 07-08 08:29

    为什么IO一次读时可能读不到

    需要读的IO一次读时可能读不到,要第二才可以,在需要进睡眠的时候注意单片机计时标记最好使用加,不要用减,否则可能会减不到0,加volatile也不行仿真时加volatile可以看变量,否则未调用
    发表于 07-16 06:36

    使用Platform.ioAdafruit Feather Huzzah上传时遇到的问题求解

    我正在使用 Platform.ioAdafruit Feather Huzzah。我能够上传到这个板大约天。 现在我在上传时遇到问题。 它是这样的: 构建良好,上传良好......蓝灯闪烁了
    发表于 06-09 07:53

    循环充放电一次就是少一次寿命吗?

    循环充放电一次就是少一次寿命吗?     循环就是使用,我们是在使用电池,关心的是使
    发表于 11-11 13:59 840次阅读

    电池循环充放电一次就是少一次寿命吗?

    电池循环充放电一次就是少一次寿命吗? 循环就是使用,我们是在使用电池,关心的是使用的时间,为了衡量充电电池
    发表于 09-06 11:05 3590次阅读

    带有Adafruit_IO的气象站监视器源码

    带有Adafruit_IO的气象站监视器源码下载。
    发表于 05-08 10:50 9次下载

    使用Adafruit IO作为MQTT控制Raspberry Pi GPIO的AC设备

    在本教程中,我们将使用 Adafruit IO 作为 MQTT 代理来控制连接到 Raspberry Pi GPIO 的 AC 设备。
    的头像 发表于 09-01 16:30 2522次阅读
    使用<b class='flag-5'>Adafruit</b> <b class='flag-5'>IO</b>作为MQTT控制Raspberry Pi GPIO的AC设备

    电气一次识图基础

    电气一次识图基础
    的头像 发表于 11-12 11:24 2079次阅读

    使用Google Assistant和Adafruit IO实现家庭自动化

    电子发烧友网站提供《使用Google Assistant和Adafruit IO实现家庭自动化.zip》资料免费下载
    发表于 12-05 09:57 0次下载
    使用Google Assistant和<b class='flag-5'>Adafruit</b> <b class='flag-5'>IO</b>实现家庭自动化

    带有Adafruit IO的太阳能气象站

    电子发烧友网站提供《带有Adafruit IO的太阳能气象站.zip》资料免费下载
    发表于 12-14 11:25 0次下载
    带有<b class='flag-5'>Adafruit</b> <b class='flag-5'>IO</b>的太阳能气象站

    用于将数据从Google表单自动发布到Adafruit IO的Python脚本

    电子发烧友网站提供《用于将数据从Google表单自动发布到Adafruit IO的Python脚本.zip》资料免费下载
    发表于 06-16 15:47 0次下载
    用于将数据从Google表单自动发布到<b class='flag-5'>Adafruit</b> <b class='flag-5'>IO</b>的Python脚本

    使用Adafruit IO的无线警铃

    电子发烧友网站提供《使用Adafruit IO的无线警铃.zip》资料免费下载
    发表于 07-05 14:44 0次下载
    使用<b class='flag-5'>Adafruit</b> <b class='flag-5'>IO</b>的无线警铃

    学会使用Channel Analysis

    电子发烧友网站提供《学会使用Channel Analysis.rar》资料免费下载
    发表于 11-21 10:43 1次下载
    <b class='flag-5'>一</b>步<b class='flag-5'>一</b>步<b class='flag-5'>学会使</b>用Channel Analysis