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

news/2024/11/23 0:28:42/

知识点:什么是掌控板?
掌控板是一块普及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为“虚谷物联”项目的核心软件,是为了帮助中小学生理解物联网原理,并且能够基于物联网技术开发各种创意应用。

在这里插入图片描述

8、读取环境光强度发送至SIoT网页端

#MicroPython动手做(29)——物联网之SIoT
#读取环境光强度发送至SIoT网页端

#MicroPython动手做(29)——物联网之SIoT
#读取环境光强度发送至SIoT网页端from umqtt.simple import MQTTClient
from mpython import *
import network
import music
import timebrightness=9# 事件回调函数
def on_button_a_down(_):global g_my_variabletime.sleep_ms(10)if button_a.value() == 1: returnoled.DispChar("           采集光线值", 0, (3-1)*16, 1)oled.show()while True:mqtt.publish("eagler8/zkb1",(str(light.read())))time.sleep(2)my_wifi = wifi()
button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)
my_wifi.connectWiFi("zh","zy1567")
while not (my_wifi.sta.isconnected()):pass
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网页端上读取到的光线值

在这里插入图片描述

显示消息监控的光线值图表

在这里插入图片描述

9、实时模式网页端控制板载RGB灯
Mind+ 实验图形编程

在这里插入图片描述
网页端输入命令“on”或者"off"

在这里插入图片描述

实时模式网页端控制板载RGB灯

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

10、通过主题消息“on”和“off”开关LED灯

#MicroPython动手做(29)——物联网之SIoT
#通过主题消息“on”和“off”开关LED灯

#MicroPython动手做(29)——物联网之SIoT
#通过主题消息“on”和“off”开关LED灯from mpython import *
import network
from umqtt.simple import MQTTClient
import music
import time
from machine import Timer
import ubinasciimy_wifi = wifi()my_wifi.connectWiFi("zh", "zy1567")mqtt = MQTTClient("ok", "192.168.31.248", 1883, "siot", "dfrobot", keepalive=30)try:mqtt.connect()print('Connected')
except:print('Disconnected')def mqtt_topic_6561676c6572382f7a6b6231(_msg):global iif str(_msg) == "on":rgb.fill((int(255), int(0), int(0)))rgb.write()time.sleep_ms(1)oled.DispChar("                 开灯", 0, 32, 1)oled.show()if str(_msg) == "off":rgb.fill( (0, 0, 0) )rgb.write()time.sleep_ms(1)oled.DispChar("                关灯", 0, 32, 1)oled.show()def on_button_a_down(_):global itime.sleep_ms(10)if button_a.value() == 1: returnmqtt.publish("eagler8/zkb1", "on")music.play('E5:1')def on_button_b_down(_):global itime.sleep_ms(10)if button_b.value() == 1: returnmqtt.publish("eagler8/zkb1", "off")music.play('D5:1')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))mqtt.set_callback(mqtt_callback)mqtt.subscribe("eagler8/zkb1")def timer14_tick(_):mqtt.ping()tim14 = Timer(14)
tim14.init(period=20000, mode=Timer.PERIODIC, callback=timer14_tick)button_a.irq(trigger=Pin.IRQ_FALLING, handler=on_button_a_down)button_b.irq(trigger=Pin.IRQ_FALLING, handler=on_button_b_down)mqtt.publish("eagler8/zkb1", "hello")
music.play('G5:1')
oled.fill(0)
oled.DispChar("        连接SIoT成功", 0, 16, 1)
oled.show()
rgb[1] = (int(0), int(51), int(0))
rgb.write()
time.sleep_ms(1)
while True:mqtt.wait_msg()

通过主题消息“on”和“off”开关LED灯

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

mPython x 实验图形编程

在这里插入图片描述


http://www.ppmy.cn/news/1001503.html

相关文章

机器学习:自动编码器Auto-encoder

Self-supervised Learning Framework 不用标注数据就能学习的任务,比如Bert之类的。但最早的方法是Auto-encoder。 Outline Auto-encoder encoder输出的向量,被decoder还原的图片,让输出的图片与输入的图片越接近越好。 将原始的高维向量变…

构建稳健的PostgreSQL数据库:备份、恢复与灾难恢复策略

在当今数字化时代,数据成为企业最宝贵的资产之一。而数据库是存储、管理和保护这些数据的核心。PostgreSQL,作为一个强大的开源关系型数据库管理系统,被广泛用于各种企业和应用场景。然而,即使使用了最强大的数据库系统&#xff0…

C语言易错知识点总结2

函数 第 1 题(单选题) 题目名称: 能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是:( ) 题目内容: A .return 这二个数 B .形参用数组 C .形参用二个指针 D .用…

小程序学习(六):全局配置

1.全局配置文件及常用的配置项 全局配置-window 2.小程序窗口的组成部分 3.了解window节点常用的配置项 4.设置导航栏的标题 设置步骤:app.json->window->navigationBarTitleText 5.设置导航栏的背景色 背景颜色不支持red这种文字 6.设置导航栏的标题颜色 注意:navigat…

基于ANACONDA安装用于Python编程的Spyder集成开发环境的方法步骤详解

基于ANACONDA安装用于Python编程的Spyder集成开发环境的方法步骤详解 Python作为一种当下流行的编程语言,其编辑器有很多种,本文介绍基于ANACONDA的安装Spyder编辑器的方法步骤。Spyder集成开发环境,和其他的Python开发环境相比,…

【HDFS】NN处理全量块汇报时reportDiff的一些细节

NN处理全量块汇报(FBR)时的一些细节怎么生成的toRemove怎么check 汇报上来的块是不是corrupt的?reportDiff方法里巧妙地引入delimiterBlock这个block的作用前置知识:【HDFS】Block、BlockInfo、BlockInfoContiguous、BlockInfoStriped的分析记录 上面的文章中介绍了关于Bl…

npm -v无法显示版本号

情况: 删除C盘下.npmrc文件后解决。路径 C:\Users\Dell 记录一下这个解法。

Json文件编辑功能

1 Json格式 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。…