一般用什么APP来通过WiFi控制arduino
答案:3 悬赏:40 手机版
解决时间 2021-03-26 05:06
- 提问者网友:星軌
- 2021-03-26 01:28
一般用什么APP来通过WiFi控制arduino
最佳答案
- 五星知识达人网友:神鬼未生
- 2021-03-26 01:36
项目需要的硬件如下: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.xLED 1 --> pin 6 to ground LED 2 --> pin 7 to ground项目需要的软件如下:Eclipse IDE Arduino IDE 1.x.xStep 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 HTTPETHER_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: 制作安卓APPpackage 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{@Overrideprotected 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);}@Overridepublic 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("192.168.0.15/?cmd=1"); Toast.makeText(getApplicationContext(), "led_1on",Toast.LENGTH_LONG).show(); break; case R.id.led_1off: commandArduino("192.168.0.15/?cmd=2"); Toast.makeText(getApplicationContext(), "led_1off",Toast.LENGTH_LONG).show(); break; case R.id.led_2on: commandArduino("192.168.0.15/?cmd=3"); Toast.makeText(getApplicationContext(), "led_2on",Toast.LENGTH_LONG).show(); break; case R.id.led_2off: commandArduino("192.168.0.15/?cmd=4"); Toast.makeText(getApplicationContext(), "led_2off",Toast.LENGTH_LONG).show(); break; }}}
全部回答
- 1楼网友:西风乍起
- 2021-03-26 02:59
青铜谙妆军烈属毁沿
- 2楼网友:等灯
- 2021-03-26 02:40
可以自己设计一个app,用app inventor,然后加入arduino的组件就可以了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯