【雕爷学编程】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灯

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

from mpython import *

import network

my_wifi = wifi()

my_wifi.connectWiFi('zh', 'zy1567')

from umqtt.simple import MQTTClient

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!')

import time

import music

from machine import Timer

import ubinascii

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('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

#输入数字远距离画空心园

python 复制代码
#MicroPython动手做(31)------物联网之Easy IoT
#输入数字远距离画空心园

from mpython import *
import network
from umqtt.simple import MQTTClient
import music
import time
from machine import Timer
import ubinascii

my_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设备接收到的数字命令消息

相关推荐
启明云端wireless-tag35 分钟前
ESP32-S3设备智能化升级,物联网无线AI语音交互,让生活更加便捷和有趣
物联网·乐鑫·esp32-s3·无线方案·ai语音交互
winfredzhang1 小时前
如何使用 python 中的 Pillow 创建可自定义的图标生成器
python·pillow·图标·png
qq_273900231 小时前
pytorch detach方法介绍
人工智能·pytorch·python
虞书欣的62 小时前
Python小游戏24——小恐龙躲避游戏
开发语言·python·游戏·小程序·pygame
TN_stark9322 小时前
多进程/线程并发服务器
服务器·算法·php
FHYAAAX2 小时前
【机器学习】任务十:从函数分析到机器学习应用与BP神经网络
开发语言·python
PyAIGCMaster2 小时前
python环境中,敏感数据的存储与读取问题解决方案
服务器·前端·python
何曾参静谧2 小时前
「Py」模块篇 之 PyAutoGUI库自动化图形用户界面库
运维·python·自动化
pumpkin845142 小时前
客户端发送http请求进行流量控制
python·网络协议·http
smj2302_796826523 小时前
用枚举算法解决LeetCode第3348题最小可整除数位乘积II
python·算法·leetcode