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

知识点:什么是掌控板?
掌控板是一块普及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.rhkb.cn/news/78601.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Element的Dialog+Form使用问题

在Element的Dialog中使用表单时&#xff0c;可能会出现以下问题 无法清空表单校验 <el-dialog title"新建资产" :visible.sync"addAssetsFormVisible" close"resetForm(addAssets)">resetForm (formName) {this.$refs[formName].resetFie…

2023-8-6 成年人交朋友,只筛选不改造。

前段时候&#xff0c;把Ex和相关的人都删掉了&#xff0c;又起了一次棺材。上次棺材给掀开&#xff0c;是因为肉桂拉小群又把我们拉一块。 我睡醒的时候看到了一堆的消息&#xff0c;他遇到麻烦想投靠我&#xff0c;还说以后要跟我混。他只有在遇到麻烦&#xff0c;遇到换工作…

前端CSS文字阴影text-shadow记录

前端CSS文字阴影text-shadow记录 一、文字阴影 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Doc…

【Redis】——AOF持久化

什么是AOF日志 AOF日志是redis为数据的持久化提供了的一个技术,日志里面记录着执行redis写命令。每当redis执行一条写命令的时候&#xff0c;就会将该命令记录 到AOF日志当中。当redis启动的时候&#xff0c;可以加载AOF日志中的所有指令&#xff0c;并执行这些指令恢复所有的…

Web3 solidity编写交易所合约 编写ETH和自定义代币存入逻辑 并带着大家手动测试

上文 Web3 叙述交易所授权置换概念 编写transferFrom与approve函数我们写完一个简单授权交易所的逻辑 但是并没有测试 其实也不是我不想 主要是 交易所也没实例化 现在也测试不了 我们先运行 ganache 启动一个虚拟的区块链环境 先发布 在终端执行 truffle migrate如果你跟着我…

使用WebMvcConfigurationSupport后导致原来返回的json数据变为了xml的解决方法

问题 未使用WebMvcConfigurationSupport拦截时返回的数据都是JSON格式&#xff0c;使用WebMvcConfigurationSupport做拦截后数据的返回变为了XML的格式。 原因 在Spring框架中&#xff0c;WebMvcConfigurationSupport 是一个类&#xff0c;它可以用于自定义Spring MVC的配置…

vue 标题文字字数过长超出部分用...代替 动态显示

效果: 浏览器最大化: 浏览器缩小: 代码: html: <div class"title overflow">{{item.name}}</div> <div class"content overflow">{{item.content}}</div> css: .overflow {/* 一定要加宽度 */width: 90%;/* 文字的大小 */he…

VB利用GDI+显示资源文件中的PNG文件

加载并打开资源文件&#xff0c;点击"添加自定义资源"&#xff0c;添加一个PNG文件&#xff0c;保存。 在代码编辑窗口复制粘贴以下代码,按F5运行后鼠标点击窗口即可显示资源文件中的PNG文件 Option Explicit Private Enum GpStatus Ok 0 GenericError 1 Invalid…

electron+vue+ts窗口间通信

文章目录 一. 目的二.逻辑分析三. 代码示例 "types/node": "^20.3.1","vitejs/plugin-vue": "^4.1.0","vueuse/electron": "^10.2.1","electron": "^25.2.0","electron-packager":…

DevOps在项目管理中的魔法:简化与深化

什么是DevOps&#xff1f; 定义与核心思想 DevOps, 这个名词&#xff0c;在技术领域中饱受瞩目。但它到底是什么&#xff1f;首先&#xff0c;DevOps并不仅仅是一个技术或者工具&#xff0c;它首先是一种文化&#xff0c;一种思想。DevOps是Development&#xff08;开发&#…

4,链表【p5】

链表 4.1哈希表简介4.2有序表简介4.3链表4.3.1例1-反转单向和双向链表4.3.2例2-打印两个有序链表的公共部分4.3.3面试时链表解题的方法论4.3.4例3-判断一个链表是否为回文结构4.3.4.1快慢指针 4.3.5例4-将单向链表按某值划分成左边小、中间相等、右边大的形式4.3.6例5-复制好友…

ORACLE和MYSQL区别

1&#xff0c;Oracle没有offet,limit&#xff0c;在mysql中我们用它们来控制显示的行数&#xff0c;最多的是分页了。oracle要分页的话&#xff0c;要换成rownum。 2&#xff0c;oracle建表时&#xff0c;没有auto_increment&#xff0c;所有要想让表的一个字段自增&#xff0c…

安装linux操作系统

安装虚拟机的步骤&#xff1a; 安装linux系统 之后开启虚拟机 之后重启&#xff0c;打开虚拟机&#xff0c;登录root账号

SpringIoc-个人学习笔记

Spring的Ioc、DI、AOP思想 Ioc Ioc思想&#xff1a;Inversion of Control&#xff0c;控制反转&#xff0c;在创建Bean的权利反转给第三方 DI DI思想&#xff1a;Dependency Injection&#xff0c;依赖注入&#xff0c;强调Bean之间的关系&#xff0c;这种关系由第三方负责去设…

如何安全变更亚马逊收款账户?

有太多的卖家想知道如何安全变更亚马逊收款账户&#xff0c;因为更改了第三方收款账户可能会导致二次视频认证或者增强视频。真的是这样吗&#xff1f; 其实不推荐亚马逊店铺正常运营之后去变更信用卡&#xff0c;收款账户等重要资料的&#xff0c;因为玩黑科技的卖家也真的多…

服务器流量

1.服务器流量分为入流量和出流量 入流量&#xff08;Inbound Traffic&#xff09;是指流向服务器的数据流量&#xff0c;也就是客户端发送到服务器的数据。这些数据可能包括请求信息、文件上传等。 出流量&#xff08;Outbound Traffic&#xff09;是指从服务器流向客户端的数…

【SCI一区】【电动车】基于ADMM双层凸优化的燃料电池混合动力汽车研究(Matlab代码实现)

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

《吐血整理》高级系列教程-吃透Fiddler抓包教程(30)-Fiddler如何抓Android7.0以上的Https包-番外篇

1.简介 通过宏哥前边几篇文章的讲解和介绍想必大家都知道android7.0以上&#xff0c;有android的机制不在信任用户证书&#xff0c;导致https协议无法抓包。除非把证书装在系统信任的证书里&#xff0c;此时手机需要root权限。但是大家都知道root手机是非常繁琐的且不安全&…

kubernetes基于helm部署gitlab-operator

kubernetes基于helm部署gitlab-operator 这篇博文介绍如何在 Kubernetes 中使用helm部署 GitLab-operator。 先决条件 已运行的 Kubernetes 集群负载均衡器&#xff0c;为ingress-nginx控制器提供EXTERNAL-IP&#xff0c;本示例使用metallb默认存储类&#xff0c;为gitlab p…

VGGNet剪枝实战:使用VGGNet训练、稀疏训练、剪枝、微调等,剪枝出只有3M的模型

摘要 本文讲解如何实现VGGNet的剪枝操作。剪枝的原理&#xff1a;在BN层网络中加入稀疏因子&#xff0c;训练使得BN层稀疏化&#xff0c;对稀疏训练的后的模型中所有BN层权重进行统计排序&#xff0c;获取指定保留BN层数量即取得排序后权重阈值thres。遍历模型中的BN层权重&am…