(个人款)ESP8266(单核处理器) 无线WIFI + 蓝牙鼠标(支持一个) + 蓝牙键盘(支持一个)
(工作室款)ESP32(双核处理器) 有线以太网/无线WIFI + USB鼠标(支持三个) + USB键盘(支持三个)
原理讲解
问题一:系统13.5以上,但是点击位置不准确
答:部分iOS手机为圆边,初始化位置并非(0,0),需要在绝对坐标上进行重新偏移计算。
图片来自 iPhone 13 pro max
iPhone 13 pro max 鼠标相对移动参考示例
local py_x,py_y = 32,32
MouseMove({x = -3000,y = -3000}); --初始化(32,32)
MouseMove({x = 500 - py_x,y = 200 - py_y}); --减去圆边偏移坐标,实际到达 (500,200)
问题二:鼠标移动正常,但是手机点击无效
答:必须打开辅助触控功能(iOS悬浮窗)
问题三:连接鼠标后,鼠标操作出现偶尔失灵,点击无效
答:物联网后台取消订阅功能,可增加灵敏度
setMQTT({topic = {}}); --取消订阅可提高灵敏度
问题四:ESP32 串口日志不断重启,输出 Brownout detector was triggered
答:电脑USB口供电不足,导致ESP32无法正常启动,烧录线不连接5v,直接对ESP32 DC电源供电(接入以太网调试也对供电要求更高)。
问题五:ESP32 以太网模式串口日志不断重启,输出
system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE[0m [0;31mE (2748) emac: Timed out waiting for PHY register 0x2 to have value 0x0007(mask 0xffff). Current value 0x0000[0m [0;31mE (3748) emac: Timed out waiting for PHY register 0x3 to have value 0xc0f0(mask 0xfff0). Current value 0x0000[0m [0;31mE (3748) emac: Initialise PHY device Timeout[0m PANIC: unprotected error in call to Lua API (esp_eth_enable failed)
abort() was called at PC 0x4013481f on core 0
ELF file SHA256: 8aa875ffcf9d57f8
Backtrace: 0x400868cb:0x3ffbc9c0 0x40086be5:0x3ffbc9e0 0x4013481f:0x3ffbca00 0x40136bb7:0x3ffbca20 0x40130ee1:0x3ffbca40 0x4013803d:0x3ffbca60 0x40133f7b:0x3ffbca80 0x400d8a31:0x3ffbcad0 0x4013710f:0x3ffbcb30 0x4013586d:0x3ffbcb70 0x401371e6:0x3ffbcbc0 0x40137e99:0x3ffbcbe0 0x400d99f1:0x3ffbcc00 0x400f67ed:0x3ffbcc20 0x400f95a7:0x3ffbcc50 0x400d20cf:0x3ffbcc90
Rebooting...
答:拔出网线,再重新通电,等待以太网口黄灯亮起时,再接入网线,如果尚未解决,请切换到 WIFI 模式,再重复上面操作。(WIFI 模式切换以太网模式时,网线必须切换成功黄灯亮起才能插入,如果提前插入可能会导致该错误)
ESP32 物联网芯片:
setWIFI({WIFI = true}); --启动WIFI模式,关闭以太网模式
版本号:ESP8266 v1.0.5
【必看】OneNET 中国移动物联网平台后台管理设置 视频教程
版本号:ESP8266 v1.0.3
【必看】物联网鼠标电脑串口调试 视频教程
版本号:ESP8266 v1.0.3
iOS快捷指令Post控制 HTTPpost示例 视频教程
版本号:ESP8266 v1.0.3
网页端在线Post控制 HTTPpost示例 视频教程
版本号:ESP8266 v1.0.3
iOS13.3.1 鼠标点击不准确解决方案 视频教程
版本号:ESP32 v1.0.5
关闭日志功能(串口通讯修改为鼠标模式,可控制 0 号鼠标)关闭日志功能
版本号:ESP32 v1.0.5
iOS 物联网 ESP32 USB鼠标一对三 苹果手机使用教程 视频教程
版本号:ESP32 v1.0.55
Android 物联网 ESP32 一对三 安卓手机使用教程 视频教程
函数说明:从当前鼠标位置开始偏移像素点
玩法说明:一对一鼠标无需设置 io,一对二、一对三需要设置 io 进行信号输出切换
版本号:ESP8266 v1.0.3
ESP8266物联网鼠标电脑串口调试 视频教程
参数 | 类型 | 说明 |
---|---|---|
io | number | 鼠标 io 口(默认:1),ESP8266(1),ESP32(0/1/2)io说明 |
x | number | 水平相对移动 (负数 = 向左,正数 = 向右) |
y | number | 垂直相对移动 (负数 = 向上,正数 = 向下) |
z | number | 滚轮滚动 (负数 = 向上,正数 = 向下) 滚轮演示教程 |
Proportion_x | number |
版本号:ESP32 v1.0.55 x 坐标指针移动比例值(公式:X × 比例值 = 最终移动坐标) |
Proportion_y | number |
版本号:ESP32 v1.0.55 y 坐标指针移动比例值(公式:Y × 比例值 = 最终移动坐标) |
Proportion_z | number |
版本号:ESP32 v1.0.55 z 坐标指针移动比例值(公式:Z × 比例值 = 最终移动坐标) |
system | string |
版本号:ESP32 v1.0.55 USB鼠标系统协议切换 "iOS"、"Android"(默认:”iOS“) |
串口通讯
--ESP8266/ESP32 1号鼠标相对移动
MouseMove({x = -30,y = -30});
MouseMove({x = -30,y = -30, system = "Android"}); --安卓系统 相对移动
MouseMove({z = -30}); --滚轮向上滚动
--ESP32 0号鼠标相对移动
MouseMove({io = 0,x = -30,y = -30});
--ESP32 2号鼠标相对移动
MouseMove({io = 2,x = -30,y = -30});
--ESP8266 v1.0.57 / ESP32 v1.0.54 新增 滚轮功能
MouseMove({z = 20000}); --滚动屏幕
--ESP32 v1.0.55 新增比例值动态调参
--如设备默认x比例值2.083333,x比例改为 1,一般用于需要坐标精准点击,比例值不固定的手机系统,特别是安卓系统
MouseMove({x = -30,y = -30,Proportion_x = 1,Proportion_y = 1});
--
远程设置 HTTP post 请求 body
名称 | 说明 |
---|---|
API | 函数名称 |
data | 参数(io,x,y,z) |
data.io |
版本号:ESP32 v1.0.5 鼠标 io 口(默认:1),ESP8266(1),ESP32(0/1/2) |
Log | 串口显示日志 = true(默认),串口隐藏日志 = false(关闭可降低鼠标操作时干扰) 日志全局关闭 |
{
"API":"MouseMove",
"data":{
"x":-30,
"y":-30
}
}
{
"API":"MouseMove",
"data":{
"io":2,
"x":-30,
"y":-30
}
}
函数说明:一直按住不放,需要搭配 MouseUp 鼠标抬起
玩法说明:一对一鼠标无需设置 io,一对二、一对三需要设置 io 进行信号输出切换
参数 | 类型 | 说明 |
---|---|---|
io | number |
版本号:ESP32 v1.0.5 鼠标 io 口(默认:1),ESP8266(1),ESP32(0/1/2)io说明
|
click | string |
版本号:ESP32 v1.0.5 "左键"(默认)、"中键"(滚轮键)、"右键" |
system | string |
版本号:ESP32 v1.0.55 USB鼠标系统协议切换 "iOS"、"Android"(默认:”iOS“) |
串口通讯
--1号鼠标按住
MouseDown();
MouseDown({system = "Android"}); --安卓系统,只对USB鼠标生效,蓝牙鼠标无需设置
--0号鼠标按住
MouseDown({io = 0});
--2号鼠标按住
MouseDown({io = 2});
远程设置 HTTP post 请求 body
名称 | 说明 |
---|---|
API | 函数名称 |
data | 参数(io,click) |
data.io |
版本号:ESP32 v1.0.5 鼠标 io 口(默认:1),ESP8266(1),ESP32(0/1/2) |
Log | 串口显示日志 = true(默认),串口隐藏日志 = false(关闭可降低鼠标操作时干扰) 日志全局关闭 |
{
"API":"MouseDown"
}
{
"API":"MouseDown",
"data":{
"io":2
}
}
函数说明:抬起,需要搭配 MouseDown 鼠标按下
玩法说明:一对一鼠标无需设置 io,一对二、一对三需要设置 io 进行信号输出切换
参数 | 类型 | 说明 |
---|---|---|
io | number |
版本号:ESP32 v1.0.5 鼠标 io 口(默认:1),ESP8266(1),ESP32(0/1/2)io说明
|
system | string |
版本号:ESP32 v1.0.55 USB鼠标系统协议切换 "iOS"、"Android"(默认:”iOS“) |
串口通讯
--1号鼠标抬起
MouseUp();
MouseUp({system = "Android"}); --安卓系统,只对USB鼠标生效,蓝牙鼠标无需设置
--0号鼠标抬起
MouseUp({io = 0});
--2号鼠标抬起
MouseUp({io = 2});
远程设置 HTTP post 请求 body
名称 | 说明 |
---|---|
API | 函数名称 |
data | 参数(io) |
data.io |
版本号:ESP32 v1.0.5 鼠标 io 口(默认:1),ESP8266(1),ESP32(0/1/2) |
Log | 串口显示日志 = true(默认),串口隐藏日志 = false(关闭可降低鼠标操作时干扰) 日志全局关闭 |
{
"API":"MouseUp"
}
{
"API":"MouseUp",
"data":{
"io":2
}
}
函数说明:按下后开始计时,自动抬起
玩法说明:一对一鼠标无需设置 io,一对二、一对三需要设置 io 进行信号输出切换
参数 | 类型 | 说明 |
---|---|---|
io | number |
版本号:ESP32 v1.0.5 鼠标 io 口(默认:1),ESP8266(1),ESP32(0/1/2)io说明
|
sleep | number | 长按延时,时间结束自动调用 MouseUp 函数,单位:毫秒 (1000 = 1秒),默认:50 |
click | string |
版本号:ESP32 v1.0.5 "左键"(默认)、"中键"(滚轮键)、"右键" |
system | string |
版本号:ESP32 v1.0.55 USB鼠标系统协议切换 "iOS"、"Android"(默认:”iOS“) |
continuity | boolean |
版本号:ESP8266 v1.0.58 连点模式,开 = true,关 = false(默认) |
continuity_sleep | number |
版本号:ESP8266 v1.0.58 每次点击之间的间隔时间,单位:毫秒(1000 = 1秒),默认:50 |
count | number |
版本号:ESP8266 v1.0.58 连续点击次数,默认:2 |
串口通讯
--1号鼠标单击/鼠标长按
MouseClick({sleep = 5000});--默认iOS系统 左键长按5秒
MouseClick({sleep = 5000, click = "右键"});--默认iOS系统 右键长按5秒
MouseClick({sleep = 5000, system = "Android"});--安卓系统 长按5秒
MouseClick({io = 1, continuity = true, count = 50});--连续点击50次
--0号鼠标单击/鼠标长按
MouseClick({io = 0, sleep = 5000});--5秒
--2号鼠标单击/鼠标长按
MouseClick({io = 2, sleep = 5000});--5秒
远程设置 HTTP post 请求 body
名称 | 说明 |
---|---|
API | 函数名称 |
data | 参数(io, sleep, click) |
data.io |
版本号:ESP32 v1.0.5 鼠标 io 口(默认:1),ESP8266(1),ESP32(0/1/2) |
Log | 串口显示日志 = true(默认),串口隐藏日志 = false(关闭可降低鼠标操作时干扰) 日志全局关闭 |
{
"API":"MouseClick",
"data":{
"sleep":5000
},
"Log":false
}
{
"API":"MouseClick",
"data":{
"io":2,
"sleep":5000
},
"Log":false
}
函数说明:x,y 起点坐标,x1,y1 终点坐标
玩法说明:一对一鼠标无需设置 io,一对二、一对三需要设置 io 进行信号输出切换
参数 | 类型 | 说明 |
---|---|---|
io | number |
版本号:ESP32 v1.0.5 鼠标 io 口(默认:1),ESP8266(1),ESP32(0/1/2)io说明
|
x | number | 起点x |
y | number | 起点y |
x1 | number | 终点x |
y1 | number | 终点y |
click | string |
版本号:ESP32 v1.0.5 "左键"(默认)、"中键"(滚轮键)、"右键" |
INIT_X | number | 初始化x位置(默认:-3000) |
INIT_Y | number | 初始化y位置(默认:-3000) |
MouseMove_sleep | number | 相对移动前延时(默认:200,单位:毫秒 (1000 = 1秒)) |
MouseDown_sleep | number | 鼠标按下前延时(默认:50,单位:毫秒 (1000 = 1秒)) |
MouseSlide_sleep | number | 滑动前延时(默认:50,单位:毫秒 (1000 = 1秒)) |
MouseUp_sleep | number | 鼠标抬起前延长(默认:100,单位:毫秒 (1000 = 1秒)) |
Proportion_x | number |
版本号:ESP32 v1.0.55 x 坐标指针移动比例值(公式:X × 比例值 = 最终移动坐标) |
Proportion_y | number |
版本号:ESP32 v1.0.55 y 坐标指针移动比例值(公式:Y × 比例值 = 最终移动坐标) |
Proportion_z | number |
版本号:ESP32 v1.0.55 z 坐标指针移动比例值(公式:Z × 比例值 = 最终移动坐标) |
system | string |
版本号:ESP32 v1.0.55 USB鼠标系统协议切换 "iOS"、"Android"(默认:”iOS“) |
函数原型(仅供参考):
--仅供参考,请勿直接复制使用
function MouseSlide(t)
local io = t.io or 1 --默认1号鼠标
local MouseMove_sleep = t.MouseMove_sleep or 200 --初始化前延时
local MouseDown_sleep = t.MouseDown_sleep or 50 --初始化后延时
local MouseSlide_sleep = t.MouseSlide_sleep or 50 --到达指定位置后延时
local MouseUp_sleep = t.MouseUp_sleep or 100
MouseMove({io = io, x = t.INIT_X or -3000,y = t.INIT_Y or -3000}); --初始化到屏幕左上角
sleep(MouseMove_sleep) --延时
MouseMove({io = io, x = t.x,y = t.y}); --相对移动 100,100
sleep(MouseDown_sleep) --延时
MouseDown({io = io, click = "左键" }); --按下
sleep(MouseSlide_sleep) --延时
--这里根据距离,可拆分多个MouseMove进行滑动,一次性滑动距离过大会导致滑动距离不精确。
MouseMove({io = io, x = t.x1 - t.x,y = t.y1 - t.y}); --相对移动 200-100, 200-100
sleep(MouseUp_sleep) --延时
MouseUp({io = io}); --松手
end
MouseSlide({x = 100, y = 100, x1 = 200, y1 = 200}) --调用函数
串口通讯
--1号鼠标滑动
MouseSlide({x = 365, y = 867, x1 = 370, y1 = 266}); --默认 iOS系统 滑动
MouseSlide({x = 365, y = 867, x1 = 370, y1 = 266, system = "Android"}); --安卓系统滑动
--0号鼠标滑动
MouseSlide({io = 0, x = 365, y = 867, x1 = 370, y1 = 266}); --滑动
--2号鼠标滑动
MouseSlide({io = 2, x = 365, y = 867, x1 = 370, y1 = 266}); --滑动
远程设置 HTTP post 请求 body
名称 | 说明 |
---|---|
API | 函数名称 |
data | 参数(io,x,y,x1,y1,click) |
data.io |
版本号:ESP32 v1.0.5 鼠标 io 口(默认:1),ESP8266(1),ESP32(0/1/2) |
Log | 串口显示日志 = true(默认),串口隐藏日志 = false(关闭可降低鼠标操作时干扰) 日志全局关闭 |
{
"API":"MouseSlide",
"data":{
"x":365,
"y":867,
"x1":370,
"y1":266
},
"Log":false
}
{
"API":"MouseSlide",
"data":{
"io":2,
"x":365,
"y":867,
"x1":370,
"y1":266
},
"Log":false
}
函数说明:初始化鼠标位置到左上角后开始偏移像素点
玩法说明:一对一鼠标无需设置 io,一对二、一对三需要设置 io 进行信号输出切换
参数 | 类型 | 说明 |
---|---|---|
io | number |
版本号:ESP32 v1.0.5 鼠标 io 口(默认:1),ESP8266(1),ESP32(0/1/2)io说明
|
x | number | 水平绝对移动 |
y | number | 垂直绝对移动 |
click | string |
版本号:ESP32 v1.0.5 "左键"(默认)、"中键"(滚轮键)、"右键" |
INIT_X | number | 初始化x位置(默认:-3000) |
INIT_Y | number | 初始化y位置(默认:-3000) |
sleep | number | 相对移动前延时,等待指针初始化完毕后移动(默认:500,单位:毫秒 (1000 = 1秒)) |
Proportion_x | number |
版本号:ESP32 v1.0.55 x 坐标指针移动比例值(公式:X × 比例值 = 最终移动坐标) |
Proportion_y | number |
版本号:ESP32 v1.0.55 y 坐标指针移动比例值(公式:Y × 比例值 = 最终移动坐标) |
Proportion_z | number |
版本号:ESP32 v1.0.55 z 坐标指针移动比例值(公式:Z × 比例值 = 最终移动坐标) |
system | string |
版本号:ESP32 v1.0.55 USB鼠标系统协议切换 "iOS"、"Android"(默认:”iOS“) |
函数原型(仅供参考):
function touchMove(t)
local io = t.io or 1 --默认1号鼠标
local s = t.sleep or 500 --相对移动前延时
MouseMove({io = io, x = t.INIT_X or -3000, y = t.INIT_Y or -3000}); --默认初始化到屏幕左上角
sleep(s) --延时
--必须等待指针初始化完毕才可以操作,否则可能会移动不准确
MouseMove({io = io,x = t.x, y = t.y}); --相对移动
end
串口通讯
--1号鼠标移动
touchMove({x = 639, y = 1245});
touchMove({x = 639, y = 1245, system = "Android"}); --安卓系统 移动
touchMove({x = -100, y = -100, INIT_X = 3000, INIT_Y = 3000}); --改变初始化位置到右下角,向左上角相对移动100,100
--0号鼠标移动
touchMove({io = 0, x = 639, y = 1245});
--2号鼠标移动
touchMove({io = 2, x = 639, y = 1245});
远程设置 HTTP post 请求 body
名称 | 说明 |
---|---|
API | 函数名称 |
data | 参数(x,y,click) |
io |
版本号:ESP32 v1.0.5 鼠标 io 口(默认:1),ESP8266(1),ESP32(0/1/2) |
Log | 串口显示日志 = true(默认),串口隐藏日志 = false(关闭可降低鼠标操作时干扰) 日志全局关闭 |
{
"API":"touchMove",
"data":{
"x":100,
"y":100
}
}
{
"API":"touchMove",
"data":{
"io":2,
"x":100,
"y":100
}
}
函数说明:模拟键盘输入,最多支持同时按下 6 个键
玩法说明:一对一鼠标无需设置 io,一对二、一对三需要设置 io 进行信号输出切换
参数 | 类型 | 参数1 |
---|---|---|
io | number |
版本号:ESP32 v1.0.5 鼠标 io 口(默认:1),ESP8266(1),ESP32(0/1/2)io说明
|
Keyboard1 | string | 键盘值(最多6个) |
Keyboard2 | string | 键盘值(最多6个) |
Keyboard3 | string | 键盘值(最多6个) |
Keyboard4 | string | 键盘值(最多6个) |
Keyboard5 | string | 键盘值(最多6个) |
Keyboard6 | string | 键盘值(最多6个) |
串口通讯
--1号鼠标输出(默认:1)
KeyboardClick({"k"}); --输入小写k
KeyboardClick({"K"}); --输入大写k
KeyboardClick({"Shift","k"}); --输入大写k
KeyboardClick({"Space"}); --输入空格键
KeyboardClick({"\\"}); --反斜杠 \
KeyboardClick({"\'"}); --单引号 '
KeyboardClick({"?"}); --问号
KeyboardClick({"Win","c"}); --Mac、iOS 复制
KeyboardClick({"Win","v"}); --Mac、iOS 粘贴
KeyboardClick({"Ctrl","c"}); --Windows 复制
KeyboardClick({"Ctrl","v"}); --Windows 粘贴
--0号鼠标输出
KeyboardClick({io = 0,"k"}); --输入小写k
KeyboardClick({io = 0,"K"}); --输入大写k
KeyboardClick({io = 0,"Shift","k"}); --输入大写k
KeyboardClick({io = 0,"Space"}); --输入空格键
KeyboardClick({io = 0,"\\"}); --反斜杠 \
--2号鼠标输出
KeyboardClick({io = 2,"\'"}); --单引号 '
KeyboardClick({io = 2,"?"}); --问号
KeyboardClick({io = 2,"Win","c"}); --Mac、iOS 复制
KeyboardClick({io = 2,"Win","v"}); --Mac、iOS 粘贴
KeyboardClick({io = 2,"Ctrl","c"}); --Windows 复制
KeyboardClick({io = 2,"Ctrl","v"}); --Windows 粘贴
远程设置 HTTP post 请求 body
名称 | 说明 |
---|---|
API | 函数名称 |
data | 参数(Keyboard1,Keyboard2,Keyboard3,Keyboard4,Keyboard5,Keyboard6) |
io |
版本号:ESP32 v1.0.5 鼠标 io 口(默认:1),ESP8266(1),ESP32(0/1/2) |
Log | 串口显示日志 = true(默认),串口隐藏日志 = false(关闭可降低鼠标操作时干扰) 日志全局关闭 |
{
"API":"KeyboardClick",
"data":[
"a","b","c","d","e"
],
"Log":false
}
{
"API":"KeyboardClick",
"data":[
"Shift","k"
],
"Log":false
"io":2
}
键盘值
说明:部分键盘按键对手机可能失效,只对电脑有效,自行测试
参数 | 说明 |
---|---|
a - z | 小写字母(26个) |
A - Z | 大写字母(26个) |
F1 - F12 | 12个 |
0 - 9 | 数字键(10个) |
Enter | 回车 |
Esc | 取消(iOS解锁键) |
Backspace | 回退 |
Tab | 制表符 |
Space | 空格 |
CapsLock | 大小写 |
PrintScreenSysrq | 截图键 |
ScrollLock | 滚动锁定键 |
PauseBreak | 中断暂停键 |
Insert | 插入键 |
Home | 返回主界面 |
PageUp | 向上翻页键 |
PageDown | 向下翻页键 |
RightArrow | → 右方向键 |
LeftArrow | ← 左向键 |
DownArrow | ↓ 下方向键 |
UpArrow | ↑ 上方向键 |
Delete | 删除键 |
End | 光标定位键 |
Numlock | 数字键盘开关键 |
Application | 右侧跟win挨着的键 |
Ctrl | |
Shift | |
Alt | |
Win | |
+、-、*、/、=、!、@.... | 其他符号 |
函数说明:使用该函数后会自动重启设备
玩法说明:
参数 | 类型 | 说明 |
---|---|---|
version | string | 版本号 WIFI |
ssid | string | 账号(不要使用中文) |
pwd | string | 密码(不要使用中文) |
save | boolean | 保存账号密码到闪存(启动时自动连接速度快) |
WIFI | boolean |
版本号:ESP32 v1.0.5 启动或关闭WIFI(启动以太网模式) |
HTTPServer | boolean |
版本号:ESP32 v1.0.5 启动或关闭局域网服务(无法局域网内控制鼠标) |
HTTPPost | boolean |
版本号:ESP32 v1.0.5 局域网监听端口(默认:80) |
MQTTServer | boolean |
版本号:ESP32 v1.0.5 启动或关闭物联网服务(无法物联网远程控制鼠标) |
串口通讯 :
ESP8266 物联网芯片:
--ESP8266芯片 WIFI
setWIFI({ssid = "Zhanghao",pwd = "Mima"});
ESP32 物联网芯片:
--ESP32芯片 以太网/WIFI 双模式
setWIFI({ssid = "Zhanghao",pwd = "Mima",WIFI = true}); --账号密码不允许中文,启动WIFI模式
setWIFI({WIFI = false}); --关闭WIFI模式,启动以太网模式
setWIFI({HTTPServer = false}); --关闭局域网服务
setWIFI({MQTTServer = false}); --关闭物联网服务
远程设置 HTTP post 请求 body:
名称 | 说明 |
---|---|
API | 函数名称 |
data | 参数 |
{
"API":"setWIFI",
"data":{
"ssid":"Zhanghao",
"pwd":"Mima",
"WIFI":true
}
}
函数说明:修改MQTT配置,使用该函数后会自动重启设备
玩法说明:对接中国移动物联网平台(OneNET),实现后台管理,远程设置设备参数。
注册方法:OneNET 中国移动物联网平台后台管理设置 视频教程
设备支持远程的函数:HTTPPost
参数 | 类型 | 说明 |
---|---|---|
version | string | 版本号 MQTT |
MQTT_Host | string | MQTT地址 |
MQTT_Port | number | MQTT端口 |
topic | table |
版本号:ESP32 v1.0.5 订阅主题 |
register_code | string | 设备注册码 |
Master_Apikey | string | 产品api-key |
Master_ID | string | 产品ID |
串口通讯
--设置物联网后台,一键注册
setMQTT({register_code = "设备注册码",Master_Apikey = "产品api-key",Master_ID = "产品ID"});
setMQTT({topic = {}}); --取消订阅可提高鼠标灵敏度,测试有效
函数说明:初始机无需设置,默认5年(支持商业定制,提供自定义生成激活时间方法),一机一码激活设备,使用该函数后会自动重启设备
玩法说明:可定制生成自定义时间激活码,发送给客户使用,捆绑脚本编程
参数 | 类型 | 说明 |
---|---|---|
version | string | 版本号 |
type | string | 鼠标类型 |
BaudRate | number | 波特率 |
Proportion | table | 1号鼠标移动值比例 x(水平移动)、y(垂直移动)、z(滚轮转动) |
Proportion_0 | table | 0号鼠标移动值比例 x(水平移动)、y(垂直移动)、z(滚轮转动) |
Proportion_2 | table | 2号鼠标移动值比例 x(水平移动)、y(垂直移动)、z(滚轮转动) |
KEY | string | 设备激活码 |
TimeExpired | string | 设备有效日期 |
Log | boolean | 全局日志模式 开启 = true/关闭 = false |
串口通讯 Time Expired 参数说明:
参数 | 说明 |
---|---|
Time Expired 20230210163500 | 有效期截止时间 2023年2月10日16:35 |
Time Expired error! | 激活码验证失败 |
串口通讯
--支持商业定制,提供自定义生成激活时间方法
setKEY({KEY = "fb197ea7dd4fd32703b15f5dbf75dbc2"}); -- 一机一码
远程设置 HTTP post 请求 body
名称 | 说明 |
---|---|
API | 函数名称 |
data | 参数 |
{
"API":"setKEY",
"data":{
"KEY":"fb197ea7dd4fd32703b15f5dbf75dbc2"
}
}
激活许可函数:
函数说明:安卓手机、iOS13.5以下的手机点击、移动坐标出现不准确,鼠标无法使用等情况需要重新设置参数,使用该函数后会自动重启设备
玩法说明:
参数 | 类型 | 说明 |
---|---|---|
version | string | 版本号 |
type | string | 鼠标类型 |
system | string | 根据手机系统类型切换USB鼠标协议:iOS/Android("默认iOS"),蓝牙款不需要设置 |
BaudRate | number | 波特率 |
Proportion | table | 1号鼠标移动值比例 x(水平移动)、y(垂直移动)、z(滚轮转动) |
Proportion_0 | table | 0号鼠标移动值比例 x(水平移动)、y(垂直移动)、z(滚轮转动) |
Proportion_2 | table | 2号鼠标移动值比例 x(水平移动)、y(垂直移动)、z(滚轮转动) |
KEY | string | 设备激活码 |
TimeExpired | string | 设备有效日期 |
Log | boolean | 全局日志模式 开启 = true/关闭 = false |
串口通讯
--苹果系统 iOS13.5 - IOS15 1号鼠标默认比例值
setUART({ Proportion = { x = 2.0833333, y = 2.0833333, z = 1}});
--0号鼠标默认比例值
setUART({ Proportion_0 = { x = 1, y = 1, z = 1}});
--USB鼠标模式(波特率9600)
setUART({ type = "USB", BaudRate = 9600});
--蓝牙鼠标模式(波特率115200)
setUART({ type = "Bluetooth", BaudRate = 115200});
--全局关闭日志可扩展 0 号鼠标引脚控制
setUART({ Log = false });
--切换USB鼠标协议为Android系统,蓝牙鼠标无需设置该功能
setUART({ system = "Android" });
关于 IOS 13.5 以下设置,仅供参考(以实际为准)
版本号:ESP8266 v1.0.3
iOS13.3.1 鼠标点击不准确解决方案 视频教程
setUART({Proportion={x=4.4860381591079,y=7.979166539}});
--usb横屏6s IOS13.2 13.3
setUART({Proportion={x=7.979166539,y=4.4860381591079}});
--usb竖屏6s IOS13.2 13.3
setUART({Proportion={x=3.6298256540667,y=6.4562498967}});
--蓝牙横屏6s IOS13.2 13.3
setUART({Proportion={x=6.4562498967,y=3.6298256540667}});
--蓝牙竖屏6s IOS13.2 13.3
远程设置 HTTP post 请求 body
名称 | 说明 |
---|---|
API | 函数名称 |
data | 参数 |
{
"API":"setUART",
"data":{
"Proportion": {
"x": 2.0833333,
"y": 2.0833333,
"z": 1
}
}
}
远程关闭日志
{
"API":"setUART",
"data":{
"Log": false
}
}
函数说明:以太网模式只支持100M网口,如果使用1000M网口,会导致ESP32重启,芯片发热,以太网模式一旦运行失败会自动切换为WIFI模式,WIFI模式下如果账号密码出错,则设备无法正常联网。
参数 | 类型 | 说明 |
---|---|---|
version | string | 版本号 WIFI |
ssid | string | 账号 |
pwd | string | 密码 |
save | boolean | 保存账号密码到闪存(启动时自动连接速度快) |
WIFI | boolean | 启动或关闭WIFI(启动以太网模式) |
HTTPServer | boolean | 启动或关闭局域网服务(无法局域网内控制鼠标) |
HTTPPost | boolean | 局域网监听端口(默认:80) |
MQTTServer | boolean | 启动或关闭物联网服务(无法物联网远程控制鼠标) |
串口通讯
--打印WIFI配置
ptable(getWIFI());
参数 | 类型 | 说明 |
---|---|---|
device_id | string | 设备MQTT服务器ID |
key | string | 设备MQTT服务器api-key |
串口通讯
--打印物联网平台服务器设备信息
ptable(getMQTTcode());
参数 | 类型 | 说明 |
---|---|---|
version | string | 版本号 MQTT |
MQTT_Host | string | MQTT地址 |
MQTT_Port | number | MQTT端口 |
topic | table |
版本号:ESP32 v1.0.5 订阅主题 |
register_code | string | 设备注册码 |
Master_Apikey | string | 产品api-key |
Master_ID | string | 产品ID |
串口通讯
--打印MQTT配置信息
ptable(getMQTT());
函数说明:全局日志占用一个鼠标接口(引脚名称:TX),关闭全局日志输出可接入0号鼠标模块)
参数 | 类型 | 说明 |
---|---|---|
version | string | 版本号 |
type | string | 鼠标类型 |
BaudRate | number | 波特率 |
Proportion | table | 1号鼠标移动值比例 x(水平移动)、y(垂直移动)、z(滚轮转动) |
Proportion_0 | table | 0号鼠标移动值比例 x(水平移动)、y(垂直移动)、z(滚轮转动) |
Proportion_2 | table | 2号鼠标移动值比例 x(水平移动)、y(垂直移动)、z(滚轮转动) |
KEY | string | 设备激活码 |
TimeExpired | string | 设备有效日期 |
Log | boolean | 全局日志模式 开启 = true/关闭 = false |
串口通讯
--打印鼠标配置信息
ptable(getUART());
参数 | 类型 | 说明 |
---|---|---|
Log | boolean | 全局日志模式 开启 = true/关闭 = false |
HTTPPost | number | 局域网端口(默认:80) |
KEY | string | 设备激活码 |
_VERSION | string | 版本号 |
GATEWAY | string | 局域网网关 |
NETMASK | string | 局域网子网掩码 |
MAC | string | ESP芯片MAC地址 |
_TYPE | string | ESP芯片类型 |
ID | string | ESP芯片ID |
IP | string | 局域网IP地址 |
串口通讯
--打印ESP芯片配置信息
ptable(getESP());
设置 → 通用 → 触摸板与鼠标 → 跟踪速度(乌龟 - 最低比例 = 2.0833333)
设置 → 辅助功能 → 触控 → 辅助触控 → 跟踪速度
备注:测试机型 小米8
设置 → 更多设置 → 语言与输入法 → 键盘、鼠标和触控板 → 指针速度(最低)
USB鼠标指针速度最低比例参考:
{1.坐标值,2.比例值}
Android_USB_BILI = {
{0, 2},{50, 2},
{100, 2},{150, 1.66666},
{200, 1.66666},{250, 1.42857},
{300, 1.42857},{350, 1.25},
{400, 1.25},{450, 1.25},
{500, 1.25},{550, 1.25},
{600, 1.25},{650, 1.23456},
{700, 1.23456},{750, 1.21951},
{800, 1.21951},{850, 1.20481},
{900, 1.20481},{950, 1.19047},
{1000, 1.19047},{1050, 1.17647},
{1100, 1.17647},{1150, 1.16279},
{1200, 1.16279},{1250, 1.19047},
{1300, 1.19047},{1350, 1.18343},
{1400, 1.18343},{1450, 1.17647},
{1500, 1.17647},{1550, 1.13314},
{1600, 1.13314},{1650, 1.17302},
{1700, 1.17302},{1750, 1.17302},
{1800, 1.17302},{1850, 1.17302},
{1900, 1.17302},{1950, 1.17302},
{2000, 1.17302},{2050, 1.17302},
{2100, 1.17302},{2150, 1.17302},
{2200, 1.17302},{2250, 1.17302},
{2300, 1.17302},{2350, 1.17302},
{2400, 1.17302},{2450, 1.17302},
{2500, 1.17302},{2550, 1.17302},
{2600, 1.17302},{2650, 1.17302}
}
支持远程发送的命令API
API | API 说明 | data 类型 | data 参数 | Log 参数 |
---|---|---|---|---|
MouseMove | 相对移动 | 词典 | x,y | 默认:true |
MouseClick | 单击/长按 | 词典 | sleep | 默认:true |
MouseSlide | 绝对滑动 | 词典 | x,y,x1,y1 | 默认:true |
touchMove | 绝对移动 | 词典 | x,y | 默认:true |
KeyboardClick | 键盘输入 | 数组 | 1、2、3、4.. | 默认:true |
MouseDown | 按下 | 默认:true | ||
MouseUp | 抬起 | 默认:true | ||
setWIFI | 设置 WIFI(注意:会重启设备) | 词典 | ssid,pwd | 默认:true |
setKEY | 设置 激活码(注意:会重启设备) | 词典 | KEY | 默认:true |
setUART | 设置 鼠标(注意:会重启设备) | 词典 | Proportion | 默认:true |
版本号v1.0.5 输出日志 | string | "hello" | 默认:true | |
ptable | 版本号v1.0.5 输出日志(表) | 词典/数组 | [ "hello" , "hello2"] | 默认:true |
名称 | 说明 |
---|---|
url | 设备局域网IP地址 |
API | API 函数名称 |
data | 函数参数表 |
Log | 版本号v1.0.5 接收数据并打印到串口,输出日志会影响效率,true = 输出,false = 关闭输出(提高效率) |
鱼叉助手(iOS免越狱) Post示例
--iOS 免越狱用例
local http = require("socket.http")--需要下载socket 扩展库
local request_body = '{"API":"KeyboardClick","data":["l"]}' --键盘输入 l
local response_body = {}
local res, code, response_headers =
http.request {
url = "https://192.168.1.186", --局域网地址
method = "POST",
headers = {
["Content-Length"] = #request_body,
},
source = ltn12.source.string(request_body),
sink = ltn12.sink.table(response_body)
}
官网API文档 OneNET - 中国移动物联网开放平台 (10086.cn)
参数返回码文档:OneNET - 中国移动物联网开放平台 (10086.cn)
每个服务实例每月前2000万条消息免费使用。收费标准
名称 | 说明 |
---|---|
url | 中国移动物联网平台(http://api.heclouds.com/cmds) |
device_id | 设备MQTT服务器ID(必填) |
api-key | 设备MQTT服务器api-key(必填) |
API | API 函数名称 |
data | 函数参数表 |
Log | 版本号v1.0.5 接收数据并打印到串口,输出日志会影响效率,true = 输出,false = 关闭输出(提高效率) |
网页端示例
URL:
http://api.heclouds.com/cmds?device_id=887030162
Header:
api-key: Roc3=Uqy3V0oBhA0j5DyztuuAsA=
Content-Type: application/json
发送参数例子:(设备端接收成功不打印,提升效率)
{
"API":"MouseMove",
"data":{
"x":100,
"y":100
},
"Log":false
}
发送参数例子:(设备端接收成功打印日志)
{
"API":"KeyboardClick",
"data":["a","b","c"]
}
发送参数例子:(设备端接收成功不打印日志,调用打印函数打印日志)
{
"API":"print",
"data":"hello",
"Log":false
}
设备在线接收成功返回码 erron = 0,离线返回 erron = 10
鱼叉助手(iOS免越狱)Post示例
--iOS 免越狱用例
local http = require("socket.http")--需要下载socket 扩展库
local request_body = '{"API":"KeyboardClick","data":["l"]}' --键盘输入 l
local response_body = {}
mSleep(10000) --10秒后
for i = 1,10 do --发送10次命令
local res, code, response_headers =
http.request {
url = "http://api.heclouds.com/cmds?device_id=123456782", --设备服务器ID
method = "POST",
headers = {
["Content-Type"] = "application/json",
["Content-Length"] = #request_body,
["api-key"] = "Q=hxaabvcdfghSb4HvZM7fNX8=", --设备服务器api-key
},
source = ltn12.source.string(request_body),
sink = ltn12.sink.table(response_body)
}
end
触动精灵(越狱)Post示例
--iOS 函数用例
local ts = require("ts")
for var = 1, 10 do
-- body
header_send = {
typeget = "ios",
["api-key"] = "b=nfZAE3f3vHy=17QsveGLggcuw=" --设备api-key
}
body_send = '{"API":"MouseMove","data":{"x":-10,"y":0}}' --鼠标向左相对移动
ts.setHttpsTimeOut(60)
status_resp, header_resp, body_resp =
ts.httpPost("http://api.heclouds.com/cmds?device_id=894617519", --设备服务器ID
header_send,
body_send,
true
)
nLog(status_resp, 0)
nLog(header_resp, 0)
nLog(body_resp, 0)
end
crypto
encoder
file
gpio
http
mqtt
node
sjson
tmr
uart
wifi
)system
手机系统设置参数,可设置iOS/Android,默认iOS (UART v1.0.5)(同步 ESP8266 v1.0.57)
(同步 ESP8266 v1.0.56)
crypto
encoder
eth
file
gpio
http
mqtt
net
node
sjson
time
tmr
uart
wifi
)此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。