千里马内测报告2:当千里马遇上blynk——御马于千里之外

余国罡
帖子创建于2019年12月29日 基础使用 635 次浏览 3 个赞

Blynk是一款著名的物联网应用,安卓,苹果都可安装使用,可谓是神器。

千里马,一款小巧可爱的车子。玩开源硬件,谁还没几辆小车,这些年,盘点一下自己玩过的车子。从mbot小车开始,到好搭的nova小车,向金老师的microbit小车,DF的各种小车,古德微的树莓派小车,都玩了个遍。

但想要实现遥控,要么是红外,要么是蓝牙。

真正能wifi联网,拿来遥控着玩的,好像还真没有。直到千里马出现在我面前。掌控板可以连wifi,mpython支持Blynk,所有条件都将具备了。那就开工吧。

一、Blynk环境准备

1.blynk支持安卓和苹果系统,所以在各大手机应用商店搜索blynk即可,ipad可以哦。

2.注册账号:

打开APP后,点击 creat new account,开始注册账号。


3.在此,我们要将服务器修改为mpython的服务器。

地址为blynk.mpython.cn 端口号为9443

以上是我瞎猜的,猜的还挺准,亲测有效。


ps:之所以不适用blynk官方服务器,还有一点原因就是官方服务器有点数限制,你没几个项目好做。

4.输入邮箱、密码之后,注册就完成了。


二、小试牛刀。

先来一个点灯的项目吧。即使用blynk点亮和关闭掌控的板载led即可。

先说说blynk的设置:

1.点击 + new project新建项目

输入项目名称:点灯板载灯,选择主板为esp 32 dev board,没错,掌控板载了esp32。连接方式选择为WIFI。

如下图所示:


其余选项不用管,点击create创建新项目。

2.添加按钮。

点击右上角的加号键,会看到部件框内有许多可以选择的内容,以后我们在慢慢研究。先选择第一个button。


此时是这样一个界面。


我们已经成功添加了一个按钮。

3.轻触这个按钮,对它进行设置。


内容如下:

修改按钮名字为:开灯。

修改output端口为V0

修改模式为switch。

4.用同样方式,再添加一个关灯按钮。


设置好以后,返回到主界面。

5.此时,我们可以长按按钮,拖动以改变按钮布局。


6.点击上图中 看起来像螺帽的 六边形按钮,进入项目设置页面。

在此环节,我们需要做的是获取项目的auth tokens。点击copy all即可复制到内存中,通过微信发送到电脑上,以备后用。


7.接下来,就是mpython中的程序设置了。

先是添加blynk扩展。


接下图形化来一波。

直接上图:


自己看图吧,不解释了。

上传程序后,如果能在右下角看到blynk的图标,并且提示blynk connected,恭喜你,成功了。


现在,你就可以用手机来开关灯了。

三、迁移一下,用按钮来控制小车的前进、后退、和移动。

blynk这边,只需要再增加一个停止按钮。


而mpython这边,用我上篇文章介绍的方法,将开灯命令换成前进,后退命令即可。

具体代码如下:

祝你玩的开心。

from mpython import *
import network
import blynklib
import time
from horse import *
car = Car()


_value = None

my_wifi = wifi()

my_wifi.connectWiFi('fish1', 'tongxin8758')

blynk = blynklib.Blynk('3af837bcc07d4d95bcd5b0ff46203bac', 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 V0')
def write_virtual_pin_handler(pin, _value):
for i in range(0, len(_value)):
try: _value[i] = eval(_value[i])
except: pass
if len(_value) == 1: _value = _value[0]
car.forward()
time.sleep_ms(1)

@blynk.handle_event('write V1')
def write_virtual_pin_handler(pin, _value):
for i in range(0, len(_value)):
try: _value[i] = eval(_value[i])
except: pass
if len(_value) == 1: _value = _value[0]
car.backward()
time.sleep_ms(1)

@blynk.handle_event('write V2')
def write_virtual_pin_handler(pin, _value):
for i in range(0, len(_value)):
try: _value[i] = eval(_value[i])
except: pass
if len(_value) == 1: _value = _value[0]
car.stop()
time.sleep_ms(1)


while True:
blynk.run()


2 条评论

小齿轮 汝州一中朱现伟

2019年12月30日

小马驯来真听话。

童磊

2020年02月03日

这个APP看起来很方便啊