40558浏览
查看: 40558|回复: 10

K12物联网神器-SIoT(Arduino)

[复制链接]
【Mind+】Arduino uno板-SIoT使用教程

一、SIoT简介

SIoT一个为中小学STEM教育定制的跨平台的开源MQTT服务器程序,S指科学(Science)、简单(Simple)的意思。SIoT重点关注物联网数据的收集和导出,是采集科学数据的最好选择之一。

K12物联网神器-SIoT(Arduino)图1


那什么是物联网?什么又是MQTT呢?

1.1 物联网

物联网(Internet of Things,缩写IoT)是互联网的一个延伸,互联网的终端是计算机(PC、服务器),而物联网的终端是硬件设备,无论是家电、工业设备、汽车、监测仪器,所有这些终端都可以互联,可以总结为万物互联。


K12物联网神器-SIoT(Arduino)图2


1.2 MQTT

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一个基于客户端-服务器的消息发布/订阅传输协议。

MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。




K12物联网神器-SIoT(Arduino)图3
1.3 SIoT

SIoT“虚谷物联”项目的核心软件,是为了帮助中小学生理解物联网原理,并且能够基于物联网技术开发各种创意应用。


K12物联网神器-SIoT(Arduino)图4
二、安装运行

2.1 SIoT软件下载

下载地址:https://mindplus.dfrobot.com.cn/siot

根据自己电脑的系统,对应下载SIoT软件压缩包,例如Windows系统下载win32。


2.2 SIoT软件准备
      SIoT是一个绿色软件,将下载的压缩包解压并打开。
K12物联网神器-SIoT(Arduino)图47
      由于Mind+目前只支持Windows下Win7及以上版本,本篇教程将以SIoT_win32为例,讲述如何使用Mind+软件实现SIoT操作。
2.3 Mind+软件下载

Mind+是一款基于Scratch3.0开发的青少年编程软件,支持arduino、micro:bit、Uno板等各种开源硬件,只需要拖动图形化程序块即可完成编程,还可以使用python/c/c++等高级编程语言,让大家轻松体验创造的乐趣

下载地址:https://mindplus.cc

* 本教程使用的是Mind+1.5.5版本软件
K12物联网神器-SIoT(Arduino)图5
2.4 Mind+软件安装2.4.1 安装软件

双击下载的文件完成软件安装。


2.4.2 安装驱动

STEP1:打开Mind+软件,点击“教程”——“视频教程”打开教程。


K12物联网神器-SIoT(Arduino)图6

           STEP2:打开“安装驱动”视频教程。


K12物联网神器-SIoT(Arduino)图7
           STEP3:根据视频悬浮窗中的教程,一键安装驱动,这一步很重要!安装一次,一劳永逸!

K12物联网神器-SIoT(Arduino)图8
三、快速入门

       本篇教程将win10系统为例,通过几个简单的程序案例,以Arduino Uno主控板(后面简称Uno板)为智能终端,分别介绍在Mind+软件中实时模式和上传模式下如何运行SIoT。

3.1 实时模式
      在实时模式下,按照是否连接Uno板,又可分为两种情况。

3.1.1 实时模式,不连接Uno板

      在实时模式下不连接Uno板时,SIoT平台可与软件界面的舞台互动。
      项目案例:在SIoT平台输入消息,舞台角色说出消息内容

K12物联网神器-SIoT(Arduino)图46

       项目实现步骤:如下STEP1-STEP9。如果是第一次使用SIoT,请严格按照以下步骤进行操作。

STEP1 运行SIoT系统


      双击运行SIoT_win.exe,可以看到一个黑色的CMD窗口。
* 使用SIoT过程中一定不要关该窗口。
K12物联网神器-SIoT(Arduino)图9
STEP2 电脑连接WIFI

      将电脑连接到WIFI。
* 提供WIFI的路由器或手机热点可以不连接互联网,因为使用SIoT实现物联网应用时,只需要使用路由器或手机热点建立一个局域网即可。

STEP3 获取电脑IP

       电脑每次连接WIFI,都会生成一个IP地址,每个IP地址对应的电脑都是唯一的。运行SIOT程序后会在电脑上建立一个SIOT服务器,其他设备要访问这个服务器,需要知道这个SIOT服务器所在电脑的IP地址。
       获取电脑IP的方法有很多,可在网页上搜索到,下面我们来介绍其中一种简易操作方法,通过以下3步获取电脑IP。
1、同时按下键盘上“WIN”+“R”,弹出如下运行窗口。

K12物联网神器-SIoT(Arduino)图10

2、输入“cmd”,点击确定,弹出小黑框。

K12物联网神器-SIoT(Arduino)图11

K12物联网神器-SIoT(Arduino)图12

3、在小黑框中输入“ipconfig”,点击键盘“enter”,在小黑框中可以看到IP地址,如下图IP为192.168.9.191。

K12物联网神器-SIoT(Arduino)图13


* 每次连接不同的WIFI,电脑的IP地址都可能会发生变化,需要通过上述方法重新获取。


STEP4 打开SIoT网页端

1、打开电脑浏览器,在网址栏输入在“STEP3”中获得的IP地址加上“:8080”,如:192.168.9.191:8080
* “:” 需在在英文输入法下。
K12物联网神器-SIoT(Arduino)图14

2、点击键盘enter键,打开即为SIoT网页端,如下图:

K12物联网神器-SIoT(Arduino)图15


3、打不开怎么办?

       检查siot的小黑窗是否打开

       检查ip地址是否错误,如果有多个ip地址就一个一个尝试

       关闭网络防火墙

STEP5 登陆SIoT网页端

       账号:siot

       密码:dfrobot

       输入账号、密码后,点击“登陆”,登陆后页面如下:

K12物联网神器-SIoT(Arduino)图17
* SIoT网页端账号、密码都是统一的。

STEP6 Mind+编程

       实现功能:在SIoT平台输入消息,舞台角色说出消息内容。
1、打开Mind+软件(1.5.5及以上版本),选择“实时模式”:

K12物联网神器-SIoT(Arduino)图16
2、点击“扩展”:

K12物联网神器-SIoT(Arduino)图18

3、选择“网络服务”,点选“MQTT服务”后点击“返回”:

K12物联网神器-SIoT(Arduino)图19
4、编写程序:
K12物联网神器-SIoT(Arduino)图20


K12物联网神器-SIoT(Arduino)图21

K12物联网神器-SIoT(Arduino)图22

STEP7 运行程序
K12物联网神器-SIoT(Arduino)图23
K12物联网神器-SIoT(Arduino)图24


STEP8 SIoT网页端查看消息

       打开SIoT网页端,点击“设备列表”,可以看到“项目ID”、“名称”对应为程序中自定义Topic_0的信息。

K12物联网神器-SIoT(Arduino)图25

       点击“查看消息”,在弹出窗口中可以看到设备的MQTT消息记录:

K12物联网神器-SIoT(Arduino)图26


       如上图,为程序中对Topic:“arduino/a”的消息记录,可看到消息内容和发送时间。

STEP9 项目功能实现:在SIoT平台输入消息,舞台角色说出消息内容

       例如:在“发送消息”栏发送“你好啊”,舞台角色对应说出“你好啊”。

K12物联网神器-SIoT(Arduino)图29

       至此就完成了在Mind+实时模式下SIoT与舞台的互动啦,但是所谓物联网,不连接外部硬件设备到物联网平台,又怎么能体现出它的优势呢!所以接下来,让我们通过加入Uno板一起来体验SIoT对硬件的控制。

3.1.2 实时模式,连接Uno
       Mind+实时模式下,连接Uno板时先选择扩展模块中的Arduino Uno板,连接成功后,SIoT平台可以采集Uno板上传感器的数据,也可以控制Uno板的声、光、动输出。
       项目案例:在SIoT平台输入消息,控制点亮或熄灭Uno板的LED灯。

K12物联网神器-SIoT(Arduino)图27

       项目实现步骤:STEP1-STEP8。

STEP1-53.1.1相同

STEP6 连接Uno
       Uno板通过USB线连接到电脑,在Mind+中“连接设备”下点击对应COM口。
K12物联网神器-SIoT(Arduino)图28

K12物联网神器-SIoT(Arduino)图30

K12物联网神器-SIoT(Arduino)图31

STEP7 修改程序

1、在“扩展”中“主控板”下选择“Uno板”:
K12物联网神器-SIoT(Arduino)图32
2、程序修改如下:

K12物联网神器-SIoT(Arduino)图33

STEP8 功能实现

       发送“on”,灯亮;发送“off”,灯灭。

K12物联网神器-SIoT(Arduino)图49



3.2 上传模式

       想象一下,将Uno板应用在家庭物联网中:使用温度传感器进行测量房间内的温度,并将其与Uno板进行连接,并上传到SIoT中,结果将以数值与折线图的形式展现,便于主人监测数据。要如何用程序实现呢?
       3.1.2中,在Mind+实时模式下只能实时控制一块Uno板,如何在控制Uno板的同时进行温度测量呢?
       Mind+的上传模式是一个很好的选择,让我们一起来学习如何实现。
       实现步骤:STEP1-STEP8。
       所需材料:Uno板,温度传感器,OBLOQ物联网模块(模块介绍详见4.3.2)。

* 因为Uno板在SIoT需要通过物联网采集数据,但是Uno板不具备物联网通讯功能,因此需要借助OBLOQ物联网模块。

STEP1-53.1.1相同

STEP6 Mind+软件设置

1、打开Mind+软件(1.5.5及以上版本),选择“上传模式”:

K12物联网神器-SIoT(Arduino)图34

2、点击“扩展”,在“主控板”下选择“Uno板”:

K12物联网神器-SIoT(Arduino)图35

3、点击“扩展”,在通信模块下选“OBLOQ物联网模块”:

K12物联网神器-SIoT(Arduino)图36

STEP7硬件连线图

       OBLOQ模块:TX、RX、GND和VIN引脚分别连接到D10、D11、GND和VCC引脚。
       温度传感器LM35:A0引脚。
       可通过修改程序来自定义相关引脚。

K12物联网神器-SIoT(Arduino)图37
STEP8编写程序
K12物联网神器-SIoT(Arduino)图48

K12物联网神器-SIoT(Arduino)图38

STEP9功能实现

       Uno板在下载完程序后,OBLOQ物联网模块指示灯显示为绿色,表示成功与Uno板连接成功正常工作。
       * 程序运行时,若无法连接OBLOQ物联网模块(指示灯不为绿色),先检查参数有没有填错,例如ip错误、Topic中有没有斜杠,依旧无法连接的话,可尝试关闭电脑防火墙,重新上传程序;若依旧不成功需要查看OBLOQ模块的接线对应的管脚是否连接正确。
       打开SIoT网页端,可以在“设备列表”下看到对应的Topic信息。

K12物联网神器-SIoT(Arduino)图39


1、点击上图中“a”后的“查看消息”,可以看到温度传感器实时收集的温度值。

K12物联网神器-SIoT(Arduino)图40

2、点击“b”后的查看消息

K12物联网神器-SIoT(Arduino)图41

       在弹出窗口中发送消息“ON”,可以看到Uno板子的LED被点亮。

K12物联网神器-SIoT(Arduino)图42

       同理,发送消息“OFF”,可以看到Uno板子的LED被点亮。


四、教程总结

4.1 SIoT操作流程汇总
K12物联网神器-SIoT(Arduino)图43

4.2 物联网框图


       以路由器建立无线局域网为例,通过下面这张图可以说明SIoT的作用原理。
       在一台电脑上建立SIoT服务器后,其他设备在知道路由器分配给这台电脑的IP地址后,可以利用WIFI访问SIoT服务器。这些设备可以是电脑、手机、Uno板等。


K12物联网神器-SIoT(Arduino)图44

4.3 小贴士-服务器信息

4.3.1 服务器信息

       SIoT启动后,你的计算机就成为了一个标准的SIoT服务器,使用任何一款SIoT客户端程序就可以访问。
       ■ 服务器地址:计算机局域网IP地址
       ■ SIoT端口:1883
       ■ 用户名:siot(小写)
       ■ 默认密码:dfrobot(小写)
       ■ 消息主题(Topic):项目名/设备名(可以自定义,中间的“/”为英文输入法且不可缺少。)
       ■ Web管理地址:http://计算机IP:8080

4.3.2  OBLOQ模块介绍

       OBLOQ是一款基于ESP8266设计的串口转WIFI物联网模块,用以接收和发送物联网信息。接口简单,即插即用,适用于3.3V~5V的控制系统。OBLOQ物联网模块当没有连接wifi的时候,OBLOQ指示灯显示红色,正在连接wifi时显示蓝色,连接到wifi后,OBLOQ指示灯显示绿色。
       OBLOQ物联网模块引脚说明:

K12物联网神器-SIoT(Arduino)图45



OBLOQ物联网模块在使用中的常见问题:

1)  OBLOQ指示灯一直显示蓝色:

       表示OBLOQ正在连接wifi,需要一定时间,如果超过一分钟依然显示蓝灯,则可能为wifi账号密码设置错误,请检查程序 。

2)  OBLOQ指示灯一直显示紫色:

        表示OBLOQ的wifi连接成功但是mqtt异常断开,尝试检查所在wifi是否断网,也有可能easyiot服务器问题,等待一会儿再连接或联系论坛管理员。

3)  OBLOQ指示灯一直显示红色:

        表示OBLOQ的wifi连接不成功,尝试检查是否tx和rx接反了(调换一下tx和rx接线顺序),或者是wifi有问题(使用手机开热点,不要用中文WIFI名称),然后就是参数有没有填错(物联网网站里面的参数)。

4.4 更多创意

       本篇教程只是讲述了在Mind+中使用SIoT的操作步骤,利用SIoT还可以实现更多好玩的物联网项目,比如物联网浇花、智慧家庭、物联网数据采集、环境检测仪等等。
DF创客社区中也有很多好玩的物联网项目,快去搜索发现吧!社区网址:www.dfrobot.com.cn

Arduino Uno板程序.zip

136.18 KB, 下载次数: 557

Arduino Uno板程序

laai  初级技师

发表于 2019-6-17 12:12:42

精化,好帖,占沙发!~
回复

使用道具 举报

gada888  版主

发表于 2019-7-11 11:19:48

值得认真研究
回复

使用道具 举报

曾剑波  初级技匠

发表于 2019-8-25 16:20:05

值得学习一下。
回复

使用道具 举报

丁新源  学徒

发表于 2019-12-15 19:26:45

感谢分享~
回复

使用道具 举报

六月的雨  中级技师

发表于 2020-3-28 20:43:33

谢谢分享,学习一下!
回复

使用道具 举报

六月的雨  中级技师

发表于 2020-4-4 13:04:21

很好的贴子!
回复

使用道具 举报

Yee  见习技师

发表于 2020-10-13 21:21:30

楼主,请问这里的变量N,能不能换成数字类型的变量啊。我发现如果换成数字类型的变量,后面obloq读取的那个模块装不上
回复

使用道具 举报

gfeagleok  学徒

发表于 2020-11-25 15:04:06

真心感谢版主的分享
回复

使用道具 举报

gfeagleok  学徒

发表于 2020-11-26 09:32:40

终于测试成功,再次感谢
回复

使用道具 举报

EIMGOPwu45ZD  学徒

发表于 2022-12-21 00:10:18

请问 如何用电脑向arduino发送消息,并显示在lcd1602的屏幕上?
WedDecember-202212219988..png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail