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分享举报

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mozilla 放出新的 Firefox 3.5 RC 版本(RC 3)

这几天 Mozilla 对 Firefox 3.5 的更新节奏真是够快,今天,一个新的 RC 版本(显示为 RC 3)又放出了。Firefox 3.5 RC 3 主要根据用户对之前版本的反馈进行了修正。有趣的是,笔者在其关于对话框中并没有发现 RC 字样&…

android studio 抽屉,java - Android导航抽屉(由Android Studio默认提供) - 堆栈内存溢出...

当我按下导航菜单项的更改时,它的颜色为黄色,直到释放时一直按它为默认。我没有明确编写任何代码来设置这些设置。 我该如何停止?请帮忙。 这是我的代码。 主要布局xmlns:android"http://schemas.android.com/apk/res/android"xmln…

大数据正在改变客户服务的五种方式

大数据正在改变客户服务的五种方式 任何组织的命脉,无论是否面向服务,都是需要为客户提供良好的服务。组织如何与其客户进行互动,会影响他们如何看待组织,这会影响潜在客户,除了组织最忠实的客户之外。 客户服务行业一…

android底部导航栏svg,vue开发移动端底部导航条功能

效果图src/app.vue头部导航内容区域import Tabbar from components/tabbar;export default {name: App,components:{Tabbar}}.g-container{position: relative;width:100%;height:100%;max-width:640px;min-width:320px;margin:0 auto;overflow:hidden;}.g-header-container{po…

一次自定义Configuration的悲惨经历。

终于发现问题了。。。太不容易了。。。5555昨天偶然想起来把一个项目中生成静态页配置文件做成一个单独到config文件。由于以前没有接触过自定义Configuration动手前上网查一下资料,发现蛮简单的。。定义section。。。定义属性。。。ConfigurationProperty声明。很快…

A query was run and no Result Maps were found for the Mapped Statement

原因:这是因为查询的结果集没有书写返回的类型resultType/resultMap 修改后如下

android+4.4.2+横屏,Android 横竖屏和布局问题

在这里我做了一个小test,之前看过关于这方面的东西,到后来我才真正的遇到项目的时候,不得已才要去真正的熟悉里面的流程。这里我贴测试源码:TestActivity.javapackage cn.com.hrmdemo;import Android.app.Activity;import android.content.re…

Silverlight 3 全系列开发工具发布

Silverlight 3 全系列开发工具发布Expression Studio 3Make your vision real with the four professional tools in Microsoft Expression Studio 3. Design for standards-based web sites, rich desktop experiences or Silverlight. Includes Expression Blend™ SketchFl…

8 线性表-循环队列-顺序存储

这几天犹豫了一下要不要上机实现数据结构的代码 一轮复习已经结束了 第二次看还是觉得光看书实在太无感了 于是决定来上机 顺便加深印象 即使考不上 记录一些基础的知识 以后找工作也有用…… 好 就这样决定咧!不能偷懒! 1、循环队列: 实际上…

Android九点阵手势识别,能量黑科技模块八-九:两路按键颜色手势魔块

8. 两路按键魔块模块一共有两路硅胶按键,可以检测按键是否按下。当按键按下时,对应按键背后的红色LED会亮,并且返回触发信号,按键按下事件为真。另外按键键帽上可安装乐高十字插销。8.1. 详细介绍8.2. 参数介绍支持电压&#xff1…

RC和RR级别下的InnoDB快照读有什么不同

首先简介mysql四种隔离级别: 未提交读(READ UNCOMMITED)脏读 已提交读 (READ COMMITED)简称(RC) 不可重复读 可重复读(REPEATABLE READ)简称(RR ) 可串行化&#xff…

[新手及懒人适用]轻松恢复误Ghost的硬盘

首先感谢51CTO有这么好的网络平台,很荣幸本周成为推荐博客。在高兴的同时,倍感压力,毕竟,51CTO看得见的看不见的大牛太多,而自己需要完善的东西还太多太多............好在,我会坚持自己最初在51CTO写博的初…

HTML练习4制作京东登录页,day4 CSS属性和京东登录

1、盒子练习.div1{background-color: darkcyan;width: 100px;height: 100px;margin-left: 20px;margin-top: 20px;/*float: left;*/text-indent: 4em;}.f1{text-indent: 2em;}按时发达复活节啊奥斯卡房间里卡就分手了空间撒 阿发阿发阿发艾弗森adhfhkash发货咖啡来看哈反抗咯说…