搜索
bottom↓
回复: 52

arduino+ethernet shield无需服务器就可开发web远程控制应用

[复制链接]

出0入0汤圆

发表于 2012-6-13 23:55:47 | 显示全部楼层 |阅读模式
本帖最后由 yeelink 于 2012-6-14 10:47 编辑

这里介绍一种实现智能家居控制的思路,
使用一个物联网的免费开放服务器作为中转,
用单片机进行http poll操作,检测标志位,从而实现远程的控制,
只要单片机能上网,支持http GET即可使用。

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2012-6-13 23:58:34 | 显示全部楼层
本帖最后由 yeelink 于 2012-6-14 00:01 编辑

实验内容:很多朋友都有这样的想法,能不能通过网页,直接从任何一台计算机,控制和访问自己的单片机或者arduino板呢?这个有趣的功能,相信很多的电子爱好者都可能会想,这个功能如果能实现,是不是意味着就能在web页面,直接通过点击按钮,就能够通过互联网完成对arduino板上的资源甚至是挂接到arduino板上的设备的控制。好像听起来有点耳熟?这是不是就是当下很火爆的数字家庭概念吗?是的没错,如果arduino驱动的是继电器或者可控插座,那么,我们就能很容易的在web上控制普通家用电器啦,想象一下,下班之前,在电脑上登陆自己的yeelink账号,然后点击“热水器烧水”,回家就能洗上舒舒服服的热水澡啦!



硬件要求:

Arduino主板
以太网板(考虑到官方W5100以太网板的价格比较贵,这次再介绍一款SPI通信方式的低成本小板,ENC28J60,参加下图模块的模样和与arduino的连接方式进行连接,并且从这个链接获取ENC的网络函数驱动库并安装即可:

http://geek-workshop.com/forum.p ... 4Mzk1fDgwN3wyMDA%3D

原理介绍:

为了实现远程控制,为简便起见,我们先讲讲如何web遥控arduino UNO板上的LED灯开关。

yeelink平台提供了两种方式,一种是arduino/单片机通过直接socket网络连接的办法,连入平台上,保持和服务器的长连接,这种方法控制的实时性相对较强;另外一种办法是arduino作为客户端,定期的向服务器查询传感器(LED)的当前值,如果我们要改变arduino的状态(如点亮LED),只需改变当前传感器的值(其实是发送HTTP的post命令,更新一下当前的设备状态),则arduino在定时周期到的时候,发出(HTTP  get)命令来获取当前LED状态的时候,发现最近的值有变化(从0变为1)的时候,则相应的改变驱动LED的IO口状态,从而实习远程控制,这里注意,在arduino板上,如果是触发性的操作(只操作一次),则可以在get数据并操作好后,直接发送POST改变服务器上吗的传感器状态,保证不会在arduino端重复触发。

首先,照例我们要先申请到yeelink的API-KEY才可以进行:

如何免费获取API-KEY,和如何添加设备,请移步 快速入门 来开始吧。

第一步: 注册之后,增加一个开关类的传感器

第二步,获取这次插入的控制设备的设备号和传感器号:如下图来说,就是设备号=63,传感器号=57

第三步,好了,控制按钮安装完毕,下面,将第七个PIN和GND之间连上电阻和LED灯,下载下面的arduino程序,更改三个地方,就可以通过点击网页上的按钮,进行控制了。(居然这么简单???是的,就是这么简单…下面想想你能怎么玩更爽吧)

arduino程序中需要修改的地方有
程序中需要改的地方是:

1.APIKEY: 这个需要更换成你自己账号的APIKEY
2.DEVICEID :这个需要换成设备号
3.SENSORID:这个需要换成传感器号

OK,就这些了,5分钟内学会如何做家庭电器控制,你行的!

另外,需要注意一点,下文中的ethernet shield是需要你家中的路由器开启DHCP功能的,如果没有开启,可以参考将
1. 代码中添加 byte ip[] = { 192, 168, 1, 12 };  (根据网络环境更改)
2. 将Ethernet.begin(mac) 替换成Ethernet.begin(mac, ip);
从这下载程序YeelinkPowerSwitch

具体的程序在下面

/*
Yeelink 网页远程控制Arduino演示代码
1. 使用arduino UNO和 ethernet shield
2.  使用数字7管脚网页控制LED灯

*/

#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <math.h>

byte buff[2];

// for yeelink api
#define APIKEY “4bb08000082a070000e2e3c580000000″ // replace your yeelink api key here
#define DEVICEID 63 // replace your device ID
#define SENSORID 57 // replace your sensor ID

// assign a MAC address for the ethernet controller.
byte mac[] = { 0×00, 0x1D, 0×72, 0×82, 0×35, 0x9D};
// initialize the library instance:
EthernetClient client;
//char server[] = “api.yeelink.net”; // name address for yeelink API
IPAddress server(202,136,60,231); // numeric IP for api.pachube.com

unsigned long lastConnectionTime = 0; // last time you connected to the server, in milliseconds
boolean lastConnected = false; // state of the connection last time through the main loop
const unsigned long postingInterval = 3*1000; // delay between 2 datapoints, 30s
String returnValue = “”;
boolean ResponseBegin = false;

void setup() {
pinMode(7, OUTPUT);

Wire.begin();
// start serial port:
Serial.begin(57600);
// start the Ethernet connection with DHCP:
if (Ethernet.begin(mac) == 0) {
Serial.println(“Failed to configure Ethernet using DHCP”);
for(;;)
;
}
else {
Serial.println(“Ethernet configuration OK”);
}
}

void loop() {
// if there’s incoming data from the net connection.
// send it out the serial port. This is for debugging
// purposes only:

if (client.available()) {
char c = client.read();
// Serial.print(c);
if (c == ‘{‘)
ResponseBegin = true;
else if (c == ‘}’)
ResponseBegin = false;

if (ResponseBegin)
returnValue += c;
}
if (returnValue.length() !=0 && (ResponseBegin == false))
{
Serial.println(returnValue);

if (returnValue.charAt(returnValue.length() – 1) == ’1′) {
Serial.println(“turn on the LED”);
digitalWrite(7, HIGH);

}
else if(returnValue.charAt(returnValue.length() – 1) == ’0′) {
Serial.println(“turn off the LED”);
digitalWrite(7, LOW);
}
returnValue = “”;
}
// if there’s no net connection, but there was one last time
// through the loop, then stop the client:
if (!client.connected() && lastConnected) {
Serial.println();
Serial.println(“disconnecting.”);
client.stop();
}

// if you’re not connected, and ten seconds have passed since
// your last connection, then connect again and send data:
if(!client.connected() && (millis() – lastConnectionTime > postingInterval)) {
// read sensor data, replace with your code
//int sensorReading = readLightSensor();
Serial.print(“yeelink:”);
//get data from server
getData();
}
// store the state of the connection for next time through
// the loop:
lastConnected = client.connected();
}



// this method makes a HTTP connection to the server and get data back
void getData(void) {
// if there’s a successful connection:
if (client.connect(server, 80)) {
Serial.println(“connecting…”);
// send the HTTP GET request:

client.print(“GET /v1.0/device/”);
client.print(DEVICEID);
client.print(“/sensor/”);
client.print(SENSORID);
client.print(“/datapoints”);
client.println(” HTTP/1.1″);
client.println(“Host: api.yeelink.net”);
client.print(“Accept: *”);
client.print(“/”);
client.println(“*”);
client.print(“U-ApiKey: “);
client.println(APIKEY);
client.println(“Content-Length: 0″);
client.println(“Connection: close”);
client.println();
Serial.println(“print get done.”);

}
else {
// if you couldn’t make a connection:
Serial.println(“connection failed”);
Serial.println();
Serial.println(“disconnecting.”);
client.stop();
}
// note the time that the connection was made or attempted:
lastConnectionTime = millis();
}

就这么简单,试试看吧。其他的单片机或gprs,能支持http get的话,也是可以用的。

出0入0汤圆

发表于 2012-6-14 11:22:16 | 显示全部楼层
这个要顶 不想用 arduino 哦 要是自己也能实现一个就好了

出0入0汤圆

 楼主| 发表于 2012-6-14 14:52:40 | 显示全部楼层
richards 发表于 2012-6-14 11:22
这个要顶 不想用 arduino 哦 要是自己也能实现一个就好了

http://blog.yeelink.net/?p=53

可以从上面找一个串口转http的工具的,用任何单片机都可以玩的

出0入0汤圆

发表于 2012-6-14 15:42:26 | 显示全部楼层
yeelink 发表于 2012-6-14 14:52
http://blog.yeelink.net/?p=53

可以从上面找一个串口转http的工具的,用任何单片机都可以玩的 ...

好的哦 谢谢咯 我去看看呢

出0入0汤圆

发表于 2012-6-14 21:30:18 | 显示全部楼层
本帖最后由 Qichao 于 2012-6-14 21:34 编辑

看到yeeline网站有自已的产品,请问能否向你们购买到一整套(含能运行于安卓手机的客户端测试软件及能采集/控制开关量及模拟量的开发板)的开发套件?最近想了解一下这方面的知识。

出0入0汤圆

 楼主| 发表于 2012-6-15 09:32:39 | 显示全部楼层
开发板是很容易获得的arduino板,淘宝上很多的哦,
android和iOS的控制软件会在月底放出来

出0入0汤圆

发表于 2012-6-15 13:34:10 | 显示全部楼层
感觉你的这种模式不错,Arduino感觉业余爱好者用的多一点,专门做硬件开发的这个硬件平台用的少,有机会继续关注。

出0入0汤圆

 楼主| 发表于 2012-6-15 15:17:51 | 显示全部楼层
emouse2010 发表于 2012-6-15 13:34
感觉你的这种模式不错,Arduino感觉业余爱好者用的多一点,专门做硬件开发的这个硬件平台用的少,有机会继 ...

不限定arduino的,你可以参考我另外一个帖子,只要是单片机带串口,都可以玩玩试试看。程序是可以参考的

出0入0汤圆

发表于 2012-6-16 19:51:16 | 显示全部楼层
yeelink 发表于 2012-6-15 15:17
不限定arduino的,你可以参考我另外一个帖子,只要是单片机带串口,都可以玩玩试试看。程序是可以参考的 ...

谢谢回复,感觉网站上做的这个平台不错,暂时没细看,保持关注,后面做点例子试试看。

出0入0汤圆

发表于 2012-6-16 20:05:45 | 显示全部楼层
本帖最后由 ljt80158015 于 2012-6-16 20:07 编辑

yeelink  期待更多的应用!


嵌入式设备中如何通过apikey登录到yeelink 呢?  

出0入0汤圆

 楼主| 发表于 2012-6-17 18:51:59 | 显示全部楼层
目前支持两种接入:
1. 用单片机的串口打印特殊字符,配合串口转http工具进行,几乎无需改变任何程序就能达到上传数据的要求。
参照http://blog.yeelink.net/?p=53
2. 用单片机加网卡,这就可以参照开源硬件的接入方式了,组装http数据包就可以了。

更多的应用场景,等着你一起来创造。

出0入0汤圆

发表于 2012-6-30 15:25:58 | 显示全部楼层
学习

出0入0汤圆

发表于 2012-6-30 20:02:13 | 显示全部楼层
这个有点意思啊!

出0入0汤圆

发表于 2012-6-30 20:40:55 | 显示全部楼层
传的东西太少了,如果能多点空间就好了,接口的广泛性还是不够啊!

出0入0汤圆

发表于 2012-6-30 21:36:13 | 显示全部楼层
yeelink平台提供了两种方式,一种是arduino/单片机通过直接socket网络连接的办法,连入平台上,保持和服务器的长连接,这种方法控制的实时性相对较强.

这种方式相当灵活,通信协议随意定义。

不知道如何实现?

出0入0汤圆

 楼主| 发表于 2012-6-30 22:54:43 | 显示全部楼层
目前支持传感器数据,触发微博了,参考这个链接吧:
http://blog.yeelink.net/?p=137

楼上,socket部分还在内测和开发中,以后会开放标准的json格式通信协议,敬请期待

出0入0汤圆

发表于 2012-7-1 12:42:50 | 显示全部楼层
yeelink 发表于 2012-6-30 22:54
目前支持传感器数据,触发微博了,参考这个链接吧:
http://blog.yeelink.net/?p=137

为什么socket 还要采用专门的格式呢,你们服务器只是中转一下,数据格式完全可以随意定义的啊?

出0入0汤圆

发表于 2012-7-1 14:48:12 | 显示全部楼层
正想做做这个东西 谢谢楼主

出0入0汤圆

发表于 2012-7-1 18:08:46 | 显示全部楼层
mark
mark
mark

出0入0汤圆

 楼主| 发表于 2012-7-2 07:59:39 | 显示全部楼层
yeelink 发表于 2012-6-30 22:54
目前支持传感器数据,触发微博了,参考这个链接吧:
http://blog.yeelink.net/?p=137

主要基于如下考虑:
1.未来的扩展,系统设计支持的“泛传感器”数据,包括数值,字符串,图片,视频类,需要区分。
2.方便控制,不光支持正向数据传输,还要支持反向的设备驱动控制
3.弄产品总要故作神秘,弄专业点嘛,对不,呵呵

出0入0汤圆

 楼主| 发表于 2012-7-2 08:04:21 | 显示全部楼层
现在,yeelink已经支持传感器数据,上传后触发新浪微博啦! 服务器端无需任何编程,单片机只需串口支持,使用yeelink串口转发工具即可测试,欢迎尝试
http://blog.yeelink.net/?p=137

出0入0汤圆

发表于 2012-7-2 08:10:34 | 显示全部楼层
楼主啊,坛里的人都不怎么待见arduino的,因为这里做批量的主不可能用这么贵的芯片的,那是在找抽。

出0入0汤圆

 楼主| 发表于 2012-7-2 10:59:14 | 显示全部楼层
这个是快速开发的,因为针对一个个单片机,写教程太麻烦了啊。
我相信,单片机高人,一定能把手头熟悉的单片机,坐上这些功能:
1. 串口输出 (这个就能连yeelink了,通过serial2yeelink工具即可)
2. http输出(部分单片机功能还是很强大的,带网络功能或者是能port上,可以的吧)

就能玩了,对吧。
arduino的好处,是扩展功能的时候太容易了,导入一个库,啥都不用操心,做产品原型方便的很啊。
需要批量上的时候,就需要各位单片机高人选择适合自己的最佳方案了。
yeelink提供的是一个让单片机迅速介入互联网的方法,也算是抛砖引玉吧

出0入0汤圆

发表于 2012-7-2 12:13:44 | 显示全部楼层
真正把物联网和智能家居实现的好方法。

出0入0汤圆

发表于 2012-7-2 12:32:56 | 显示全部楼层
顶,非常好在东西, 我正想弄这些。

什么时间能支持数据连续采集,?在网页上能显示波形,

出0入0汤圆

 楼主| 发表于 2012-7-2 14:01:49 | 显示全部楼层
楼上,如果对实时性要求高,可能用http还是不合适的,未来的socket API会更适合做实时性强的操作。
目前对上传速度有限制,http的10s以上比较合适,主要是目前我们的服务器资源还是有限,呵呵。

希望有时间的朋友,花点时间把玩把玩啊

出0入0汤圆

 楼主| 发表于 2012-7-2 14:05:16 | 显示全部楼层
目前的新功能更新:
支持通过传感器的参数直接出发新浪微博,教程如下:

夏季的时候,yeelink团队带给你新浪微博触发功能,现在,可以使用arduino上面的传感器数据,触发微博啦!–据说,有的网友已经策划用这个功能研发“老板在不在监控系统”了,只要关注好微博,老板在不在,随时微博汇报…

照例,下面从从介绍一下,如何动手使用这个强大的功能。

1. 不能免俗,先要去yeelink.net注册和获取属于你的API-KEY,这样就能开始了
2. 建立设备和传感器,请参考http://www.yeelink.net/develop/quickstart
3. 有没有W5100的以太网板? 有的话,太好了,你能脱离PC机玩了,请移步http://blog.yeelink.net/?p=34 看看怎么上传数据
没有也行啊,连着电脑也能玩玩,谁让咱们有serial2yeelink工具呢,看看这里怎么连http://blog.yeelink.net/?p=53 看看怎么绕过去
4. 现在是重点,给传感器增加一个微博触发动作吧!

在平台上,增加一个动作“微博转发”




先点击“管理动作”à增加新动作按钮,对动作取名后,选择类型为“微博发布”,这里以新浪微博为例,选择并填写后,点击“获取授权”,

需要注意的是,由于我们使用了新浪微博oAuth认证,所以您的微博账号并非存在我们网站,敬请放心隐私和安全问题。

当获取到授权信息后,就能够向您的传感器添加这个动作了,在相应的温度型传感器,通过点击右下角的“添加触发”,就能能完成触发操作了,比如下面就是在温度传感器达到100的时候,向自己的微博账号发送“开锅了”的消息。


步骤二:在arduino的传感器采集数据程序里面,增加上两句:

Serial.print(“yeelink:”);   //上送到yeelink网站,利用Serial2Yeelink工具
Serial.println(your data);   // 您的传感器读数,需要和您设置的传感器数据量程,单位相符合。

步骤三:使用serial2yeelink或ArdyPro的工具,填写进相应的参数,即可

注意,建议传感器发送速率在10S以上,避免出现服务器拒收情况。使用的方式请参考这个链接:

http://blog.yeelink.net/?p=129



如果数据上传成功,应该就能在微博看到啦!

好吧,更多的想象力等着你去开拓,哼哼,老板这次行踪尽在我掌握了…

对了,别忘了把arduino和你的传感器搞隐蔽点….

出0入0汤圆

发表于 2012-7-2 14:18:04 来自手机 | 显示全部楼层
小打小闹还行

出0入0汤圆

发表于 2012-7-2 14:48:16 | 显示全部楼层
win7下载serial_2_yeelink 表示使用不了

出0入0汤圆

发表于 2012-7-2 14:50:06 | 显示全部楼层
好东西.有空试一下.现在手上的GPRS模块支持HTTP.可以试一下.

出0入0汤圆

 楼主| 发表于 2012-7-2 14:56:34 | 显示全部楼层
FlashNuk 发表于 2012-7-2 14:18
小打小闹还行

以后会逐渐开放出大打大闹的功能来

出0入0汤圆

发表于 2012-7-2 15:02:29 | 显示全部楼层
好像添加不了设备

出0入0汤圆

 楼主| 发表于 2012-7-2 15:10:06 | 显示全部楼层
能否刷新看看?

出0入0汤圆

 楼主| 发表于 2012-7-2 15:11:46 | 显示全部楼层
stonechen 发表于 2012-7-2 14:48
win7下载serial_2_yeelink 表示使用不了

http://blog.yeelink.net/?p=129

试试这个网友用开放的API自己写的跨平台工具?

出0入0汤圆

发表于 2012-7-2 15:15:28 | 显示全部楼层
yeelink 发表于 2012-7-2 14:56
以后会逐渐开放出大打大闹的功能来

设备建立之后就是不出现,什么情况

出0入0汤圆

发表于 2012-7-2 15:16:20 | 显示全部楼层
gaoshou5432 发表于 2012-7-2 15:02
好像添加不了设备

同意,根本建立不了设备

出0入0汤圆

 楼主| 发表于 2012-7-2 15:28:19 | 显示全部楼层
使用的哪种浏览器?我试试,用Chrome是没问题的,但是可能在部分老IE版本下面有些问题

出0入0汤圆

 楼主| 发表于 2012-7-2 16:39:08 | 显示全部楼层
stonechen,我刚才看了一下DB,您的设备已经添加成功了,是不是因为网速导致的延迟,看到的比较慢?这个我已经开了bug跟踪,争取尽快解决

出0入0汤圆

发表于 2012-7-2 20:58:34 | 显示全部楼层
yeelink 发表于 2012-7-2 16:39
stonechen,我刚才看了一下DB,您的设备已经添加成功了,是不是因为网速导致的延迟,看到的比较慢?这个我 ...

后来可以了,现在还有个问题请教,就是控制LED,有没有软件工具可以接收网页发送的开关量,然后转换成串口数据发送给开发板??毕竟很多老设备有串口

出0入0汤圆

 楼主| 发表于 2012-7-2 21:10:46 | 显示全部楼层
这个功能,在下一个版本的串口转发工具中会实现,预计在本周开发完毕,下周放出公测,我会提醒您

出0入0汤圆

发表于 2012-7-2 21:15:19 | 显示全部楼层
yeelink 发表于 2012-7-2 15:11
http://blog.yeelink.net/?p=129

试试这个网友用开放的API自己写的跨平台工具?

为什么还要通过串口转一下呢,直接做一个调试程序,在PC上就能上传数据多好啊.

出0入0汤圆

发表于 2012-7-2 21:28:51 | 显示全部楼层
yeelink 发表于 2012-7-2 21:10
这个功能,在下一个版本的串口转发工具中会实现,预计在本周开发完毕,下周放出公测,我会提醒您 ...


恩 好我会关注的 感觉不错,如果通过开发板发送红外控制空调就简单了,并且不是二值量

出0入0汤圆

 楼主| 发表于 2012-7-2 22:23:20 | 显示全部楼层
呵呵,这个会给你做的很完善的,未来的提供的开源手机App,会控制一种叫“字符型”的传感器设备(你可以自定义),通过app发送特定字符串给单片机,单片机完成数据转红外库的工作,这样就是所谓“智能家庭”啦,对不,

实现这些功能,只需要你完成单片机部分的红外库工作即可了,还是很流行的手机控制哦。

出0入0汤圆

发表于 2012-7-3 14:21:17 | 显示全部楼层
ljt80158015 发表于 2012-7-2 21:15
为什么还要通过串口转一下呢,直接做一个调试程序,在PC上就能上传数据多好啊. ...

直接用PC机模拟 ,多方便!

出0入0汤圆

 楼主| 发表于 2012-7-4 08:50:59 | 显示全部楼层
ljt80158015 发表于 2012-7-3 14:21
直接用PC机模拟 ,多方便!

您好,你说的这个功能,应该会在本周内一次大改版中,提供的新工具里面实现

出0入0汤圆

发表于 2012-7-4 09:08:18 | 显示全部楼层
yeelink 发表于 2012-7-4 08:50
您好,你说的这个功能,应该会在本周内一次大改版中,提供的新工具里面实现 ...

期待!~

出0入0汤圆

发表于 2012-7-6 10:23:59 | 显示全部楼层
yeelink 发表于 2012-7-4 08:50
您好,你说的这个功能,应该会在本周内一次大改版中,提供的新工具里面实现 ...

j就等你的啊!急切关注中!

出0入0汤圆

 楼主| 发表于 2012-7-6 16:03:32 | 显示全部楼层
好吧,让大家等急了,先把改进的测试版本放出来试试吧,不用单片机也能进行测试了,串口也可用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-7-6 21:28:33 | 显示全部楼层
yeelink 发表于 2012-7-6 16:03
好吧,让大家等急了,先把改进的测试版本放出来试试吧,不用单片机也能进行测试了,串口也可用 ...

求源代码,因为我的USB转串口的,希望可以有COM1~COM12

出0入0汤圆

 楼主| 发表于 2012-7-7 11:38:48 | 显示全部楼层
源代码会尽快放到github上,这个版本还没测试完成,你别太着急啊...

出0入0汤圆

发表于 2012-7-15 20:52:38 | 显示全部楼层
发一个自己写的yeelink的调试工具
功能:
1、手工在软件中填写数据,然后上传数据,
2、获取开关状态,并用LED显示
3、串口ToYeelink,方法同官方软件相同!
4、显示通信过程!
新手上路,请多指教!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-7-16 08:35:51 | 显示全部楼层
jackielau 发表于 2012-7-15 20:52
发一个自己写的yeelink的调试工具
功能:
1、手工在软件中填写数据,然后上传数据,

呵呵,Jackie的这个工具强烈推荐,最简单实现了无任何硬件就能接入测试功能,很强大!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-3 23:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表