【雕爷学编程】MicroPython动手做(29)——物联网之SIoT

知识点:什么是掌控板?
掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED显示屏、RGB灯、加速度计、麦克风、光线传感器、蜂鸣器、按键开关、触摸开关、金手指外部拓展接口,支持图形化及MicroPython代码编程,可实现智能机器人、创客智造作品等智能控制类应用。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、物联网(Internet of Things,缩写:IoT)

是基于互联网、传统电信网等信息承载体,让所有能行使独立功能的普通物体实现互联互通的网络。其应用领域主要包括运输和物流、工业制造、健康医疗、智能环境(家庭、办公、工厂)等,具有十分广阔的市场前景。

物联网的概念最早是在1999年由Kevin Ashton在一次演讲中提出来的,当时他是一个RFID研究机构的执行主任,这家研究机构是在宝洁公司和吉列公司的赞助下成立的。而他本人也因此被称为物联网之父。随后麻省理工学院的Neil Gershenfeld教授出版了一本名为《When things Start to Think》的书。以这些为标志,正式揭开了物联网的序幕。

物联网的英文是Internet of Things,缩写为IoT。这里的“物”指的是我身边一切能与网络联通的物品。例如你带的手表、你骑的共享单车、马路上的汽车、家里的冰箱、路边的路灯、甚至是一棵树。只要一件物品能够与网络相连,它就都是物联网中的“物”。而所谓物联网,就是“物”与人,以及“物”与“物”之间,通过网络来传递和处理信息。

在这里插入图片描述
SIoT
一个为教育定制的跨平台的MQTT服务器程序,S指科学(Science)、简单(simple)的意思。SIoT支持Win10、Win7、Mac、Linux等操作系统,一键启动,无需注册即可使用。SIoT针对学校场景的开源免费的MQTT服务器软件,可一键创建本地物联网服务器,摆脱联网困扰。SIoT重点关注物联网数据的收集和导出,是采集科学数据的最好选择之一。

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

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

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

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

在这里插入图片描述

SIoT下载链接

系统集合 http://download3.dfrobot.com.cn/SIoT/SIoT1.2_full.zip

版本V1.2:
windows 32&64位系统
Mac系统
linux系统
虚谷号系统

在这里插入图片描述

1、SIoT采用GO语言编写

具有如下特点:

(1)跨平台。支持Win10、Win7、Mac、Linux等操作系统。只要启动这一程序,普通计算机(包括拿铁熊猫、虚谷号和树莓派等微型计算机)就可以成为标准的MQTT服务器。

(2)一键运行。纯绿色软件,不需要安装,下载后解压就可以使用,对中小学的物联网技术教学尤其适合。

(3)使用简单。软件运行后,不需要任何设置就可以使用。利用特定的“Topic”的名称(“项目名称/设备名称”),就能自动在数据库中添加项目和设备的名称,并将消息数据存入数据库。

(4)支持数据导出。所有的物联网消息数据都可以在线导出,系统采用SQLite数据库,同时支持Mysql数据库。

(5)支持标准的MQTT协议。QoS级别为0。

(6)支持WebAPI。系统系统了完善的WebAPI,方便各种软件以HTTP的方式调用,支持App inventor、Scratch、VB等默认不支持MQTT的中小学生常用编程软件调用。

(7)支持插件开发。

(8)SIoT的资源 GitHub:https://github.com/vvlink/SIoT/ 提供文档、案例、课程。

SIoT软件开发团队

核心人员:苏宇、谢作如、夏青

技术支持:张路、叶琛、李冬冬

系统测试:李亮、林淼焱、张喻

注:SIoT软件的开发得到温州市科技局2019年科技创新项目的资助,为《物联网与科学探究创意实验课程开发》项目的成果之一,软件采用MIT协议开源。

在这里插入图片描述
2、SIoT使用手册
简介
介绍物联网、MQTT和SIoT软件。
下载和安装
介绍SIoT软件的下载、安装、运行以及软件操作界面。
客户端连接范例
介绍各种客户端和SIoT软件的连接。SIoT为标准的MQTT服务器,支持绝大多数的客户端程序连接。
典型应用案例
介绍各种利用物联网技术实现的典型应用案例,重点关注如何利用物联网技术进行科学探究。
高级操作技巧
介绍SIoT的一些高级操作,如安全设置、WebAPI和数据导出等。

《SIoT使用手册》在线版
https://siot.readthedocs.io/zh_CN/latest/index.html

SIoT文档开发团队
负责人:谢作如
参与人员:
谢作如(温州中学)
林淼焱(温州大学)
郑祥(温州四中)
郝晴(天津师大)
张喻(温州大学)
邱奕盛(温州中学)
许靖宇(天津师大)
宋达(天津师大)
毛雁(天津师大)
夏青(上海蘑菇云)
陆雅楠(上海师范大学)
……

在这里插入图片描述

3、在电脑上运行SIoT系统

(1)双击运行SIoT_win.exe,可以看到一个黑色的CMD窗口。

  • 使用SIoT过程中一定不要关该窗口。

在这里插入图片描述

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

(3)电脑每次连接WIFI,都会生成一个IP地址,每个IP地址对应的电脑都是唯一的。运行SIOT程序后会在电脑上建立一个SIOT服务器,其他设备要访问这个服务器,需要知道这个SIOT服务器所在电脑的IP地址。

获取电脑IP的方法有很多,可在网页上搜索到,下面我们来介绍其中一种简易操作方法,通过以下3步获取电脑IP。

a、同时按下键盘上“WIN”+“R”,弹出运行窗口。
b、输入“cmd”,点击确定,弹出小黑框。
c、在小黑框中输入“ipconfig”,点击键盘“enter”,在小黑框中可以看到IP地址。

在这里插入图片描述

4、 打开SIoT网页端

a、打开电脑浏览器,在网址栏输入在“STEP3”中获得的IP地址加上“:8080”,如:192.168.31.24:8080

  • “:” 需在在英文输入法下。

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

在这里插入图片描述
打不开的话——

 ■ 检查siot的小黑窗是否打开■ 检查ip地址是否错误,如果有多个ip地址就一个一个尝试■ 关闭网络防火墙

5、登陆SIoT网页端

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

在这里插入图片描述

6、尝试在SIoT平台输入消息,控制点亮或熄灭板载LED灯

#MicroPython动手做(29)——物联网之SIoT
#尝试在SIoT平台输入消息,控制点亮或熄灭板载LED灯

#MicroPython动手做(29)——物联网之SIoT
#尝试在SIoT平台输入消息,控制点亮或熄灭板载LED灯from umqtt.simple import MQTTClient
from machine import Timer
from mpython import *
import ubinascii
import network
import music_mqtt_topic_list = []def timer14_tick(_):global mqttmqtt.ping()def mqtt_callback(topic, msg):try:topic = topic.decode('utf-8', 'ignore')_msg = msg.decode('utf-8', 'ignore')eval('mqtt_topic_' + bytes.decode(ubinascii.hexlify(topic)) + '("' + _msg + '")')except:print((topic, msg))brightness=9# 事件回调函数
def mqtt_topic_6561676c6572382f7a6b6231(_msg):global g_my_variableif (_msg == on):music.pitch(196, 50)rgb.fill((255*brightness//9, 255*brightness//9, 153*brightness//9))rgb.write()if (_msg == off):music.pitch(784, 50)rgb.fill( (0, 0, 0) )rgb.write()my_wifi = wifi()
tim14 = Timer(14)
my_wifi.connectWiFi("zh","zy1567")
mqtt = MQTTClient("", "192.168.31.248", 1883, "siot", "dfrobot")
try:mqtt.connect()print('Connected')
except:print('Disconnected')
mqtt.set_callback(mqtt_callback)
tim14.init(period=20000, mode=Timer.PERIODIC, callback=timer14_tick)
mqtt.subscribe("eagler8/zkb1")
rgb[1] = (0*brightness//9, 102*brightness//9, 0*brightness//9)
rgb.write()
music.pitch(392, 50)
mqtt.publish("eagler8/zkb1","on")

Mind+ 实验图形编程

在这里插入图片描述

运行后出错,信息如下:

reader: read tcp 192.168.31.248:1883->192.168.31.221:53734: wsarecv: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

读取器:读取tcp 192.168.31.24:1883->192.168.31.221:53734:wsarecv:连接尝试失败,因为一段时间后被连接方未正确响应,或者由于连接的主机未能响应而建立连接失败。

在网页端,能查询到SIoT平台发出的消息,但无法控制板载LED灯

在这里插入图片描述

7、发布“hello”至主题“eagler8/zkb1”

#MicroPython动手做(29)——物联网之SIoT
#发布“hello”至主题“eagler8/zkb1”

#MicroPython动手做(29)——物联网之SIoT
#发布“hello”至主题“eagler8/zkb1”# MindPlus
# mpython
from umqtt.simple import MQTTClient
from mpython import *
import network
import musicbrightness=9my_wifi = wifi()
my_wifi.connectWiFi("zh","zy1567")
while not (my_wifi.sta.isconnected()):pass
oled.invert(0)
oled.DispChar("          Wifi连接成功", 0, (2-1)*16, 1)
mqtt = MQTTClient("", "192.168.31.248", 1883, "siot", "dfrobot")
try:mqtt.connect()print('Connected')
except:print('Disconnected')
rgb[1] = (0*brightness//9, 102*brightness//9, 0*brightness//9)
rgb.write()
music.pitch(392, 50)
mqtt.publish("eagler8/zkb1","hello")
oled.invert(0)
oled.DispChar("         SIoT连接成功", 0, (2-1)*16, 1)
oled.show()

Mind+ 实验图形编程

在这里插入图片描述

SIoT网页端收到的消息

在这里插入图片描述

SIoT 初始化参数

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/75812.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2023年电赛】运动目标控制与自动追踪系统(E 题)最简单实现

本方案的思路是最简单的不涉及复杂算法:识别矩形框,标记矩形框,输出坐标和中心点,计算长度,控制舵机移动固定长度!仅供完成基础功能参考,不喜勿喷! # 实现运动目标控制与自动追踪系…

企业上云实施路线图

企业上云步骤主要分为规划、设计、实施、验证、运维五个阶段。https://articles.e-works.net.cn/cloud/article144684.htm

JVM基础篇-直接内存

JVM基础篇-直接内存 什么是直接内存? 直接内存( 堆外内存 ) 指的是 Java 应用程序通过直接方式从操作系统中申请的内存,这块内存不属于jvm 传统方式读取文件 首先会从用户态切换到内核态,调用操作系统函数从磁盘读取文件,读取一部分到操作系统缓冲区…

Azure pipeline自动化打包发布

pipeline自动化,提交代码后,就自动打包,打包成功后自动发布 第一步 pipeline提交代码后,自动打包。 1 在Repos,分支里选择要触发的分支,这里选择cn_china,对该分支设置分支策略 2 在生产验证中增加新的策略 3 在分支安…

2023华数杯数学建模C题完整论文,包括每个问题的代码

目录 摘要 2.1 问题 1 的问题分析 2.2 问题 2 的问题分析 2.3 问题 3 的问题分析 完成版论文见此 摘要 问题一,我们使用了390名3至12个月婴儿及其母亲的相关数据,探讨了母亲的 身体和心理指标对婴儿的行为特征和睡眠质量的影响。我们首先进行了描述…

【JavaEE初阶】博客系统后端

文章目录 一. 创建项目 引入依赖二. 设计数据库三. 编写数据库代码四. 创建实体类五. 封装数据库的增删查改六. 具体功能书写1. 博客列表页2. 博客详情页3. 博客登录页4. 检测登录状态5. 实现显示用户信息的功能6. 退出登录状态7. 发布博客 一. 创建项目 引入依赖 创建blog_sy…

Dockerfile构建lamp镜像

1、构建目录 [rootdocker ~]# mkdir compose_lamp [rootdocker ~]# cd compose_lamp/ 2、编写Docekerfile [rootdocker compose_lamp]# vim Dockerfile #基础镜像 FROM centos:7#维护该镜像的用户信息 MAINTAINER Crushlinux <crushlinux163.com>#安装httpd RUN yum -…

LEARNING TO EXPLORE USING ACTIVE NEURAL SLAM 论文阅读

论文信息 题目&#xff1a;LEARNING TO EXPLORE USING ACTIVE NEURAL SLAM 作者&#xff1a;Devendra Singh Chaplot, Dhiraj Gandhi 项目地址&#xff1a;https://devendrachaplot.github.io/projects/Neural-SLAM 代码地址&#xff1a;https://github.com/devendrachaplot/N…

Java超级玛丽小游戏制作过程讲解 第一天 创建窗口

package com.sxt;import javax.swing.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener;public class MyFrame extends JFrame implements KeyListener {//设置窗口的大小为800*600public MyFrame() {this.setSize(800, 600);//设置窗口中显示this.setLo…

2023牛客暑期多校训练营6-A Tree

2023牛客暑期多校训练营6-A Tree https://ac.nowcoder.com/acm/contest/57360/A 文章目录 2023牛客暑期多校训练营6-A Tree题意解题思路代码 题意 解题思路 最大价值和这个数据范围&#xff0c;一眼 d p dp dp。 直接在树上并不好处理&#xff0c;问题是如何有效转化、处理…

Android Ble蓝牙App(二)连接与发现服务

Ble蓝牙App&#xff08;二&#xff09;连接与发现服务 前言正文一、GATT回调二、连接和断连三、连接状态回调四、发现服务五、服务适配器六、显示服务七、源码 前言 在上一篇中我们进行扫描设备的处理&#xff0c;本文中进行连接和发现服务的数据处理&#xff0c;运行效果图如下…

SystemVerilog scheduler

文章目录 简介调度器simulation regionPreponed regionActive regionInactive regionNBA(Non-blocking Assignment Events region)Observed regionReactive regionRe-Inactive Events regionRe-NBA RegionPostponed Region PLI region:Pre-active regionPre-NBA regionPost-NBA…

JMeter 4.x 简单使用

文章目录 前言JMeter 4.x 简单使用1. 启动2. 设置成中文3. 接口测试3.1. 设置线程组3.2. HTTP信息请求头管理器3.3. 添加HTTP请求默认值3.4. 添加HTTP cookie 管理3.5. 添加http请求3.5.1. 添加断言 3.6. 添加监听器-查看结果树3.7. 添加监听器-聚合报告 4. 测试 前言 如果您觉…

探索产品项目管理软件的种类及功能

随着科技的不断发展&#xff0c;越来越多的企业开始重视产品项目管理的重要性。产品项目管理软件作为一种有效的工具&#xff0c;可以帮助企业更好地规划、执行和控制项目&#xff0c;提高项目的成功率。本文将分为两部分&#xff0c;分别介绍产品项目管理软件的功能以及一些知…

java实现钉钉群机器人@机器人获取信息后,机器人回复(机器人接收消息)

1.需求 鉴于需要使用钉钉群机器人回复&#xff0c;人们提出的问题&#xff0c;需要识别提出的问题中的关键词&#xff0c;后端进行处理实现对应的业务逻辑 2.实现方式 用户群机器人&#xff0c;附带提出的问题&#xff0c;后端接收消息后识别消息内容&#xff0c;读取到关键…

深度学习,神经网络介绍

目录 1.神经网络的整体构架 2.神经网络架构细节 3.正则化与激活函数 4.神经网络过拟合解决方法 1.神经网络的整体构架 ConvNetJS demo: Classify toy 2D data 我们可以看看这个神经网络的网站&#xff0c;可以用来学习。 神经网络的整体构架如下1&#xff1a; 感知器&…

完全背包(从二维到一维)

图片来源活动 - AcWing 有 N件物品和一个容量为 V 的背包&#xff0c;每件物品有各自的价值且能被选择无数次&#xff0c;要求在有限的背包容量下&#xff0c;装入的物品总价值最大。 一&#xff0c;暴力解法&#xff08;容易超时&#xff09; #include<iostream> usi…

Java课题笔记~ 关联映射

一、MyBatis关联查询 在关系型数据库中&#xff0c;表与表之间存在着3种关联映射关系&#xff0c;分别为一对一、一对多、多对多。 一对一&#xff1a;一个数据表中的一条记录最多可以与另一个数据表中的一条记录相关。列如学生与学号就属于一对一关系。 一对多&#xff1a;主…

Intellij IDEA运行报Command line is too long的解决办法

想哭&#xff0c;vue前端运行起来&#xff0c;对应的后端也得起服务。 后端出的这个bug&#xff0c;下面的博客写的第二种方法&#xff0c;完整截图是下面这个。 ​​​​​​​​​​​​​​​​​​​​Intellij IDEA运行报Command line is too long的解决办法 - 知乎 (zh…

奥威BI系统|秒分析,更适合分析大数据

根据以往的经验&#xff0c;当数据量多到一定程度就容易导致系统卡顿、崩溃。这种现象给企业级数据分析造成了极大的困扰。随着业务发展扩大和分析需求精细化&#xff0c;企业需要一套能秒分析大数据的系统。而奥威BI系统就是这样一款可以秒分析大数据的商业智能系统。 奥威BI…