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

满意答案

00e27ab806e4881f8254fe7ae8741834.png

dkmeng

推荐于 2017.12.15

00e27ab806e4881f8254fe7ae8741834.png

采纳率:55%    等级:9

已帮助:567人

项目需要的硬件如下:

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;

}

}

}

01分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值