当前位置: 首页 > news >正文

【雕爷学编程】MicroPython动手做(31)——物联网之Easy IoT 2

1、物联网的诞生
美国计算机巨头微软(Microsoft)创办人、世界首富比尔盖茨,在1995年出版的《未来之路》一书中,提及“物物互联”。1998年麻省理工学院提出,当时被称作EPC系统的物联网构想。2005年11月,国际电信联盟发布《ITU互联网报告2005:物联网》,正式提出物联网时代来临。
物联网(IoT)一词是由Kevin Ashton 于1999年在Proctor&Gamble的一次演讲中创造的 。他是麻省理工学院Auto-ID实验室的联合创始人。他率先将RFID(用于条形码检测器)用于供应链管理领域。他还创立了Zensi,一家生产能量传感和监测技术的公司。 所以,让我首先向您介绍Kevin Ashton的一句话,他在2009年为RFID期刊撰写了这篇文章。这将有助于您从核心理解物联网。

如果我们拥有能够了解所有事情的计算机 - 使用他们在没有我们任何帮助的情况下收集的数据 - 我们将能够跟踪和计算所有内容,并大大减少浪费,损失和成本。我们知道什么时候需要更换,修理或召回,以及它们是新鲜的还是过去的。 我们需要用他们自己的收集信息的方式赋予计算机权力,这样他们就可以随意地看到,听到和闻到这个世界。

上面凯Kevin的应用会让你了解物联网发展背后的意识形态。现在让我们尝试进一步简化这个术语,从根本上理解物联网。在此之后,我们将继续前进,并寻求物联网的好处。

在这里插入图片描述
2、什么是物联网?
大家在听到物联网时,脑海中会出现一个什么样的印象呢?物联网的英语是Internet of Things,缩写为IoT,这里的“物”指的是我们身边一切能与网络相连的物品。例如您身上穿着的衣服、戴着的 手表、家里的家用电器和汽车,或者是房屋本身,甚至正在读的这本书,只要能与网络相连,就都是物联网说的“物”。

物联网(Internet of Things,缩写IoT)是一个基于互联网、传统电信网等信息承载体,让所有能够被寻找网络联机的对象,实现互联互通的网络。就像我们用互联网在彼此之间传递信息一样,物联网就是“物”之间通过连接互联网来共享信息并产生有用的信息,而且无需人为管理就 能运行的机制。他们可以互相感知和沟通。现在想象一下,无生命的物体是否可以在没有任何人为干预的情况下感知并相互作用。听起来很神奇不是吗?

在这里插入图片描述
3. 物联网架构

目前物联网架构通常分为感知层、网络层和应用层三个层次,也有四层架构、五层架构和七层架构的分法,不过我们这里使用通常使用的三层架构进行说明。图示如下:

(1)感知层

与环境交互的传感器,执行器和边缘设备

感知层是物联网的皮肤和五官,用于识别物体、感知物体、采集信息、自动控制,比如装在空调上的温度传感器识别到了室内温度高于30度,把这个信息收集后,自动打开了空调进行制冷;这个层面涉及到的是各种识别技术、信息采集技术、控制技术。而且这些技术是交叉使用的的,各种感知有些是单一的,有些则是综合的,比如机器人就是整合了各种感知系统。 这一层最常见的就是各种传感器,用于替代或者延展人类的感官完成对物理世界的感知,也包括企业信息化过程中用到的RFID以及二维码技术。

(2) 网络层

通过网络并与应用层协调发现,连接和转换设备

网络层则主要实现信息的传递、路由(决定信息传递的途径)和控制(控制信息如何传递),分为两大部分, 一部分是物联网的通信技术,一部分是物联网的通讯协议,通讯技术负责把物与物从物理上链接起来,可以进行通信,通讯协议则负责建立通信的规则和统一格式。

物联网通讯协议和通讯技术一样的多,如MQTT、DDS、AMQP、XMPP、JMS、REST、CoAP、OPC UA。网络层就相当于人的大脑和神经中枢,主要负责传递和处理感知层获取的信息。

(3)应用层

为用户提供专业服务和功能的数据处理和存储

是在各种物联网通讯协议的支持下,对物联网形成的数据在宏观层面进行分析并反馈到感知层执行特定控制功能,包括控制物与物之间的协同,物与环境的自适应,人与物的协作。 应用层个人理解可分为两大部分,一部分是通用的物联网平台,建立在云平台之上,可以是IAAS/PASS/SAAS的一种或者混合。 目前已经有不少企业推出了物联网平台,比如树根互联、百度云天工、腾讯QQ物联智能硬件开放平台、阿里Link物联网平台、SAP Leonardo、亚马逊AWS、微软Azure、Google Cloud IoT Core。 另外一部分是在这个通用的物联网平台上再产生具体应用,这些应用类似于手机App,具体应用就是如何具体控制这些物如何收集信息,如何进行控制物。

这些具体应用场景包括:
个人应用:可穿戴设备、运动健身、健康、娱乐应用、体育、玩具、亲子、关爱老人;
智能家居:家庭自动化、智能路由、安全监控、智能厨房、家庭机器人、传感检测、智能宠物、智能花园、跟踪设备;
智能交通:车联网、智能自行车/摩托车(头盔设备)、无人驾驶、无人机、太空探索;
企业应用:医疗保健、零售、支付/信用卡、智能办公室、现代农业、建筑施工;
工业互联网:智能制造、能源工业、供应链、工业机器人、工业可穿戴设备(智能安全帽等);
从应用层面可以看出,物联网真的是可以无处不用,无处不在。物联网的最终目标是实现任何物体在任何时间、任何地点的链接,帮助人类对物理世界具有“全面的感知能力、透彻的认知能力和智慧的处理能力”。

在这里插入图片描述
4、Easy IoT是什么
Easy IoT是一个国际化物联网服务平台 http://iot.dfrobot.com.cn/,可以对联网的传感器/执行器数据进行实时监控和反馈,统计和分析已经接收的数据,并向传感器/执行器发送数据,帮助实现控制效果。

为什么用Easy IoT ——Easy IoT PC端和移动端

上手简单,即看即用
有pc端和移动端,国内国外随时随地使用
兼容多种硬件
支持HTTP或MQTT通信
提供配套硬件(Obloq)、库文件和示例程序
完善的使用示例文档
帮助入门者迅速开始一个物联网项目的实践

在这里插入图片描述

9、通过Easy IoT平台远距控制开关RGB灯

#MicroPython动手做(31)——物联网之Easy IoT
#通过Easy IoT平台远距控制开关RGB灯

#MicroPython动手做(31)——物联网之Easy IoT
#通过Easy IoT平台远距控制开关RGB灯from mpython import *import networkmy_wifi = wifi()my_wifi.connectWiFi('zh', 'zy1567')from umqtt.simple import MQTTClientmqtt = MQTTClient('0805e3d04f3b34e7', '182.254.130.180', 1883, 'qlZ0uezGR', '3_W0uezGgz', keepalive=30)try:mqtt.connect()print('Connected')
except:print('Disconnected')mqtt.set_last_will('TvkJXezMR', 'Ready!')import timeimport musicfrom machine import Timerimport ubinasciidef mqtt_topic_54766b4a58657a4d52(_msg):oled.DispChar((str(_msg)), 55, 24, 1)oled.show()if 'on' == _msg:music.play('D5:1')rgb.fill((int(255), int(0), int(0)))rgb.write()time.sleep_ms(1)oled.DispChar('开灯', 52, 36, 1)oled.show()elif 'off' == _msg:music.play('F5:1')rgb.fill( (0, 0, 0) )rgb.write()time.sleep_ms(1)oled.DispChar('关灯', 52, 36, 1)oled.show()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("TvkJXezMR")def timer14_tick(_):mqtt.ping()tim14 = Timer(14)
tim14.init(period=20000, mode=Timer.PERIODIC, callback=timer14_tick)
oled.invert(0)
oled.DispChar('Hello, world!', 24, 10, 1)
oled.show()
rgb[1] = (int(0), int(102), int(0))
rgb.write()
time.sleep_ms(1)
music.play('G5:1')
while True:mqtt.wait_msg()

通过Easy IoT平台远距控制开关RGB灯

在这里插入图片描述
在这里插入图片描述
mPython 实验图形编程

在这里插入图片描述

TvkJXezMR设备接收到的命令消息

在这里插入图片描述

10、输入数字远距离画空心园

#MicroPython动手做(31)——物联网之Easy IoT
#输入数字远距离画空心园

#MicroPython动手做(31)——物联网之Easy IoT
#输入数字远距离画空心园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("664fa81baa7fe777", "182.254.130.180", 1883, "qlZ0uezGR", "3_W0uezGgz", keepalive=30)mqtt.set_last_will("ZlB0tWZMg", "Hello, world!")try:mqtt.connect()print('Connected')
except:print('Disconnected')def mqtt_topic_5a6c423074575a4d67(_msg):if int(_msg) < 32:rgb.fill((int(0), int(0), int(153)))rgb.write()time.sleep_ms(1)music.play('E5:1')oled.fill(0)oled.circle(64, 32, (int(_msg)), 1)oled.show()else:rgb.fill((int(102), int(0), int(0)))rgb.write()time.sleep_ms(1)oled.fill(0)oled.DispChar("请输入正整数", 30, 12, 1)oled.DispChar("数值应小于32", 30, 24, 1)oled.show()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("ZlB0tWZMg")def timer14_tick(_):mqtt.ping()tim14 = Timer(14)
tim14.init(period=20000, mode=Timer.PERIODIC, callback=timer14_tick)music.play('D5:1')
rgb[1] = (int(0), int(102), int(0))
rgb.write()
time.sleep_ms(1)
oled.invert(0)
oled.DispChar("远距画空心圆", 30, 12, 1)
oled.show()
while True:mqtt.wait_msg()

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

mPython X 实验图形编程

在这里插入图片描述

ZlB0tWZMg设备接收到的数字命令消息

在这里插入图片描述

在这里插入图片描述

相关文章:

【雕爷学编程】MicroPython动手做(31)——物联网之Easy IoT 2

1、物联网的诞生 美国计算机巨头微软(Microsoft)创办人、世界首富比尔盖茨&#xff0c;在1995年出版的《未来之路》一书中&#xff0c;提及“物物互联”。1998年麻省理工学院提出&#xff0c;当时被称作EPC系统的物联网构想。2005年11月&#xff0c;国际电信联盟发布《ITU互联网…...

C# 简单模拟 程序内部 消息订阅发布功能

文章目录 前言模拟消息订阅发布使用注意事项 前言 我想做个简单的消息发布订阅功能&#xff0c;但是发现好像没有现成的工具类。要么就是Mqtt这种消息订阅发布。但是我只想程序内部进行消息订阅发布&#xff0c;进行程序的解耦。那没办法了&#xff0c;只能自己上了 模拟消息…...

第六章 支持向量机

文章目录 支持向量机间隔和支持向量对偶问题问题推导SMO 核函数实验 支持向量机 ⽀持向量机&#xff08;Support Vector Machines&#xff0c;SVM&#xff09; 优点&#xff1a;泛化错误率低&#xff0c;计算开销不⼤&#xff0c;结果易解释。缺点&#xff1a;对参数调节和核…...

Docker基本操作之删除容器Container和删除镜像IMAGE

一、删除容器Container语法 docker rm [OPTIONS] CONTAINER [CONTAINER...]OPTIONS参数说明&#xff1a; -f :通过 SIGKILL 信号强制删除一个运行中的容器。【注意是正在运行的容器实例】-l :移除容器间的网络连接&#xff0c;而非容器本身。-v :删除与容器关联的卷。即删除容…...

vue 3.0 + element-ui MessageBox弹出框的 让文本框显示文字 placeholder

inputPlaceholder:请填写理由, 方法实现如下: this.$prompt(, 是否确认&#xff1f;, { confirmButtonText: 确定, cancelButtonText: 取消, inputPlaceholder:请填写理由, }).then(({ value }) > { if(value null || value ""){ Message({message: 请填…...

QT生成可执行文件的步骤

QT生成可执行文件的步骤 第一步&#xff1a;debug为release&#xff0c;然后进行编译 第二步&#xff1a;添加QT生成必要的库 首先&#xff0c;建立一个新的文件夹&#xff0c;然后将Release中的可执行文件拷贝到新的文件夹中 然后&#xff0c;在新建文件夹中生成必要的库 …...

一分钟学会JS获取当前年近五年的年份

先看效果图 上代码&#xff1a; 1、HTML <div><el-date-pickerv-model"queryYearXmgk.startYear"format"yyyy"value-format"yyyy"type"year"placeholder"开始"clearable:picker-options"pickerStartAuditYe…...

14 springboot项目——首页跳转实现

templates里的静态资源无法访问&#xff0c;需要写mvc的配置类或者改application.xml配置文件实现首页访问。这两个方式用其中一种即可&#xff0c;否则会冲突。 14.1 首页跳转方式一 创建配置类&#xff0c;在config包中创建一个mvc的配置类&#xff1a; package jiang.com.s…...

IL汇编语言读取控制台输入和转换为整数

新建一个testcvt.il&#xff1b; .assembly extern mscorlib {}.assembly Test{.ver 1:0:1:0}.module test.exe.method static void main() cil managed{.maxstack 1.entrypointldstr "\n请输入一个数字:"call void [mscorlib]System.Console::Write(string)call st…...

什么是跨链 DeFi?

跨链 DeFi 是指存在于多个不同区块链生态系统之间的金融应用程序生态系统&#xff0c;可以在彼此之间无缝交换数据和通证。 Web3 生态系统已经变得多链化&#xff0c;存在于数百个区块链、二层网络、应用链和其他环境的去中心化应用繁荣发展。虽然多样化的区块链生态系统的推出…...

Linux下C/C++的gdb工具与Python的pdb工具常见用法之对比

1、gdb和pdb分别是什么&#xff1f; 1.1、gdb GDB&#xff08;GNU Debugger&#xff09;是一个功能强大的命令行调试工具&#xff0c;由GNU项目开发&#xff0c;用于调试C、C等编程语言的程序。它在多个操作系统中都可以使用&#xff0c;包括Linux、MacOS和Windows&#xff0…...

从入门到专业:探索Python中的判断与循环技巧!

文章目录 判断语句布尔类型和比较运算符if语句的基本格式练习案例&#xff1a;成年人判断if else语句if elif else语句判断语句的嵌套案例&#xff1a;猜数字 循环语句while循环的基础语法while循环的基础案例while循环的嵌套应用补充&#xff1a;print输出不换行&\tfor循环…...

mqtt、tcp、http的区别

文章目录 一、MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;1、类型2、用途 二、TCP&#xff08;Transmission Control Protocol&#xff09;1、类型2、用途 三、HTTP&#xff08;Hypertext Transfer Protocol&#xff09;1、类型2、用途 四、主要区别1、类…...

边写代码边学习之RNN

1. 什么是 RNN 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是一种以序列数据为输入来进行建模的深度学习模型&#xff0c;它是 NLP 中最常用的模型。其结构如下图&#xff1a; x是输入&#xff0c;h是隐层单元&#xff0c;o为输出&#xff…...

在linux调试进程PID的方法

当我们谈论调试 PID&#xff08;进程标识符&#xff09;时&#xff0c;我们通常是指诊断和解决与操作系统中的特定进程相关的问题。有许多工具和方法可用于调试 PID&#xff0c;以下是一些常见的方法&#xff1a; 1. 使用ps命令 ps命令是最基本的调试工具&#xff0c;用于查看…...

【并发编程】线程安全的栈容器

std::stack容器的接口包括 empty(), size(), top(), push(), pop()等。 问题 其原接口在多线程的情况下&#xff0c;会持续很多问题。 例如&#xff0c;在std::stack容器的接口中&#xff0c;在多线程下应用时&#xff0c;empty()和size()的结果是不可信的。因为尽管在某线程…...

ES嵌套查询和普通查询的高亮显示区别

在 Elasticsearch 中&#xff0c;高亮显示是一种强大的搜索结果可视化工具&#xff0c;它可以帮助我们快速识别匹配的关键字或短语。在ES中&#xff0c;我们可以使用两种不同的查询方式来实现高亮显示&#xff1a;嵌套查询和普通查询。本文探讨这两种查询方式的高亮显示区别以及…...

Greenplum集群部署

一,安装说明 1.1环境说明 *名称**版本*操作系统CentOS 7.6 64bitgreenplumgreenplum-db-6.10.1-rhel7-x86_64.rpm1.2集群介绍 IPhostname集群节点10.240.3.244gpmastermaster10.240.3.245gpsegment1segment10.240.3.246gpsegment2segment二,安装环境准备 2.1 修改各节点名称…...

电教智能云数据可视化平台开发电能优化日志实录

电教智能云数据可视化平台开发电脑优化日志实录 一、2K和4K弹窗判断二、电能API对接1.电脑爬虫2.电能分组过滤3.数据可视化渲染4.弹窗 三.数组按顺序输出 一、2K和4K弹窗判断 {* 判断2k和4k弹窗 *}{if $dataScene[scene_standard] eq 0}<a class"menuBtn subMenu"…...

JSX语法基础总结

题记&#xff1a;首先我们要了解一下jsx是什么&#xff0c;跟js有什么区别&#xff0c;其实就是js的语法糖&#xff0c;加上了xml的语法&#xff0c;使得产生虚拟dom更加的方便&#xff0c;简单说一下&#xff0c;xml就是存储数据的格式&#xff0c;想了解xml的话&#xff0c;可…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...