Skip to content

Latest commit

 

History

9 Commits

Folders and files

Repository files navigation

TinyWebIO实验版

说明

为App Inventor应用提供远程控制接口的掌控板工具包。

说明:

  1. TinyWebIO的需求为谢作如提出,roadlabs开发,老巫婆为之编写了DEMO,原地址为: https://gitee.com/roadlabs/TinyWebIO
  2. TinyWebIO的功能已经整合在掌控板的官方编程工具mPythonX中,mPythonX的下载地址为: https://www.mpython.cn/mPython/software

安装

可通过以下任一方法进行安装。

  1. 将项目中的tinywebio.py烧录到掌控板上
  2. 在掌控板REPL界面中,使用upip安装,步骤如下:
    • 导入upip模块,执行import upip
    • 安装tinywebio,执行upip.install('mpython-tinywebio')

启动

  1. 前提条件:掌控板已登录到本地WiFi网络或已启用AP模式
  2. 导入tinywebio模块,执行from tinywebio import appserver
  3. 启动服务,执行appserver.start()或appserver.start_foreground(),其中前者为以守护进程(Daemon)方式运行。默认服务端口为8888,如需改变端口运行,可以appserver.start(<端口号>)或appserver.start_foreground(<端口号>)方式执行。

参考代码

(建议文件名为main.py)

from mpython import *
from tinywebio import appserver, appclient

MYSSID = ''  # 请在''中输入你的WiFi热点名称
MYPWD = ''  # 请在''中输入你的WiFi热点密码

mywifi=wifi()
mywifi.connectWiFi(MYSSID, MYPWD)

oled.fill(0)
oled.DispChar('联网成功,IP为:',0,0)
oled.DispChar(str(mywifi.sta.ifconfig()[0]),0,16)
oled.show()

appserver.start()
# 可根据实际情况和自身需要修改以下设定,其中:
# 第一项参数为TinyWebDB服务器地址
# 第二项参数为向服务器发布的数据项(逗号分隔)
# 第三项参数为从服务器读取的数据项(逗号分隔)
# 第四项参数为存取服务器的时间间隔
appclient.setup('tinywebdb.17coding.net', 'light,sound,accelerometer,time', 'rgb0,rgb1,rgb2,display,buzz,music', 1000)
# 可利用本地服务接口手动启停
# appclient.start()

测试

安装完成并重启掌控板后,可利用网络浏览器访问掌控板的IP地址及端口号,测试相关功能。

接口

采用App Inventor网络数据库(TinyWebDB)组件的接口协议存取和控制掌控板系统资源,其中,tag表示要访问的资源名称,value表示与控制功能相关的参数,具体类别如下:

tag值 对应资源 功能 value值
buttona A键 读取状态 无
buttonb B键 读取状态 无
touchpadp 触摸按键P 读取数值 无
touchpady 触摸按键Y 读取数值 无
touchpadt 触摸按键T 读取数值 无
touchpadh 触摸按键H 读取数值 无
touchpado 触摸按键O 读取数值 无
touchpadn 触摸按键N 读取数值 无
light 光线传感器 读取数值 无
sound 麦克风 读取数值 无
accelerometer 加速度传感器 读取三轴数值 无
id 标识 读取掌控板标识 无
time 时间戳 读取事件戳 无
rgb<n> RGB LED灯珠 点亮由灯珠n,n取值为0,1,2 逗点分隔红绿蓝颜色亮度值,如255,0,0
display或oled OLED显示屏 显示文本或清空屏幕 显示文本为show:<文本>,<x>,<y>,清空屏幕为fill:1或fill:0,默认为在0,0处显示指定文本
buzz 蜂鸣器 播放声音或停止 播放为on或on:<频率值>,停止为off,默认为播放指定频率
music 音乐 播放乐谱或非音符音调 播放乐谱为内置或逗号分隔自编乐谱,音调为pitch:<频率>,<时长>
servo<n> 舵机 设置舵机脉冲宽度或角度 角度值
pind<n> 数字IO引脚 输入输出数据 输入不用设置数值,输出时需设置目标值
pina<n> 模拟IO引脚 输入输出数据 输入不同设置数值,输出时需设置目标值
client 远程访问 存取TinyWebDB服务器 开启为start,为stop

注:

  • 表中出现的<n>为相应资源编号,编写时需替换为具体数值,如0、1、2等,注意不要带入<和>符号
  • 如果以页面方式提交数据(GET或POST),需另外增加一个参数fmt,其值应为html

演示

demo目录中分别包括AppInventor、HTML页面、Postman和Python等演示或测试项目代码。注意,测试或执行应用时,应确保测试设备与掌控板处于同一WiFi网络中。

About

为App Inventor应用提供远程控制接口的掌控板工具包。

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages