色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用Android應用程序控制arduino IO引腳

454398 ? 來源:網絡整理 ? 作者:佚名 ? 2019-11-06 17:47 ? 次閱讀

步驟1:部件

對于這個instructables你需要幾個部分。

一個arduino

一個Android智能手機或平板電腦(我正在使用android 5.0.1)

以太網屏蔽

3 Led

3 220歐姆電阻

一些跳線

a breadboard

安裝了android studio的計算機

步驟2:以太網盾

我從gearbest.com獲得了這個以太網屏蔽。

它立即在我的arduino mega(也來自gearbest.com)上工作

在屏蔽上你有2個SPI設備。 SD卡讀卡器和用于以太網的W5100 IC

在這個instructables中,我們只使用以太網部件。

步驟3:架構

我們需要將3個led連接到arduino。您可以使用除引腳0,1,10到13和50到53之外的每個引腳。

我使用的是引腳22,引腳23和引腳24.

您還需要將arduino連接到你的本地網絡。不需要互聯網。

第4步:Arduino草圖

對于arduino草圖,我從示例網絡服務器草圖開始。

我嘗試記錄每一件事,但如果你有問題可以隨意提問!

#include

#include

// Set the MAC address

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

// Set the IP address

IPAddress ip(192, 168, 1, 177);

// Start a server at port 80 (http)

EthernetServer server(80);

void setup() {

// Open serial communications

Serial.begin(9600);

// start the Ethernet connection and the server

Ethernet.begin(mac, ip);

server.begin();

// Pin 22 - 24 output (leds)

pinMode(22, OUTPUT);

pinMode(23, OUTPUT);

pinMode(24, OUTPUT);

}

void loop() {

// Check if client connected

EthernetClient client = server.available();

if (client) { // If there is a client.。.

boolean currentLineIsBlank = true;

String buffer = “”; // A buffer for the GET request

while (client.connected()) {

if (client.available()) {

char c = client.read();// Read the data of the client

buffer += c; // Store the data in a buffer

if (c == ‘ ’ && currentLineIsBlank) {// if 2x new line ==》 Request ended

// send a standard http response header

client.println(“HTTP/1.1 200 OK”);

client.println(“Content-Type: text/html”);

client.println(“Connection: close”);

client.println(); // Blank line ==》 end response

break;

}

if (c == ‘ ’) { // if New line

currentLineIsBlank = true;

buffer = “”; // Clear buffer

} else if (c == ‘ ’) { // If cariage return.。.

//Read in the buffer if there was send “GET /?。..”

if(buffer.indexOf(“GET /?led1=1”)》=0) { // If led1 = 1

digitalWrite(24, HIGH); // led 1 》 on

}

if(buffer.indexOf(“GET /?led1=0”)》=0) { // If led1 = 0

digitalWrite(24, LOW); // led 1 》 off

}

if(buffer.indexOf(“GET /?led2=1”)》=0) { // If led2 = 1

digitalWrite(22, HIGH); // led 2 》 on

}

if(buffer.indexOf(“GET /?led2=0”)》=0) { // If led2 = 0

digitalWrite(22, LOW); // led 2 》 off

}

if(buffer.indexOf(“GET /?led3=1”)》=0) { // If led3 = 1

digitalWrite(23, HIGH); // led 3 》 on

}

if(buffer.indexOf(“GET /?led3=0”)》=0) { // If led3 = 0

digitalWrite(23, LOW); // led 3 》 off

}

} else {

currentLineIsBlank = false;

}

}

}

delay(1);

client.stop();

}

}

那是arduino上的代碼。

很簡單,對吧?讓我們去看看應用程序吧!

第5步:應用程序布局

為了創建一個android工作室項目我會在這里重定向你。開頭是相同的,選擇一個名稱并創建主要活動,但在刪除“hello world” textview后,您需要添加任意類型的3個按鈕。我正在使用開關,切換按鈕和普通按鈕,但您可以選擇最喜歡的。

注意:

如果出現渲染錯誤,請在窗口頂部將 Apptheme 更改為 Appcompat.NoActionBar

!注意!

正常按鈕只會在按下時點亮它的LED。釋放按鈕后led將熄滅。

在 res/values/styles.xml 中,您需要將父級更改為:“Theme.Appcompat.NoActionBar”

好的,現在我們可以開始編寫應用程序了!

第6步:應用程序編碼

為了對應用進行編碼,我讓您更輕松。您需要將此代碼復制到 MainActivity.java ,并將包 laurens_wuyts.arduinoiocontrol 更改為 company.appname 。

package laurens_wuyts.arduinoiocontrol;

import android.app.Activity;

import android.os.AsyncTask;

import android.support.v7.app.ActionBarActivity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.MotionEvent;

import android.view.View;

import android.widget.Button;

import android.widget.CompoundButton;

import android.widget.Switch;

import android.widget.ToggleButton;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

public class MainActivity extends Activity{

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.menu_main, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

//noinspection SimplifiableIfStatement

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

/*****************************************************/

/* This is a background process for connecting */

/* to the arduino server and sending */

/* the GET request withe the added data */

/*****************************************************/

private class Background_get extends AsyncTask {

@Override

protected String doInBackground(String.。. params) {

try {

/*********************************************************/

/* Change the IP to the IP you set in the arduino sketch */

/*********************************************************/

URL url = new URL(“http://192.168.1.177/?” + params[0]);

HttpURLConnection connection = (HttpURLConnection) url.openConnection();

BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));

StringBuilder result = new StringBuilder();

String inputLine;

while ((inputLine = in.readLine()) != null)

result.append(inputLine).append(“ ”);

in.close();

connection.disconnect();

return result.toString();

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

}

}

在此代碼中,您只需要將IP更改為arduino的IP。

要檢查按鈕,您需要做兩件事:

定義按鈕

為每個按鈕添加onclick/onchange監聽器。

定義按鈕:

/* For a switch */

Switch led1 = (Switch) findViewById(R.id.Led1);

/* For a toggle button */

ToggleButton led2 = (ToggleButton) findViewById(R.id.Led2);

/* For a normal button */

Button led3 = (Button) findViewById(R.id.Led3);

添加onclick/onchange:

將onclick/onchange偵聽器放在onCreate函數中。

/* For a switch you‘ll need an “OnCheckedChangeListener” like this */

led1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

if (isChecked) {

/* Switch is led 1 */

new Background_get().execute(“led1=1”);

} else {

new Background_get().execute(“led1=0”);

}

}

});

/* For a toggle button you also need a “OnCheckedChangeListener” */

led2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

if(isChecked) {

/* Toggle button is led 2 */

new Background_get().execute(“led2=1”);

} else {

new Background_get().execute(“led2=0”);

}

}

});

/* For a button you’ll need a “OnTouchListener” */

led3.setOnTouchListener(new View.OnTouchListener() {

@Override

public boolean onTouch(View v, MotionEvent event) {

if (event.getAction() == MotionEvent.ACTION_DOWN) {

/* button is led 3 */

new Background_get().execute(“led3=1”);

} else if (event.getAction() == MotionEvent.ACTION_UP) {

new Background_get().execute(“led3=0”);

}

return true;

}

});

這就是所有編碼這需要做!現在我們需要為您的應用添加權限。

步驟7:向您的應用添加權限

讓您的應用運行你需要賦予它權限。我們只需要1個權限:上網。要獲得此權限,您需要打開清單文件并添加:

步驟8:恢復

在這個教程中,我向您展示了如何通過網絡從Android手機控制arduino IO引腳。

我還為想要使用它的人提供了完整的應用程序目錄。

責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    3943

    瀏覽量

    127742
  • Arduino
    +關注

    關注

    188

    文章

    6477

    瀏覽量

    187602
收藏 人收藏

    評論

    相關推薦

    android手機上emulate應用程序的方法

    Android手機上模擬(emulate)應用程序的方法通常涉及到使用Android模擬器(Emulator)或類似的工具來模擬Android環境,以便在沒有實際物理設備的情況下運行
    的頭像 發表于 12-05 15:33 ?422次閱讀

    AWTK-WEB 快速入門(1) - C 語言應用程序

    導讀AWTK可以使用相同的技術棧開發各種平臺的應用程序。有時我們需要使用Web界面與設備進行交互,本文介紹一下如何使用C語言開發AWTK-WEB應用程序。用AWTKDesigner新建一個應用程序
    的頭像 發表于 11-27 11:46 ?269次閱讀
    AWTK-WEB 快速入門(1) - C 語言<b class='flag-5'>應用程序</b>

    Arduino程序:實現SD NAND(貼片sd卡)的讀寫功能

    引腳對應 []()   下載程序 沒有錯誤的話會出現如下的內容 []()   使用SPI讀寫的話,我看他們官網博客上沒有連接相應的電阻,直接接IO口上了   下面是官方提供的SPI連接示意圖
    發表于 11-07 17:45

    【軟件干貨】Android應用進程如何保活?

    Android應用程序中,為了保證應用的正常運行和穩定性,有時需要對應用進程進行保活。以下是一些實現進程保活的方法:
    的頭像 發表于 10-15 17:05 ?541次閱讀
    【軟件干貨】<b class='flag-5'>Android</b>應用進程如何保活?

    計算機進行程序控制工作的基本原理是怎樣的

    計算機程序控制是計算機科學中的一個核心概念,它涉及到計算機如何根據預設的指令序列執行任務。 1. 計算機硬件基礎 在深入程序控制之前,我們需要了解計算機的基本硬件組件,因為它們是程序控制
    的頭像 發表于 09-04 16:57 ?695次閱讀

    如何在Android 10設備上通過App控制GPIO

    本文檔提供了在 Android 10 設備上通過應用程序(App)控制通用輸入輸出(GPIO)的詳細指南。這涵蓋了從創建 gpio驅動到App 配置 以及 SELinux 策略以允許特定訪問的所有必要步驟。
    的頭像 發表于 07-22 17:59 ?1324次閱讀

    寫一個程序控制像圖上這樣控制電磁閥 但是沒什么頭緒 請各位大神幫幫忙

    寫一個程序控制像圖上這樣控制電磁閥 但是沒什么頭緒 請各位大神幫幫忙
    發表于 07-22 13:18

    ESP8266如何為應用程序選擇正確的Wi-Fi模塊嗎?

    您能幫我為我們的新應用程序選擇正確的 Wi-Fi 模塊嗎? 該模塊的要求如下: - 從主機應用程序控制(通過STM32通過SPI、SDIO或最壞情況下的UART) - 接入點/軟 AP,可以同時
    發表于 07-19 16:56

    Anthropic推出Claude Android應用程序,挑戰ChatGPT市場地位

    在人工智能領域的激烈競爭中,新興力量Anthropic于本周二正式推出了其備受矚目的Claude Android應用程序,標志著這家公司在多平臺布局上邁出了重要一步,旨在通過提供更廣泛、更便捷的訪問方式,吸引并留住用戶,從而在與ChatGPT等巨頭的競爭中脫穎而出。
    的頭像 發表于 07-17 17:24 ?1102次閱讀

    初識IO-Link及IO-Link設備軟件協議棧

    軟件堆疊套件包括亞信IO-Link 設備軟件協議棧試用庫、IO-Link傳感器驅動程序以及演示應用程序
    的頭像 發表于 07-08 13:55 ?2915次閱讀
    初識<b class='flag-5'>IO</b>-Link及<b class='flag-5'>IO</b>-Link設備軟件協議棧

    安裝在Android 14上的LE OTA應用程序無法使用是怎么回事?

    你好。 LE OTA 應用程序示例代碼無法在 Android 14 智能手機上運行。 點擊更新按鈕時,顯示"abort" ,OTA 進程無法繼續。 13 及以下版本沒有問題。 為什么會這樣?
    發表于 07-05 06:01

    遠程IO模塊與PLC的區別

    在工業自動化領域中,遠程IO模塊(Remote Input/Output Module)和可編程序控制器(Programmable Logic Controller,簡稱PLC)都是重要的組成部分
    的頭像 發表于 06-15 15:53 ?1937次閱讀

    可編程序控制器系統概述

    AB可編程序控制器系統
    發表于 05-23 14:26 ?8次下載

    應用程序中的服務器錯誤怎么解決?

    在使用應用程序時,可能會遇到服務器錯誤的問題。這種錯誤通常會導致應用程序無法正常運行 ,給用戶帶來不便。下面將介紹應用程序中的服務器錯誤及其解決方法,幫助您快速解決這一問題。
    的頭像 發表于 03-12 15:13 ?6452次閱讀

    如何去提高EtherCAT IO的性能呢?

    進行EtherCAT IO性能優化涉及多個方面,包括硬件選擇、網絡配置、軟件優化和應用程序設計。
    的頭像 發表于 03-07 09:28 ?561次閱讀
    主站蜘蛛池模板: 国产三级在线免费 | 失禁 调教 刺激 哭喊男男 | 色拍拍噜噜噜久久蜜桃 | 伊人影院久久 | 花蝴蝶免费观看影视 | 忘忧草在线社区WWW日本直播 | 国产亚洲精品久久久久久禁果TV | 伊人香蕉在线播放视频免费 | 狠狠色狠狠色综合日日2019 | 海量激情文学 | 中文字幕亚洲综合小综合在线 | 久久全国免费久久青青小草 | 在线色av | 在线观看亚洲专区5555 | 手机在线观看mv网址 | 久久久久影视 | 日本精品久久久久中文字幕 1 | 中文字幕在线视频观看 | 女同给老师下媚药 | 拔萝卜视频免费看高清 | 国产亚洲精品97在线视频一 | 国产日韩久久久精品影院首页 | 神马电影院午 夜理论 | 特黄特黄aaaa级毛片免费看 | 国产精品香蕉视频在线 | 女人十八毛片水真多啊 | 被高跟鞋调教丨vk | 亚洲影院在线播放 | 国产亚洲欧洲日韩在线三区 | 日韩亚洲视频一区二区三区 | 小草视频免费观看在线 | 亚洲国产成人精品无码区APP | 久99视频精品免费观看福利 | 亚洲日本欧美国产在线视 | 欧美日韩精品一区二区三区高清视频 | 国产AV一区二区三区日韩 | 神马午夜不卡片 | 果冻传媒视频在线播放 免费观看 | 成人国产三级在线播放 | 亚洲精品色播一区二区 | 中国午夜伦理片 |