회로

모바일 제어 LED (Arduino + Bluetooth 모듈) LED : 6 단계

блютуз bluetooth модуль hc-05, hc-06 Подключение к ардуино,

блютуз bluetooth модуль hc-05, hc-06 Подключение к ардуино,

차례:

Anonim

여보세요,

여기서는 Android Studio에서 Android 앱을 코딩하는 방법을 설명합니다.

Arduino 코드 및 회로에 대해서는 다음을 참조하십시오.

http://www.instructables.com/id/Mobile-Control-LEDAndroidBluetooth

용품:

1 단계 : 새 프로젝트 만들기 (LED 제어)

Android Studio를 다운로드하여 설치하고 엽니 다.

  • 새로운 프로젝트를 생성하십시오.-name LED Control
  • 타겟팅 할 최소 SDK 선택
  • list라는 빈 활동을 만듭니다.

2 단계 : 목록 활동 설계

이제 그림 7과 같이 목록 활동을 설계하십시오. 위.

또는 마지막에 제공된 파일에서 텍스트의 코드를 직접 복사하십시오.

3 단계 : 목록 활동 코딩

package com.example.kulwinder.ledcontrol;

android.bluetooth.BluetoothAdapter 가져 오기 android.bluetooth.BluetoothDevice;를 가져 오십시오. import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import java.util.ArrayList; import java.util.Set;

공용 클래스 목록은 AppCompatActivity {ListView list; 페어링 된 버튼;

private BluetoothAdapter adapter = null; // 로컬 장치를 나타냄 Bluetooth 어댑터 개인 장치 paireddevices 설정; public static String EXTRA_ADDRESS = "device_address"; // 연결된 장치의 MAC 주소를 저장하는 데 사용합니다.

@Override protected void onCreate (번들 savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_list);

// 쌍을 이루는 위젯 불러 오기 = (Button) findViewById (R.id.paired); list = (ListView) findViewById (R.id.listView);

// 장치에 Bluetooth 어댑터가있는 경우 adapter = BluetoothAdapter.getDefaultAdapter ();

if (adapter == null) {// Toast.makeText (getApplicationContext (), "No Bluetooth Device available", Toast.LENGTH_LONG) .show ();를 사용할 수있는 어댑터 / 장치가없는 경우. 끝(); } else if (! adapter.isEnabled ()) // 어댑터가 사용 가능하면 {// 사용자에게 블루투스를 켜도록 요청합니다. Intent i1 = new Intent (BluetoothAdapter.ACTION_REQUEST_ENABLE); // 새 액티비티를 시작하려고합니다. startActivityForResult (i1,1); }

paired.setOnClickListener (new View.OnClickListener () {@Override public void onClick (View v) {pairedDevicesList (); // 함수 호출}});

}

/ / function private void pairedDevicesList () {/ * 일단 로컬 어댑터를 사용하면 getBondedDevices () * / paireddevices = adapter.getBondedDevices ();와 페어링 된 모든 장치를 나타내는 BluetoothDevice 객체 세트를 가져올 수 있습니다. ArrayList alist = 새로운 ArrayList ();

if (paireddevices.size ()> 0) // 쌍을 이루는 장치가있는 경우 {BluetoothDevice bt : paireddevices} {alist.add (bt.getName () + " n"+ bt.getAddress ()); // 장치 이름과 주소를 가져옵니다.}} else {Toast.makeText (getApplicationContext (), "페어링 된 블루투스 장치가 없습니다.", Toast.LENGTH_LONG) .show (); } // 스크롤 가능한 항목의 세로 목록을 표시합니다. 어댑터를 사용하여 데이터가 채워진 ListView를 사용합니다. / * ArrayAdapter에는보기로 변환 할 항목의 유형 (이 경우 String)이 필요하며 컨텍스트 (활동 인스턴스), XML 항목 레이아웃 및 데이터 배열의 세 가지 인수를받습니다. 각 항목의 레이아웃으로 간단한 TextView 인 simple_list_item_1.xml을 선택했습니다. * / 최종 ArrayAdapter adapter1 = 새로운 ArrayAdapter (this, android.R.layout.simple_list_item_1, alist); list.setAdapter (adapter1); list.setOnItemClickListener (myListClickListener); // 목록에서 장치를 클릭 할 때 호출되는 메서드}

전용 AdapterView.OnItemClickListener myListClickListener = 새 AdapterView.OnItemClickListener () {공공 무효 onItemClick (AdapterView

4 단계 : Led 활동 설계

새 빈 활동에 대한 절차 그림.

그림은 그림과 같이 활동을 이끌었다.

5 단계 : 코드 주도 활동

package com.example.kulwinder.ledcontrol;

android.app.ProgressDialog 가져 오기 android.bluetooth.BluetoothAdapter 가져 오기 android.bluetooth.BluetoothDevice;를 가져 오십시오. android.bluetooth.BluetoothSocket 가져 오기; import android.content.Intent; android.os.AsyncTask 가져 오기; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.SeekBar; import android.widget.TextView; import android.widget.Toast; import java.io.IOException; import java.util.UUID;

공용 클래스 LED가 AppCompatActivity {

버튼 on, off, discon, exit; SeekBar 밝기; TextView 값; 문자열 주소 = null; private ProgressDialog progress; // 진행 막대는 작업의 진행 상황을 표시하는 데 사용됩니다. BluetoothAdapter adapter = null; // 로컬 장치를 나타냄 Bluetooth 어댑터 BluetoothSocket socket = null; // 소켓은 두 컴퓨터 간의 통신을위한 끝점입니다. private boolean isBtConnected = false;

static final UUID myuuid = UUID.fromString ( "00001101-0000-1000-8000-00805F9B34FB"); / * uuid는 정보를 고유하게 식별하는 데 사용됩니다. Bluetooth 장치가 제공하는 특정 서비스를 식별합니다. * / @Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_led); //이 작업을 봅니다.

Intent newint = getIntent (); / * 수신 데이터에 대해 d = 다른 활동에서 …. 여기에 목록 활동에서 선택된 페어링 된 장치의 주소가 수신됩니다. * / address = newint.getStringExtra (list.EXTRA_ADDRESS);

// 위젯을 호출 = (Button) findViewById (R.id.onbt); off = (버튼) findViewById (R.id.offbt); discon = (버튼) findViewById (R.id.disconnectbt); exit = (Button) findViewById (R.id.backbt); value = (TextView) findViewById (R.id.value); 밝기 = (SeekBar) findViewById (R.id.brightsb);

새로운 connectbluetooth (). execute (); // 연결 함수 호출

// Click on onsetOnClickListener (new View.OnClickListener () {@Override public void onClick (View v) {onled (); // 버튼 클릭시 onled 함수 호출}});

off.setOnClickListener (새 View.OnClickListener () {@Override public void onClick (뷰 v) {offled ();}}));

discon.setOnClickListener (새로운 View.OnClickListener () {@Override public void onClick (View v) {disconnect ();}}));

exit.setOnClickListener (새 View.OnClickListener () {@Override public void onClick (뷰 v) {System.exit (0);

brightness.setOnSeekBarChangeListener (새 SeekBar.OnSeekBarChangeListener () {@Override 진행률 수준이되면 클라이언트에 알리는 콜백 (SeekBar seekBar, int progress, boolean fromUser) {if (fromUser == true) // (fromUser) = seekbar 값을 텍스트 필드 값으로 출력 try {socket.getOutputStream (). write (String.valueOf (progress) .getBytes ()); // 값 보내기 블루투스 소켓과 소켓으로 진행하면 블루투스 모듈로 전송} catch (IOException e) {

}
} }

@Override public void onStartTrackingTouch (SeekBar seekBar) {}

@Override public void onStopTrackingTouch (SeekBar seekBar) {}

}); }

private void message (String a) {Toast.makeText (getApplicationContext (), a, Toast.LENGTH_LONG) .show (); // 3.5 초 동안 화면에 메시지를 표시}

private void onled () {if (socket! = null) {try {socket.getOutputStream (). write ( "on".toString (). getBytes ()); // 블루투스 모듈에 "on"을 전송} catch (IOException e) {message ( "Error"); // 문자열 보내기 s = 메시지 함수에 "Error"}}}

private void offled () {if (socket! = null) {try {socket.getOutputStream (). write ( "off".toString (). getBytes ()); // 블루투스 모듈에 "꺼짐"을 전송} catch (IOException e) {message ( "Error"); // 문자열 보내기 s = 메시지 함수에 "Error"}}}

private void disconnect () {if (socket! = null) {try {socket.close (); } catch (IOException e) {message ( "Error"); // 문자열 보내기 s = "Error"to message function}} finish (); }

// 비동기 작업은 백그라운드 스레드에서 실행되고 결과가 UI 스레드에 게시되는 계산에 의해 정의됩니다. 개인 클래스 connectbluetooth AsyncTask 확장 (private 부울 ConnectSuccess = true;

@Override protected void onPreExecute () {진행 = ProgressDialog.show (LED.this, "Connecting …", "Please wait !!!"); // 연결 진행 상황을 표시}

@Override protected void doInBackground (void … devices) // 진행 대화 상자가 표시되어있는 동안 연결이 백그라운드에서 수행됩니다 {try {if (socket == null ||! isBtConnected) // 블루투스 장치가 연결되지 않은 경우 {adapter = BluetoothAdapter.getDefaultAdapter (); // 모바일 블루투스 장치 가져 오기 BluetoothDevice device = adapter.getRemoteDevice (address); // 장치 주소에 연결하고 사용 가능한지 확인합니다. socket = device.createInsecureRfcommSocketToServiceRecord (myuuid); // RFCOMM을 만듭니다. (SPP) 연결 BluetoothAdapter.getDefaultAdapter (). cancelDiscovery (); // 권한 요청 … 그래서 socket.connect (); // 연결 시작}} catch (IOException e) {ConnectSuccess = false; // 연결 시도가 실패하면 여기에서 예외를 확인할 수 있습니다. return null; } @Override protected void onPostExecute (Void result) // doInBackground 후에 모든 것이 잘되었는지 검사합니다. {super.onPostExecute (result);

if (! ConnectSuccess) {message ( "연결 실패. 다시 시도하십시오."); 끝(); } else {message ( "Connected."); isBtConnected = true; } progress.dismiss (); // 진행 막대를 닫습니다. 즉 작업}}

}

6 단계 : Apk 만들기

이제 응용 프로그램에 대한 apk 만들기 ->

빌드 -> 빌드 apk로 이동하십시오.

이제 앱을 설치하고 모바일을 통한 주도권 행사를 즐기십시오.

당신은 링크에서 전체 안드로이드 파일을 다운로드 할 수 있습니다 :

http://drive.google.com/open?id=0B4eY-jcXDOueX0M5WFktZHdLQ2s

어떤 검색어라도 자유롭게 쓸 수 있다면.

고맙습니다!