【雕爷学编程】MicroPython动手做(30)——物联网之Blynk 4

news/2024/11/24 8:33:35/

知识点:什么是掌控板?
掌控板是一块普及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。这里的“物”指的是我身边一切能与网络联通的物品。例如你带的手表、你骑的共享单车、马路上的汽车、家里的冰箱、路边的路灯、甚至是一棵树。只要一件物品能够与网络相连,它就都是物联网中的“物”。而所谓物联网,就是“物”与人,以及“物”与“物”之间,通过网络来传递和处理信息。

在这里插入图片描述
Blynk
专为物联网而设计。它可以远程控制硬件,可以显示传感器数据,可以存储数据,对其进行虚拟化,还可以执行许多其他出色的工作。该平台包含三个主要组件:

1、Blynk应用程序——允许您使用我们提供的各种小部件为您的项目创建惊人的界面。

2、Blynk服务器——负责智能手机和硬件之间的所有通信。您可以使用我们的Blynk Cloud或在本地运行您的私有Blynk服务器。它是开源的,可以轻松处理数千个设备,甚至可以在Raspberry Pi上启动。

3、Blynk库——适用于所有流行的硬件平台-支持与服务器的通信并处理所有传入和传出的命令。

现在想像一下:每次在Blynk应用程序中按下Button时,消息就会传播到Blynk Cloud空间,神奇地在其中找到通向硬件的方式。它在相反方向上的作用相同,并且所有操作都在眨眼间发生。

在这里插入图片描述

5、远程网络八音盒电子琴

设置的APP控制面板元素为

在这里插入图片描述

#MicroPython动手做(30)——物联网之Blynk
#远程网络八音盒电子琴

#MicroPython动手做(30)——物联网之Blynk
#远程网络八音盒电子琴from mpython import *
import network
import blynklib
import time
import musicmy_wifi = wifi()my_wifi.connectWiFi("zh", "zy1567")blynk = blynklib.Blynk("8d52fd7ed2844892a843158e127ed3f2", server="blynk.mpython.cn", port=8080)@blynk.handle_event("connect")
def connect_handler():print('Blynk connected')@blynk.handle_event("disconnect")
def connect_handler():print('Blynk disconnected')@blynk.handle_event('write V1')
def write_virtual_pin_handler(pin, _value):global my_listfor i in range(0, len(_value)):try: _value = eval(_value)except: passif len(_value) == 1: _value = _value[0]music.play('C3:2')@blynk.handle_event('write V2')
def write_virtual_pin_handler(pin, _value):global my_listfor i in range(0, len(_value)):try: _value = eval(_value)except: passif len(_value) == 1: _value = _value[0]music.play('D3:2')@blynk.handle_event('write V3')
def write_virtual_pin_handler(pin, _value):global my_listfor i in range(0, len(_value)):try: _value = eval(_value)except: passif len(_value) == 1: _value = _value[0]music.play('E3:2')@blynk.handle_event('write V4')
def write_virtual_pin_handler(pin, _value):global my_listfor i in range(0, len(_value)):try: _value = eval(_value)except: passif len(_value) == 1: _value = _value[0]music.play('F3:2')@blynk.handle_event('write V5')
def write_virtual_pin_handler(pin, _value):global my_listfor i in range(0, len(_value)):try: _value = eval(_value)except: passif len(_value) == 1: _value = _value[0]music.play('G3:2')@blynk.handle_event('write V6')
def write_virtual_pin_handler(pin, _value):global my_listfor i in range(0, len(_value)):try: _value = eval(_value)except: passif len(_value) == 1: _value = _value[0]music.play('A3:2')@blynk.handle_event('write V7')
def write_virtual_pin_handler(pin, _value):global my_listfor i in range(0, len(_value)):try: _value = eval(_value)except: passif len(_value) == 1: _value = _value[0]music.play('B3:2')oled.fill(0)
oled.DispChar("    远程八音盒电子琴", 0, 16, 1)
oled.show()
rgb[1] = (int(0), int(51), int(0))
rgb.write()
time.sleep_ms(1)
while True:blynk.run()

mPython X 实验图形编程

在这里插入图片描述

#MicroPython动手做(30)——物联网之Blynk
#远程网络八音盒电子琴 (实验视频)

https://v.youku.com/v_show/id_XNDcwNTQxMzUxMg==.html

在这里插入图片描述

6、Blynk远程控制小车前后左右行驶

#MicroPython动手做(30)——物联网之Blynk
#Blynk远程控制小车前后左右行驶

#MicroPython动手做(30)——物联网之Blynk
#Blynk远程控制小车前后左右行驶from mpython import *
import network
import blynklib
import music
import time
import parrotmy_wifi = wifi()my_wifi.connectWiFi("zh", "zy1567")blynk = blynklib.Blynk("67988e85a728460fb1d543b9d15e0b5f", server="blynk.mpython.cn", port=8080)@blynk.handle_event("connect")
def connect_handler():print('Blynk connected')@blynk.handle_event("disconnect")
def connect_handler():print('Blynk disconnected')@blynk.handle_event('write V1')
def write_virtual_pin_handler(pin, _value):for i in range(0, len(_value)):try: _value = eval(_value)except: passif len(_value) == 1: _value = _value[0]parrot.set_speed(parrot.MOTOR_1, 80)parrot.set_speed(parrot.MOTOR_2, 80)@blynk.handle_event('write V2')
def write_virtual_pin_handler(pin, _value):for i in range(0, len(_value)):try: _value = eval(_value)except: passif len(_value) == 1: _value = _value[0]parrot.set_speed(parrot.MOTOR_1, -50)parrot.set_speed(parrot.MOTOR_2, -50)@blynk.handle_event('write V3')
def write_virtual_pin_handler(pin, _value):for i in range(0, len(_value)):try: _value = eval(_value)except: passif len(_value) == 1: _value = _value[0]parrot.set_speed(parrot.MOTOR_1, -50)parrot.set_speed(parrot.MOTOR_2, 50)@blynk.handle_event('write V4')
def write_virtual_pin_handler(pin, _value):for i in range(0, len(_value)):try: _value = eval(_value)except: passif len(_value) == 1: _value = _value[0]parrot.set_speed(parrot.MOTOR_1, 50)parrot.set_speed(parrot.MOTOR_2, -50)@blynk.handle_event('write V5')
def write_virtual_pin_handler(pin, _value):for i in range(0, len(_value)):try: _value = eval(_value)except: passif len(_value) == 1: _value = _value[0]parrot.set_speed(parrot.MOTOR_1, 0)parrot.set_speed(parrot.MOTOR_2, 0)oled.fill(0)
oled.DispChar("         远程控制小车", 0, 1, 1)
oled.show()
music.play('D5:1')
rgb[1] = (int(0), int(51), int(0))
rgb.write()
time.sleep_ms(1)
while True:blynk.run()

设置的APP控制面板的元素为

在这里插入图片描述

mPython X 实验图形编程

在这里插入图片描述

#MicroPython动手做(30)——物联网之Blynk
#Blynk远程控制小车前后左右行驶(25秒实验视频)

https://v.youku.com/v_show/id_XNDcyMjk2MTUwMA==.html?spm=a2h0c.8166622.PhoneSokuUgc_1.dtitle

在这里插入图片描述


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

相关文章

C++ 矩形切割

【问题描述】 小明有一些矩形的材料,他要从这些矩形材料中切割出一些正方形。 当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正方 形,剩下一块矩形,然后再切割剩下的矩形材料,直到全部切为正…

(AcWing)分组背包问题

有 N 组物品和一个容量是 V 的背包。 每组物品有若干个,同一组内的物品最多只能选一个。 每件物品的体积是 vij,价值是 wij,其中 i 是组号,j 是组内编号。 求解将哪些物品装入背包,可使物品总体积不超过背包容量&…

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)七:工作台界面实现

一、本章内容 本章实现工作台界面相关内容,包括echart框架引入,mock框架引入等,实现工作台界面框架搭建,数据加载。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 基于VUE3+Layui从头搭建通用后台管理系统合集-工作台界面布局实现 五、…

机器学习实战13-超导体材料的临界温度预测与分析(决策树回归,梯度提升回归,随机森林回归和Bagging回归)

大家好,我是微学AI,今天给大家介绍一下机器学习实战13-超导体材料的临界温度预测与分析(决策树回归,梯度提升回归,随机森林回归和Bagging回归),这几天引爆网络的科技大新闻就是韩国科研团队宣称发现了室温超导材料-LK-99,这种材料…

Flutter Flar动画实战

在Flare动面出现之前,Flare动画大体可以分为使用AnimationController控制的基础动画以及使用Hero的转场动画,如果遇到一些复杂的场景,使用这些动画方案实现起来还是有难度的。不过,随着Flutter开始支持Flare矢量动面,Flutter的动画开发也变得越来越简单。事实上,Flare动画…

远程仓库的操作

一、远程仓库的操作命令 git remote # 查看当前项目关联的远程库 我事先关联了一个GitHub的远程仓库,关于如何关联远程仓库,可以看这篇文章远程仓库GitHub和Gitee_林涧泣的博客-CSDN博客 git remote add [仓库服务器名] [远程仓库地址] # 关联远程仓库…

【Vue】父子组件值及方法传递使用

父子组件值、方法引用 1、值 1.1 父组件获取子组件值 父组件 <template><div><button click"getChildValue">click</button><child ref"child"></child></div> </template><script> import Child…

1-搭建一个最简单的验证平台UVM,已用Questasim实现波形!

UVM-搭建一个最简单的验证平台&#xff0c;已用Questasim实现波形 1&#xff0c;背景知识2&#xff0c;".sv"文件搭建的UVM验证平台&#xff0c;包括代码块分享3&#xff0c;Questasim仿真输出&#xff08;1&#xff09;compile all&#xff0c;成功&#xff01;&…