【教程】手机远程连接另一台手机的termux进行拍照
主要通过MQTT实现通信。图片的上传和显示使用了服务器。
对于没有服务器的同学,可以进入官网领取免费1个月的轻量云服务器:云产品免费试用;需要选购的进:轻量应用服务器专场;不清楚怎么操作的可以看教程:腾讯云产品免费试用教程
实现效果:
当然这只是一个示例,只要能实现手机间的通信,那就可以借助termux-api实现非常多的功能!
被控端手机(termux)
termux安装mqtt等库:
pip install paho-mqtt, requests, imagemagick
在termux中的Python代码为:
# coding:utf-8
import paho.mqtt.client as pahomqtt
import os
import base64
import requests
import timeclass MQTT:def __init__(self):self.CLIENTID = 'redmi8'self.MQTTHOST = "test.mosquitto.org"self.MQTTPORT = 1883self.USERNAME = 'lh'self.PASSWORD = "hualala"self.HEARTBEAT = 60self.topic_subscribe = r'/mqtt/redmi8'self.topic_publish = r'/mqtt/redmi8/send/msg'self.topic_publish_image = r'/mqtt/redmi8/send/image'self.client = pahomqtt.Client()self.CloudAllowRun = 1# MQTT连接回调def on_connect(self, client, userdata, flags, rc):if rc == 0:print("Connected")client.subscribe(self.topic_subscribe)# MQTT接收回调def on_message(self, client, userdata, message):result = 'ok'msg = str(message.payload.decode("utf-8"))print("Received message: " + msg)if msg.startswith('cmd:img'):_, cmd, path = msg.split(' ')print('path:', path)if cmd == 'upload':img = self.upload_image(path)if img:self.client.publish(self.topic_publish_image, img)result = 'upload ok'else:result = 'upload fail'elif cmd == 'remove':self.remove_image(path)result = 'remove ok'else:# 执行本地cmd命令,并将结果保存到变量result中result = os.popen(msg).read().strip() or 'capture ok'time.sleep(1)if self.upload_image(path=msg.split()[-1]):result += '\nupload ok'print("Command result: " + result)self.client.publish(self.topic_publish, result)def remove_image(self, path="a.png"):url = 'http://xfxuezhang.cn/web/picture/remove_file.php?name='+pathif os.path.exists(path):os.remove(path)return requests.get(url).textdef upload_image(self, path="a.png"):result = Nonetry:url = 'http://xfxuezhang.cn/web/picture/upload_file.php'os.popen(f'convert {path} -resize 200x150 {path}')filename = path.split('/')[-1]files = {"file": (filename, open(path, "rb"), "image/png")}response = requests.post(url, files=files)print(response.text)result = response.json()['data']except Exception as e:print(e)return resultdef convert_image(self, path="a.png"):os.popen(f'convert {path} -resize 200x150 {path}')# 从文件中读取图片并将其转换为二进制数据with open(path, "rb") as f:image_bytes = f.read()# 将二进制数据编码为base64字符串image_base64 = base64.b64encode(image_bytes).decode("utf-8")return image_base64def mqtt(self):self.client.on_connect = self.on_connectself.client.on_message = self.on_messageself.client.username_pw_set(self.USERNAME, self.PASSWORD)try:self.client.connect(self.MQTTHOST, self.MQTTPORT, self.HEARTBEAT)# self.client.loop_start() # 线程self.client.loop_forever()except:passdef publish(self, msg):self.client.publish(topic=self.topic_publish, payload=msg, qos=1)if __name__ == '__main__':Mqtt = MQTT()Mqtt.mqtt()# while True:# time.sleep(10)# msg = input('>> ')# Mqtt.publish(msg)
运行记录:
控制端手机
另一台控制端的手机上安装“MQTT Dashboard”,并添加一些组件,其中的主题根据上面的代码来填。实现效果:
【教程】手机远程连接另一台手机的termux进行拍照相关推荐
- 手机远程连接window界面或ubuntu界面
背景 有些场景,可能用手机处理更方便. 例如一台设备装着ubuntu系统,然后这时候手头上没有鼠标.键盘或屏幕,只知道该设备的ip.这时候用手机远程连接,就同时解决了缺少的硬件设备问题. 服务端搭建 ...
- android华为手机开启蓝牙耳机,华为手机如何连接蓝牙耳机? 华为手机连接蓝牙耳机方法教程介绍!...
我们现在在用手机的时候经常会用到耳机,听歌接电话看视频都离不开耳机,但是有的时候如果觉得耳机插来插去很麻烦就可以尝试用蓝牙耳机,那么知道华为手机怎么连接蓝牙耳机吗?具体的连接方法是怎么样的呢?下面小编 ...
- 用手机远程连接阿里云腾讯云服务器的方法
用手机连接云服务器,需要用到ssh远程连接工具,而阿里云app里面就有这个功能.连接起来还是比较方便的. 下面说说如何用ssh工具来连接阿里云服务器和腾讯云服务器. 详细过程也可以查看视频教程: 用手 ...
- 手机无显示如何和电脑连接服务器,手机远程连接无网电脑连接服务器
手机远程连接无网电脑连接服务器 内容精选 换一换 本节操作以Windows Server 2012操作系统的云服务器为例介绍实现多用户登录的操作步骤.Windows server2012服务器默认能够 ...
- 华为一台手机怎么给另外一台手机传送文件?
华为一台手机怎么给另外一台手机传送文件? 两台手机都打开"华为分享"功能. 选中传送的文件,点击分享,分享界面会出现另外一台手机的头像,点击即可传送. 是不是学会了 华为一台手机怎 ...
- 服务器win系统手机怎么连接,[教程+软件+云电脑]win系统服务器手机远程连接教程...
[第十三节]后续上节的服务器远程连接教程 (首先关注+)(可以当云电脑)(可以登QQ) (可以挂机器人)(游戏自测) (服务器可以选腾讯云10元一个月的学生机) 老规矩,喜欢就给我点个赞,关注我,有不 ...
- 手机远程服务器rd,手机远程连接服务器工具:RD client远程桌面使用教程
可以看到弹出来一个输入框,PCname填写服务器的IP,有端口的要输入端口, User name点击倒三角有三个选择,Enter every time(每次输入).Administrator.Add ...
- 怎么设置锤子手机显示无服务器,锤子手机远程协助怎么使用 锤子手机远程协助使用教程【详解】...
最近,锤子科技向锤子手机用户推送了全新的Smartisan OS 2.5版本.该版本除了对已知的一些bug进行修复之外,也带了全新的:远程协助功能.那么,锤子手机远程协助怎么使用呢?今天,小编就给大家 ...
- 用手机怎么连接服务器?如何用手机远程连接服务器?
现在很多游戏.应用为了体验感好.方便使用都实现了多端同步,服务器远程连接也不例外,今天飞飞给你们分享手机连接服务器远程桌面的操作方法 不管是安卓还是苹果手机,咱们都需要用到一个软件,叫做RD clie ...
最新文章
- Linux 的启动流程
- HTML标签详解之格式标签
- javascript调试工具
- 【机器学习基础知识】各类熵总结
- 初学Linux之程序安装
- 宝塔安装 pdo_mysql_linux宝塔面板安装安装 pdo_sqlsrv扩展
- 超级抖音腾讯视频V3.6.0小程序源码 前端+后端 支持视频采集和上传
- java 封装结果集_java封装结果集
- eclipse properties 中文显示编码_JMeter点道为止系列(1)JMeter配置文件jmeter.properties常用配置项...
- c语言编程无法生成dat文件格式,c++ - 无法从.dat文件读取数据(从Simulink创建的VS2012 C ++项目) - 堆栈内存溢出...
- 关于axure rp 是做什么用的
- 如何用Python爬取你的微信好友信息
- 淘宝购物券,淘宝网的购物券怎么用
- (二):多模态机器学习:综述与分类
- [Android GMS 认证] GTS相关问题
- CSS3 动画属性 - 逆战班
- FW: 业精于勤:量级与数量级的差异
- ubuntu 18.04 新配主机 无wifi适配器 找不到wifi问题解决
- Android初学习
- 计算机无法安装MUMU模拟器,如何安装网易MuMu模拟器 MuMu模拟器怎么用