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

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

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)、库文件和示例程序
完善的使用示例文档
帮助入门者迅速开始一个物联网项目的实践

在这里插入图片描述

11、使用Easy IoT平台远距离收集声光数据

#MicroPython动手做(31)——物联网之Easy IoT
#使用Easy IoT平台远距离收集声光数据

#MicroPython动手做(31)——物联网之Easy IoT
#使用Easy IoT平台远距离收集声光数据from mpython import *
import network
from umqtt.simple import MQTTClient
import music
import timemy_wifi = wifi()my_wifi.connectWiFi("zh", "zy1567")mqtt = MQTTClient("664fa81baa7fe777", "182.254.130.180", 1883, "qlZ0uezGR", "3_W0uezGgz", keepalive=30)mqtt.set_last_will("TvkJXezMR", "I am offline")try:mqtt.connect()print('Connected')
except:print('Disconnected')oled.fill(0)
oled.DispChar("远距离收集声光数据", 10, 15, 1)
oled.show()
music.play('D5:1')
rgb.fill((int(0), int(102), int(0)))
rgb.write()
time.sleep_ms(1)
while True:rgb[1] = (int(255), int(0), int(0))rgb.write()time.sleep_ms(1)mqtt.publish("TvkJXezMR", (str(light.read())))mqtt.publish("ZlB0tWZMg", (str(sound.read())))time.sleep(1)rgb.fill( (0, 0, 0) )rgb.write()time.sleep_ms(1)

收集到的声音数据

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

收集到的光线数据

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

mPython X 实验图形编程

在这里插入图片描述

在这里插入图片描述

12、移动端EasyIoT小程序

微信小程序搜索Easy IoT或打开微信扫描下方二维码,使用DFRobot用户中心账号登陆(手机号+验证码),进入“我的设备”页面。“我的设备”页面显示了在Easy IoT物联网网站中拥有的设备列表。可以看到设备中物联网数据的数据图表。

在这里插入图片描述

移动端EasyIoT小程序

在这里插入图片描述

移动端EasyIoT小程序

在这里插入图片描述

#MicroPython动手做(31)——物联网之Easy IoT
#使用移动端EasyIoT小程序控制RGB灯

#MicroPython动手做(31)——物联网之Easy IoT
#使用移动端EasyIoT小程序控制RGB灯from mpython import *
import network
from umqtt.simple import MQTTClient
import time
import music
from machine import Timer
import ubinasciimy_wifi = wifi()my_wifi.connectWiFi("zh", "zy1567")mqtt = 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!")def 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("移动版EasyIoT小程序", 5, 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()

用移动端EasyIoT小程序发送指令

在这里插入图片描述

mPython X 实验图形编程

在这里插入图片描述

用移动端EasyIoT小程序发送指令

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

相关文章:

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

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

Elasticsearch 快照和恢复

文章目录 简介快照存储库说明创建或更新存储库接口说明路径参数查询参数请求正文 使用 fs 方式创建存储库验证储存库获取存储库信息删除存储库清理储存库 快照创建快照路径参数查询参数请求正文示例 获取快照查询参数示例 克隆快照查询参数示例 获取快照状态示例 恢复快照查询参…...

Packet Tracer - 检验 IPv4 和 IPv6 编址

Packet Tracer - 检验 IPv4 和 IPv6 编址 地址分配表 设备 接口 IPv4 地址 子网掩码 默认网关 IPv6 地址/前缀 R1 G0/0 10.10.1.97 255.255.255.224 N/A 2001:DB8:1:1::1/64 N/A S0/0/1 10.10.1.6 255.255.255.252 N/A 2001:DB8:1:2::2/64 N/A 本地链路 F…...

PHP8的表达式-PHP8知识详解

表达式是 PHP 最重要的基石。在 PHP8中,几乎所写的任何东西都是一个表达式。简单但却最精确的定义一个表达式的方式就是"任何有值的东西"。 最基本的表达式形式是常量和变量。当键入"$a 5",即将值"5"分配给变量 $a。&quo…...

亚马逊云科技七项生成式AI新产品生成式AI,为用户解决数据滞后等难题

7月27日,亚马逊云科技在纽约峰会上一连发布了七项生成式AI创新,涵盖了从底层硬件到工具、软件、再到生态的全方位更新,成为它在该领域迄今最全面的一次升级展示,同时也进一步降低了生成式AI的使用门槛。 亚马逊云科技凭借自身端到…...

图片等比例显示全部,兼容不同宽高比例图片

功能描述&#xff1a;预览瀑布流图片 点击预览不同的尺寸图片 <!-- 预览页面 --><div class"sea"><img :src"seaobj.url" alt""></div> .sea {z-index: 100;position: fixed;top: 0;text-align: center;background-colo…...

·[K8S:使用calico网络插件]:解决集群节点NotReady问题

文章目录 一&#xff1a;安装calico&#xff1a;1.1&#xff1a;weget安装Colico网络通信插件&#xff1a;1.2&#xff1a;修改calico.yaml网卡相关配置&#xff1a;1.2.1&#xff1a;查看本机ip 网卡相关信息&#xff1a;1.2.2&#xff1a;修改calico.yaml网卡interface相关信…...

泊松损坏图像的快速尺度间小波去噪研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

服务器端开发-golang dlv 远程调试

1。需要root权限的服务器代码调试 sudo ./appps to get piddlv attach pid --headless --listen:40000 --api-version2 --accept-multiclientattach the golang IDE or other IDE 2。不需要root权限的服务器代码调试&#xff0c;另一种选择 dlv --listen:40000 --headlesstr…...

STM32F103——时钟配置

目录 1、认识时钟树 1.1 什么是时钟树 1.2 时钟系统解析 1.2.1 时钟源 1.2.2 锁相环PLL 1.2.3 系统时钟SYSCLK 1.2.4 时钟信号输出MCO 2、如何修改主频 2.1 STM32F1时钟系统配置 2.2 STM32F1 时钟使能和配置 下列进行举例的开发板是原子哥的战舰开发板STM32F103ZET…...

【Linux】信号捕捉

目录 信号捕捉1.用户态与内核态1.1关于内核空间与内核态&#xff1a;1.2关于用户态与内核态的表征&#xff1a; 2.信号捕捉过程 信号捕捉 1.用户态与内核态 用户态&#xff1a;执行用户代码时&#xff0c;进程的状态 内核态&#xff1a;执行OS代码时&#xff0c;进程的状态 …...

超详情的开源知识库管理系统- mm-wiki的安装和使用

背景&#xff1a;最近公司需要一款可以记录公司内部文档信息&#xff0c;一些只是累计等&#xff0c;通过之前的经验积累&#xff0c;立马想到了 mm-wiki&#xff0c;然后就给公司搭建了一套&#xff0c;分享一下安装和使用说明&#xff1a; 当前市场上众多的优秀的文档系统百…...

安卓:UDP通信

目录 一、介绍 网络通信的三要素&#xff1a; &#xff08;1&#xff09;、IP地址&#xff1a; IPv4: IPv6: IP地址形式&#xff1a; IP常用命令&#xff1a; IP地址操作类: &#xff08;2&#xff09;、端口&#xff1a; &#xff08;3&#xff09;、协议: UDP协…...

clickhouse安装

clickhouse安装 在线安装和离线安装 一、环境准备: 1.检查系统是否支持clickhouse安装 (向量化支持) grep -q sse4_2 /proc/cpuinfo && echo “SSE 4.2 supported” || echo “SSE 4.2 not supported.” 2.下载对应的clickhouse包 复制运行之后,就会将对应的包加入…...

Cpp学习——string(2)

目录 ​编辑 容器string中的一些函数 1.capacity() 2.reserve() 3.resize() 4.push_back()与append() 5.find系列函数 容器string中的一些函数 1.capacity() capacity是string当中表示容量大小的函数。但是string开空间时是如何开的呢&#xff1f;现在就来看一下。先写…...

python进阶编程

lambda匿名函数 python使用lambda表达式来创建匿名函数 语法 // lambda 参数们&#xff1a;对参数的处理 lambda x : 2 * x // x 是参数&#xff0c; 2*x 是返回值 ​ //使用lambda实现求和 sum lambda arg1, arg2 : agr1 arg2 print(sum(10,20)) ​ // 将匿名函数封装在一…...

算法练习--leetcode 链表

文章目录 合并两个有序链表删除排序链表中的重复元素 1删除排序链表中的重复元素 2环形链表1环形链表2相交链表反转链表 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。 新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&…...

Android性能优化—Apk瘦身优化

随着业务迭代&#xff0c;apk体积逐渐变大。项目中积累的无用资源&#xff0c;未压缩的图片资源等&#xff0c;都为apk带来了不必要的体积 增加。而APK 的大小会影响应用加载速度、使用的内存量以及消耗的电量。在讨论如何缩减应用的大小之前&#xff0c;有必要了解下应用 APK …...

前端主题切换方案——CSS变量

前言 主题切换是前端开发中老生常谈的问题&#xff0c;本文将介绍主流的前端主题切换实现方案——CSS变量 CSS变量 简介 编写CSS样式时&#xff0c;为了避免代码冗余&#xff0c;降低维护成本&#xff0c;一些CSS预编译工具&#xff08;Sass/Less/Stylus&#xff09;等都支…...

Java8 list多属性去重

大家好&#xff0c;我是三叔&#xff0c;很高兴这期又和大家见面了&#xff0c;一个奋斗在互联网的打工人。 在 Java 开发中&#xff0c;我们经常会面临对 List 中的对象属性去重的需求。然而&#xff0c;当需要根据多个属性来进行去重时&#xff0c;情况会稍微复杂一些。本篇…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...