Android ও Arduino দিয়ে নিয়ন্ত্রণ করুন বাসার বিভিন্ন সুইচ ,পর্ব ২

আগের পর্বে আমারা যতদূর করেছি তার ফলে এ রকম একটা ডিসপ্লে তৈরি হয়

এনড্রয়েড ডিসপ্লের উদাহরণ

এখন আসল কাজে আসা যাক।

বাম পাসের টুলবার থেকে জাভা এর ভিতর তিনটি জাভা ফাইল তৈরি করি যার একটা করা আছে...
১.MainActivity.java

২.ListDivices.java

৩.HomeAutomationActivity.java

এবার ফাইল তিনটিতে নিচের মত করে কোড গুলো লিখে দি।।

****MainActivity.java
package com.homeautomation;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Set;
import java.util.UUID;

import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothSocket;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.widget.ToggleButton;

publicclass MainActivity extends Activity {
 BluetoothAdapter mBluetoothAdapter;
 BluetoothSocket mmSocket;
 BluetoothDevice mmDevice;
 OutputStream mmOutputStream;
 InputStream mmInputStream;
 Editable nameb;
 String blname;
 intstat;
 finalintAPPLY_ACTIVE = 1;
 finalintAPPLY_CONNECTION = 2;
 String DEVICE = null;
 EditText name;

 @Override
 protectedvoid onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
  setContentView(R.layout.activity_main);
  getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
    R.layout.actionbar);
  name = (EditText) (findViewById(R.id.bluetoothName));
  Button ok = (Button) (findViewById(R.id.button1));
  Button connect = (Button) findViewById(R.id.button2);

  ok.setOnClickListener(new View.OnClickListener() {

   publicvoid onClick(View v) {
    // TODO Auto-generated method stub
    Intent openList = new Intent(MainActivity.this,
      ListDivices.class);
    startActivityForResult(openList, APPLY_CONNECTION);
   }
  });
  connect.setOnClickListener(new View.OnClickListener() {

   @Override
   publicvoid onClick(View v) {
    // TODO Auto-generated method stub
    nameb = name.getText();
    blname = nameb.toString();
    if (!blname.equals("")) {
     try {
      findBT();
      stat = 1;
     } catch (IOException e) {
      stat = 0;
      e.printStackTrace();
     }
    } else {
     Toast.makeText(getApplicationContext(),
       "First add your device then press connect",
       Toast.LENGTH_SHORT).show();
    }
   }
  });

  final ToggleButton fan = (ToggleButton) findViewById(R.id.toggleButton1);
  fan.setOnClickListener(new View.OnClickListener() {

   publicvoid onClick(View v) {
    // TODO Auto-generated method stub
    if (fan.isChecked()) {
     if (stat == 1) {
      try {
       mmOutputStream.write('1');
      } catch (IOException e) {
       // TODO Auto-generated catch block
       Toast.makeText(
         MainActivity.this,
         "Connection not established with your home",
         Toast.LENGTH_SHORT).show();
       e.printStackTrace();
      }
     } else
      Toast.makeText(MainActivity.this,
        "Connection not established with your home",
        Toast.LENGTH_SHORT).show();
    } else {
     if (stat == 1) {
      try {
       mmOutputStream.write('2');
      } catch (IOException e) {
       // TODO Auto-generated catch block
       Toast.makeText(
         MainActivity.this,
         "Connection not established with your home",
         Toast.LENGTH_SHORT).show();
       e.printStackTrace();
      }
     } else
      Toast.makeText(MainActivity.this,
        "Connection not established with your home",
        Toast.LENGTH_SHORT).show();
    }
   }
  });

  final ToggleButton light1 = (ToggleButton) findViewById(R.id.toggleButton2);
  light1.setOnClickListener(new View.OnClickListener() {

   publicvoid onClick(View v) {
    // TODO Auto-generated method stub
    if (light1.isChecked()) {
     if (stat == 1) {
      try {
       mmOutputStream.write('3');
      } catch (IOException e) {
       // TODO Auto-generated catch block
       Toast.makeText(
         MainActivity.this,
         "Connection not established with your home",
         Toast.LENGTH_SHORT).show();
       e.printStackTrace();
      }
     } else
      Toast.makeText(MainActivity.this,
        "Connection not established with your home",
        Toast.LENGTH_SHORT).show();
    } else {
     if (stat == 1) {
      try {
       mmOutputStream.write('4');
      } catch (IOException e) {
       // TODO Auto-generated catch block
       Toast.makeText(
         MainActivity.this,
         "Connection not established with your home",
         Toast.LENGTH_SHORT).show();
       e.printStackTrace();
      }
     } else
      Toast.makeText(MainActivity.this,
        "Connection not established with your home",
        Toast.LENGTH_SHORT).show();
    }
   }
  });

  final ToggleButton light2 = (ToggleButton) findViewById(R.id.toggleButton3);
  light2.setOnClickListener(new View.OnClickListener() {

   publicvoid onClick(View v) {
    // TODO Auto-generated method stub
    if (light2.isChecked()) {
     if (stat == 1) {
      try {
       mmOutputStream.write('5');
      } catch (IOException e) {
       // TODO Auto-generated catch block
       Toast.makeText(
         MainActivity.this,
         "Connection not established with your home",
         Toast.LENGTH_SHORT).show();
       e.printStackTrace();
      }
     } else
      Toast.makeText(MainActivity.this,
        "Connection not established with your home",
        Toast.LENGTH_SHORT).show();
    } else {
     if (stat == 1) {
      try {
       mmOutputStream.write('6');
      } catch (IOException e) {
       // TODO Auto-generated catch block
       Toast.makeText(
         MainActivity.this,
         "Connection not established with your home",
         Toast.LENGTH_SHORT).show();
       e.printStackTrace();
      }
     } else
      Toast.makeText(MainActivity.this,
        "Connection not established with your home",
        Toast.LENGTH_SHORT).show();
    }
   }
  });

  final ToggleButton light3 = (ToggleButton) findViewById(R.id.toggleButton4);
  light3.setOnClickListener(new View.OnClickListener() {

   publicvoid onClick(View v) {
    // TODO Auto-generated method stub
    if (light3.isChecked()) {
     if (stat == 1) {
      try {
       mmOutputStream.write('7');
      } catch (IOException e) {
       // TODO Auto-generated catch block
       Toast.makeText(
         MainActivity.this,
         "Connection not established with your home",
         Toast.LENGTH_SHORT).show();
       e.printStackTrace();
      }
     } else
      Toast.makeText(MainActivity.this,
        "Connection not established with your home",
        Toast.LENGTH_SHORT).show();
    } else {
     if (stat == 1) {
      try {
       mmOutputStream.write('8');
      } catch (IOException e) {
       // TODO Auto-generated catch block
       Toast.makeText(
         MainActivity.this,
         "Connection not established with your home",
         Toast.LENGTH_SHORT).show();
       e.printStackTrace();
      }
     } else
      Toast.makeText(MainActivity.this,
        "Connection not established with your home",
        Toast.LENGTH_SHORT).show();
    }
   }
  });

  final ToggleButton tv = (ToggleButton) findViewById(R.id.toggleButton5);
  tv.setOnClickListener(new View.OnClickListener() {

   publicvoid onClick(View v) {
    // TODO Auto-generated method stub
    if (tv.isChecked()) {
     if (stat == 1) {
      try {
       mmOutputStream.write('9');
      } catch (IOException e) {
       // TODO Auto-generated catch block
       Toast.makeText(
         MainActivity.this,
         "Connection not established with your home",
         Toast.LENGTH_SHORT).show();
       e.printStackTrace();
      }
     } else
      Toast.makeText(MainActivity.this,
        "Connection not established with your home",
        Toast.LENGTH_SHORT).show();
    } else {
     if (stat == 1) {
      try {
       mmOutputStream.write('0');
      } catch (IOException e) {
       // TODO Auto-generated catch block
       Toast.makeText(
         MainActivity.this,
         "Connection not established with your home",
         Toast.LENGTH_SHORT).show();
       e.printStackTrace();
      }
     } else
      Toast.makeText(MainActivity.this,
        "Connection not established with your home",
        Toast.LENGTH_SHORT).show();
    }
   }
  });

 }

 void findBT() throws IOException {
  mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
  // if(mBluetoothAdapter == null)
  // {
  // myLabel.setText("No bluetooth adapter available");
  // }

  if (!mBluetoothAdapter.isEnabled()) {
   Intent enableBluetooth = new Intent(
     BluetoothAdapter.ACTION_REQUEST_ENABLE);
   startActivityForResult(enableBluetooth, 1);

  }

  Set<BluetoothDevice> pairedDevices = mBluetoothAdapter
    .getBondedDevices();
  if (pairedDevices.size() > 0) {
   for (BluetoothDevice device : pairedDevices) {
    if (device.getName().equals(blname))
    // FireFly-B1A7Change to the name of your bluetooth module (Case
    // sensitive)
    {
     mmDevice = device;
     break;
    }
   }
  }
  // myLabel.setText("Bluetooth Device Found");

  UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb"); // Standard
                    // //SerialPortService
                    // ID

  mmSocket = mmDevice.createRfcommSocketToServiceRecord(uuid);

  mmSocket.connect();
  mmOutputStream = mmSocket.getOutputStream();
  mmInputStream = mmSocket.getInputStream();
 }

 @Override
 publicboolean onCreateOptionsMenu(Menu menu) {
  getMenuInflater().inflate(R.menu.main, menu);
  returntrue;
 }

 @Override
 publicboolean onOptionsItemSelected(MenuItem item) {
  super.onOptionsItemSelected(item);

  switch (item.getItemId()) { // Get id from R.java file
  case R.id.action_about:
   startActivity(new Intent(this, About.class));
   break;
  }
  returntrue;
 }

 @Override
 protectedvoid onActivityResult(int requestCode, int resultCode, Intent data) {
  switch (requestCode) {
  caseAPPLY_ACTIVE:
   if (resultCode == Activity.RESULT_OK) {
    Toast.makeText(getApplicationContext(),
      "Bluetooth is activated", Toast.LENGTH_SHORT).show();
   } else {
    Toast.makeText(getApplicationContext(),
      "Bluetooth is not activated", Toast.LENGTH_SHORT)
      .show();
    finish();
   }
   break;
  caseAPPLY_CONNECTION:
   if (resultCode == Activity.RESULT_OK) {
    DEVICE = data.getExtras().getString("name");
    Toast.makeText(getApplicationContext(),
      "Device " + DEVICE + " is selected", Toast.LENGTH_SHORT)
      .show();
    name.setText(DEVICE);
   } else {
    Toast.makeText(getApplicationContext(),
      "Please pair your device & select it",
      Toast.LENGTH_SHORT).show();
   }

  default:
   break;
  }
 }
}

 

****ListDivices.java
package com.homeautomation;
import java.util.Set;

import android.app.ListActivity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

publicclass ListDivices extends ListActivity {
 BluetoothAdapter myBluetooth;
 static String MAC_ADDRESS = null;
 String DeviceName;
 String list[];

 @Override
 protectedvoid onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  ArrayAdapter<String> ArrayBluetooth = new ArrayAdapter<String>(this,
    android.R.layout.simple_list_item_1);
  myBluetooth = BluetoothAdapter.getDefaultAdapter();
  Set<BluetoothDevice> pairedDevices = myBluetooth.getBondedDevices();
  if (pairedDevices.size() > 0) {
   for (BluetoothDevice paired : pairedDevices) {
    DeviceName = paired.getName();
    ArrayBluetooth.add(DeviceName);
   }
  }
  setListAdapter(ArrayBluetooth);
 }

 @Override
 protectedvoid onListItemClick(ListView l, View v, int position, long id) {
  super.onListItemClick(l, v, position, id);
  String infoGeneral = ((TextView) v).getText().toString();
  Intent returnMac = new Intent();
  returnMac.putExtra("DeviceName", infoGeneral);
  setResult(RESULT_OK, returnMac);
  finish();

 }
}

 

****HomeAutomationActivity.java

package com.homeautomation;

import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;

publicclass HomeAutomationActivity extends Activity {
 /** Called when the activity is first created. */ BluetoothAdapter mBluetoothAdapter;

 @Override
 publicvoid onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  startActivity(new Intent(this, MainActivity.class));
  mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
  if (mBluetoothAdapter == null) {
   Toast.makeText(this, "Bluetooth is not available",
     Toast.LENGTH_SHORT).show();
   finish();
   return;
  }
 }

 publicvoid onStart() {
  super.onStart();
  if (!mBluetoothAdapter.isEnabled()) {
   Intent enableIntent = new Intent(
     BluetoothAdapter.ACTION_REQUEST_ENABLE);
   startActivityForResult(enableIntent, 3);
   finish();
   // Otherwise, setup the chat session
  }
 }

 @Override
 protectedvoid onDestroy() {
  // TODO Auto-generated method stub
  super.onDestroy();
 }

 @Override
 protectedvoid onPause() {
  // TODO Auto-generated method stub
  super.onPause();
 }

 @Override
 protectedvoid onResume() {
  // TODO Auto-generated method stub
  super.onResume();
 }

}

 

main activity.java ফাইল এর ভিতর লক্ষ করিঃ

Related Post

mmoutputstream.write(‘সংখ্যা’);

একটা লাইন প্রতিটা বাটন এর জন্য দুই বার করে দেয়া আছে।
এখানে fan অনের জন্য “1” এবং অফের জন্য  “2” দেয়া আছে যা fan button টি তে টাচ করলে arduino তে পাঠাবে।

আপনি প্রতিটা বাটন এর জন্য এভাবে কমান্ড ঠিক করে দিবেন।

এবার রান এ ক্লিক করুণ।

*** \Android Workspace\homeautomation\app\build\outputs\ এরকম এড্রেস এ আপনি apk টা পাবেন ।

.APK  ফাইল টি এই খান থেকে ডাউনলড করে নিতে পারেন

পরিচ্ছেদসমূহ

পর্ব-১

পর্ব-৩

 

 

This post was last modified on August 21, 2016 8:05 pm

ejbiswas

আমি "জয় বিশ্বাস", NWU এ EEE তে লেখাপড়া করছি। আমার সাথে যোগাযোগ করতে ফেসবুকে ম্যাসেজ করতে পারেন, fb/ejbiswas

কমেন্ট দেখুন

  • এটা কি বাস্তবে চেক করা

    Cancel reply

    Leave a Reply

    Your email address will not be published. Required fields are marked*

    • হুম

      Cancel reply

      Leave a Reply

      Your email address will not be published. Required fields are marked*

Leave a Reply

Your email address will not be published. Required fields are marked*

Share
Published by

Recent Posts

করোনা ভাইরাস প্রতিরোধে হ্যান্ড ওয়াশ চ্যালেঞ্জ - হ্যান্ড ওয়াশ টাইমার তৈরি করুন সহজেই

করোনা ভাইরাসের ভয়াবহতা নিয়ে আপনাদের বলার মত কিছু নেই। এটি যেকোনো জায়গায় থাকতে পারে এবং…

March 24, 2020

আরডুইনো দিয়ে স্ক্রলিং এলইডি মেসেজ ডিসপ্লে (ভিডিও সহ)

সকল বন্ধুদের স্বাগতম আমার আরডুইনো দিয়ে স্ক্রলিং এলইডি মেসেজ ডিসপ্লে প্রজেক্টে। এটা খুবই মজার একটি প্রজেক্ট।…

November 28, 2017

ভোঁতা ড্রিল বিট ধারালো করে নিন সহজেই (ভিডিও টিউটোরিয়াল)

ড্রিল বিট এর ধার দ্রুত ক্ষয়ে যায়। পিসিবি ড্রিল মেশিন গুলোতে ব্যবহৃত বিট গুলোকে চাইলে…

June 24, 2017

পাওয়ার ট্রান্সফরমার তৈরী করবার হিসাব নিকাশ (ক্যালকুলেটর সহ)

ভূমিকা পাওয়ার ট্রান্সফরমার তৈরী করতে চান অনেকেই। এই লেখার মাধ্যমে এটি তৈরী করবার প্রয়োজনীয় ক্যালকুলেশন…

June 16, 2017

তৈরি করুন সহজ কোড লক সিকিউরিটি সুইচ

কোড লক সিকিউরিটি সুইচ আমরা প্রায়ই মুভিতে দেখি। যেখানে নির্দিষ্ট কোড ঢুকানোর পর কোন সুইচ…

June 12, 2017

মাল্টিমিটার দিয়ে ট্রানজিস্টর এর বেজ, ইমিটার ও কালেক্টর লেগ বের করা

মাল্টিমিটার দিয়ে কিভাবে কোনো ট্রানজিস্টর এর বেজ, ইমিটার ও কালেক্টর (Base, Emitter & Collector) বের…

June 2, 2017