求助如何在基于安卓通过WiFi与Arduino通信,实现对LED灯的控制。 50

目前硬件开发板已经搞定,求助大神在安卓编程方便怎么弄,要具体的源码,不能直接下载应用程序。... 目前硬件开发板已经搞定,求助大神在安卓编程方便怎么弄,要具体的源码,不能直接下载应用程序。 展开
 我来答
雨非我所欲
推荐于2017-12-15 · TA获得超过1993个赞
知道小有建树答主
回答量:559
采纳率:85%
帮助的人:200万
展开全部
项目需要的硬件如下:

Arduino Uno
Ethernet Shield
LED灯 2个.
电阻 2个.
面包板(可选)
连接导线
路由器一个
项目要的连接管脚如下:
LED 1 --> pin 6 to ground
LED 2 --> pin 7 to ground
项目需要的软件如下:
Eclipse IDE
Arduino IDE 1.x.x
LED 1 --> pin 6 to ground
LED 2 --> pin 7 to ground

项目需要的软件如下:

Eclipse IDE
Arduino IDE 1.x.x

Step 1: 在 Arduino上编程如下:#include "etherShield.h"
#include "ETHER_28J60.h"

int led2 = 7;
int led1 = 6;

static uint8_t mac[6] = {0xAA, 0xBB, 0xCC, 0xDD, 0xBB, 0xAA}; // this just needs to be unique for your network,
// so unless you have more than one of these boards
// connected, you should be fine with this value.

static uint8_t ip[4] = {192, 168, 0, 15}; // the IP address for your board. Check your home hub
// to find an IP address not in use and pick that
// this or 10.0.0.15 are likely formats for an address
// that will work.
static uint16_t port = 80; // Use port 80 - the standard for HTTP

ETHER_28J60 e;

void setup()
{
e.setup(mac, ip, port);

pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);

digitalWrite(led1, LOW);
digitalWrite(led2, LOW);

}

void loop()
{
char* params;
if (params = e.serviceRequest())
{
if (strcmp(params, "?cmd=1") == 0)
{
digitalWrite(led1, HIGH);
}
if (strcmp(params, "?cmd=2") == 0)
{
digitalWrite(led1, LOW);

}
if (strcmp(params, "?cmd=3") == 0)
{
digitalWrite(led2, HIGH);
}
if (strcmp(params, "?cmd=4") == 0)
{
digitalWrite(led2, LOW);

}

e.respond();
}
}
Step 2: 制作安卓APP

package com.androidarduino;

import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.app.Activity;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener{

@Override
protected void onCreate(Bundle savedInstanceState) {

StrictMode.ThreadPolicy policy = new StrictMode.
ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

super.onCreate(savedInstanceState);
setContentView(R.layout.main);

View led1on = findViewById(R.id.led_1on);
View led1off = findViewById(R.id.led_1off);
View led2on = findViewById(R.id.led_2on);
View led2off = findViewById(R.id.led_2off);

led1on.setOnClickListener(this);
led1off.setOnClickListener(this);
led2on.setOnClickListener(this);
led2off.setOnClickListener(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

public void commandArduino(String url){
try {
HttpClient httpclient = new DefaultHttpClient();
httpclient.execute(new HttpGet(url));
} catch (Exception e) {
}
}

public void onClick(View thisView) {
switch(thisView.getId()){
case R.id.led_1on:
commandArduino("http://192.168.0.15/?cmd=1");
Toast.makeText(getApplicationContext(), "led_1on",Toast.LENGTH_LONG).show();
break;
case R.id.led_1off:
commandArduino("http://192.168.0.15/?cmd=2");
Toast.makeText(getApplicationContext(), "led_1off",Toast.LENGTH_LONG).show();
break;
case R.id.led_2on:
commandArduino("http://192.168.0.15/?cmd=3");
Toast.makeText(getApplicationContext(), "led_2on",Toast.LENGTH_LONG).show();
break;
case R.id.led_2off:
commandArduino("http://192.168.0.15/?cmd=4");
Toast.makeText(getApplicationContext(), "led_2off",Toast.LENGTH_LONG).show();
break;

}

}

}
晓网科技
2024-10-17 广告
广州晓网电子科技有限公司还是挺专业的,广州晓网电子科技有限公司是一家集研发、销售、方案设计为一体的高新技术企业。我们致力于为客户提供无线数据采集,无线网络传输和远程监控解决方案,帮助客户实现智能照明管理,工厂自动化生产数据采集,电子标签人员... 点击进入详情页
本回答由晓网科技提供
墨夏侯柳l
2015-07-23 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:85
采纳率:100%
帮助的人:86.2万
展开全部
不难,就是步骤有点多,可以看看“老罗的Android之旅”,从底层驱动,HAL,framework,app,一层层自己加东西调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
掌宏畅R8
2015-08-19 · TA获得超过3293个赞
知道答主
回答量:651
采纳率:0%
帮助的人:165万
展开全部
不难,就是步骤有点多,可以看看“老罗的Android之旅”,从底层驱动,HAL,framework,app,一层层自己加东西调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baikewsp
2015-08-05 · TA获得超过1万个赞
知道小有建树答主
回答量:4588
采纳率:42%
帮助的人:694万
展开全部
应该可以通过某些软件来实现 我的Iphone前几天在APP里下载了一个叫几维遥控器的东西 现在我开空调 电视换台 啥的都不需要找遥控器了,直接用手机就能解决了 其实这类的东西都有很多 应该能找到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
亖厶亖
2015-07-26 · TA获得超过365个赞
知道小有建树答主
回答量:222
采纳率:80%
帮助的人:94.1万
展开全部
应该可以通过某些软件来实现 我的Iphone前几天在APP里下载了一个叫几维遥控器的东西 现在我开空调 电视换台 啥的都不需要找遥控器了,直接用手机就能解决了 其实这类的东西都有很多 应该能找到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式