Teléfono control iluminación del humor de (10 / 12 paso)

Paso 10: Incorporar tiras de LED

Ahora que se conecta a la pantalla Seeed Bluetooth en Arduino y envían caracteres, es hora de empezar a controlar las tiras LED.

Ejecute el siguiente sketch en Arduino:

 /* Phone Controlled Mood Lighting - Arduino Code by Nicole Grimwood Based upon: Seeed Wiki Bluetooth slave code http://www.seeedstudio.com/wiki/index.php?title=Bluetooth_Shield Pololu LED Strip Example Code https://github.com/pololu/pololu-led-strip-arduino This code is in the public domain. */ #include <avr/pgmspace.h> #include <SoftwareSerial.h> // Software Serial Port #include <PololuLedStrip.h> #define RxD 6 // This is the pin that the Bluetooth (BT_TX) will transmit to the Arduino (RxD) #define TxD 7 // This is the pin that the Bluetooth (BT_RX) will receive from the Arduino (TxD) #define DEBUG_ENABLED 1 // Create an ledStrip object on pin 12. PololuLedStrip<12> ledStrip; // Create a buffer for holding 3 colors. Takes 180 bytes. #define LED_COUNT 3 rgb_color colors[LED_COUNT]; SoftwareSerial blueToothSerial(RxD,TxD); #define DATA_1 (PORTC |= 0X01) // DATA 1 #define DATA_0 (PORTC &= 0XFE) // DATA 0 #define STRIP_PINOUT (DDRC=0xFF) void setup() { // Set interrupt friendly to true so that the LED // strips work with the bluetooth shield PololuLedStripBase::interruptFriendly=true; pinMode(RxD, INPUT); // Setup the Arduino to receive INPUT from the bluetooth shield on Digital Pin 6 pinMode(TxD, OUTPUT); // Setup the Arduino to send data (OUTPUT) to the bluetooth shield on Digital Pin 7 setupBlueToothConnection(); // Used to initialize the Bluetooth shield } void loop() { char recvChar; while(1){ if(blueToothSerial.available()){ // check if there's any data sent from the remote bluetooth shield recvChar = blueToothSerial.read(); Serial.print(recvChar); // Print the character received to the Serial Monitor (if required) // if the character received is a, use the white pattern if(recvChar=='a'){ delay(500); // necessary for LED strips to work with bluetooth shield //used to assign colors to each of the 3 sections of the LED strips colors[0]=(rgb_color){250,250,250}; colors[1]=(rgb_color){250,250,250}; colors[2]=(rgb_color){250,250,250}; ledStrip.write(colors, LED_COUNT); } // if character received is b, use the pink pattern if(recvChar=='b'){ delay(500); colors[0]=(rgb_color){250,220,0}; colors[1]=(rgb_color){250,220,0}; colors[2]=(rgb_color){250,220,0}; ledStrip.write(colors, LED_COUNT); } // if character received is c, use the red and orange pattern if(recvChar=='c'){ delay(500); colors[0]=(rgb_color){250,0,0}; colors[1]=(rgb_color){250,0,230}; colors[2]=(rgb_color){250,0,0}; ledStrip.write(colors, LED_COUNT); } // if character received is d, use the blue and purple pattern if(recvChar=='d'){ delay(500); colors[0]=(rgb_color){0,220,0}; colors[1]=(rgb_color){50,220,0}; colors[2]=(rgb_color){0,220,0}; ledStrip.write(colors, LED_COUNT); } } } } // The following code is necessary to setup the bluetooth shield void setupBlueToothConnection(){ blueToothSerial.begin(38400); //Set BluetoothBee BaudRate to default baud rate 38400 blueToothSerial.print("\r\n+STWMOD=0\r\n"); //set the bluetooth work in slave mode blueToothSerial.print("\r\n+STNA=SeeedBTSlave\r\n"); //set the bluetooth name as "SeeedBTSlave" blueToothSerial.print("\r\n+STOAUT=1\r\n"); // Permit Paired device to connect me blueToothSerial.print("\r\n+STAUTO=0\r\n"); // Auto-connection should be forbidden here delay(2000); // This delay is required. blueToothSerial.print("\r\n+INQ=1\r\n"); //make the slave bluetooth inquirable Serial.println("The slave bluetooth is inquirable!"); delay(2000); // This delay is required. blueToothSerial.flush(); } 

Ejecute el siguiente bosquejo en el dispositivo Android:

 /* Phone Controlled Mood Lighting - Android Sketch by Nicole Grimwood Based upon: BluetoothApp1 created on March 25, 2013 by ScottC */ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.widget.Toast; import android.view.Gravity; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import java.util.UUID; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import android.os.Handler; import android.os.Message; import android.util.Log; import android.bluetooth.BluetoothServerSocket; import android.bluetooth.BluetoothSocket; import apwidgets.*; public BluetoothSocket scSocket; //Used for the GUI************************************** APWidgetContainer widgetContainer; APButton whiteButton, pinkButton, redOrangeButton, blueButton; String buttonText=""; int buttonWidth=0; int buttonHeight=0; int n=5; //number of buttons int gap=10; //gap between buttons boolean foundDevice=false; //When true, the screen turns green. boolean BTisConnected=false; //When true, the screen turns purple. // Message types used by the Handler public static final int MESSAGE_WRITE = 1; public static final int MESSAGE_READ = 2; String readMessage=""; //Used to send bytes to the Arduino SendReceiveBytes sendReceiveBT=null; //Get the default Bluetooth adapter BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter(); /*The startActivityForResult() within setup() launches an Activity which is used to request the user to turn Bluetooth on. The following onActivityResult() method is called when this Activity exits. */ protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode==0) { if (resultCode == RESULT_OK) { ToastMaster("Bluetooth has been switched ON"); } else { ToastMaster("You need to turn Bluetooth ON !!!"); } } } /* Create a BroadcastReceiver that will later be used to receive the names of Bluetooth devices in range. */ BroadcastReceiver myDiscoverer = new myOwnBroadcastReceiver(); /* Create a BroadcastReceiver that will later be used to identify if the Bluetooth device is connected */ BroadcastReceiver checkIsConnected = new myOwnBroadcastReceiver(); // The Handler that gets information back from the Socket private final Handler mHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case MESSAGE_WRITE: //Do something when writing break; case MESSAGE_READ: //Get the bytes from the msg.obj byte[] readBuf = (byte[]) msg.obj; // construct a string from the valid bytes in the buffer readMessage = new String(readBuf, 0, msg.arg1); break; } } }; void setup() { orientation(LANDSCAPE); //Setup GUI******************************** buttonWidth=((width/n)-(n*gap)); buttonHeight=(height/2); widgetContainer = new APWidgetContainer(this); //create new container for widgets whiteButton =new APButton((buttonWidth*(n-5)+(gap*1)), gap, buttonWidth, buttonHeight, "White"); //Create a color fade button pinkButton = new APButton((buttonWidth*(n-4)+(gap*2)), gap, buttonWidth, buttonHeight, "Pink"); //Create a pattern button redOrangeButton = new APButton((buttonWidth*(n-3)+(gap*3)), gap, buttonWidth, buttonHeight, "Red Orange"); //Create a red orange button blueButton = new APButton((buttonWidth*(n-2)+(gap*4)), gap, buttonWidth, buttonHeight, "Blue"); //Create a blue button widgetContainer.addWidget(whiteButton); //place color fade button in container widgetContainer.addWidget(pinkButton); //place pattern fade button in container widgetContainer.addWidget(redOrangeButton);//place red orange button in container widgetContainer.addWidget(blueButton);//place blue button in container background(0); //Start with a black background /*IF Bluetooth is NOT enabled, then ask user permission to enable it */ if (!bluetooth.isEnabled()) { Intent requestBluetooth = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(requestBluetooth, 0); } /*If Bluetooth is now enabled, then register a broadcastReceiver to report any discovered Bluetooth devices, and then start discovering */ if (bluetooth.isEnabled()) { registerReceiver(myDiscoverer, new IntentFilter(BluetoothDevice.ACTION_FOUND)); registerReceiver(checkIsConnected, new IntentFilter(BluetoothDevice.ACTION_ACL_CONNECTED)); //Start bluetooth discovery if it is not doing so already if (!bluetooth.isDiscovering()) { bluetooth.startDiscovery(); } } } void draw() { //Display a green screen if a device has been found, //Display a purple screen when a connection is made to the device if (foundDevice) { if (BTisConnected) { background(200, 70, 255); // purple screen } else { background(0, 200, 50); // green screen } } //Change the text based on the button being pressed. text(buttonText, 20, buttonHeight+(buttonHeight/2)); } /* This BroadcastReceiver will display discovered Bluetooth devices */ public class myOwnBroadcastReceiver extends BroadcastReceiver { ConnectToBluetooth connectBT; public void onReceive(Context context, Intent intent) { String action=intent.getAction(); ToastMaster("ACTION:" + action); //Notification that BluetoothDevice is FOUND if (BluetoothDevice.ACTION_FOUND.equals(action)) { //Display the name of the discovered device String discoveredDeviceName = intent.getStringExtra(BluetoothDevice.EXTRA_NAME); ToastMaster("Discovered: " + discoveredDeviceName); // Display more information about the discovered device BluetoothDevice discoveredDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); //Change foundDevice to true which will make the screen turn green foundDevice=true; //Connect to the discovered bluetooth device (SeeedBTSlave) if (discoveredDeviceName.equals("SeeedBTSlave")) { ToastMaster("Connecting you Now !!"); unregisterReceiver(myDiscoverer); connectBT = new ConnectToBluetooth(discoveredDevice); //Connect to the the device in a new thread new Thread(connectBT).start(); } } //Notification if bluetooth device is connected if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) { ToastMaster("CONNECTED _ YAY"); int counter=0; while (scSocket==null) { //do nothing } ToastMaster("scSocket" + scSocket); BTisConnected=true; //turn screen purple if (scSocket!=null) { sendReceiveBT = new SendReceiveBytes(scSocket); new Thread(sendReceiveBT).start(); String begin = "a"; byte[] myByte = stringToBytesUTFCustom(begin); sendReceiveBT.write(myByte); } } } } public static byte[] stringToBytesUTFCustom(String str) { char[] buffer = str.toCharArray(); byte[] b = new byte[buffer.length << 1]; for (int i = 0; i < buffer.length; i++) { int bpos = i << 1; b[bpos] = (byte) ((buffer[i]&0xFF00)>>8); b[bpos + 1] = (byte) (buffer[i]&0x00FF); } return b; } public class ConnectToBluetooth implements Runnable { private BluetoothDevice btShield; private BluetoothSocket mySocket = null; private UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); public ConnectToBluetooth(BluetoothDevice bluetoothShield) { btShield = bluetoothShield; try { mySocket = btShield.createRfcommSocketToServiceRecord(uuid); } catch(IOException createSocketException) { //Problem with creating a socket Log.e("ConnectToBluetooth", "Error with Socket"); } } public void run() { /* Cancel discovery on Bluetooth Adapter to prevent slow connection */ bluetooth.cancelDiscovery(); try { /*Connect to the bluetoothShield through the Socket. This will block until it succeeds or throws an IOException */ mySocket.connect(); scSocket=mySocket; } catch (IOException connectException) { Log.e("ConnectToBluetooth", "Error with Socket Connection"); try { mySocket.close(); //try to close the socket } catch(IOException closeException) { } return; } } // Will allow you to get the socket from this class public BluetoothSocket getSocket() { return mySocket; } /* Will cancel an in-progress connection, and close the socket */ public void cancel() { try { mySocket.close(); } catch (IOException e) { } } } private class SendReceiveBytes implements Runnable { private BluetoothSocket btSocket; private InputStream btInputStream = null; ; private OutputStream btOutputStream = null; String TAG = "SendReceiveBytes"; public SendReceiveBytes(BluetoothSocket socket) { btSocket = socket; try { btInputStream = btSocket.getInputStream(); btOutputStream = btSocket.getOutputStream(); } catch (IOException streamError) { Log.e(TAG, "Error when getting input or output Stream"); } } public void run() { byte[] buffer = new byte[1024]; // buffer store for the stream int bytes; // bytes returned from read() // Keep listening to the InputStream until an exception occurs while (true) { try { // Read from the InputStream bytes = btInputStream.read(buffer); // Send the obtained bytes to the UI activity mHandler.obtainMessage(MESSAGE_READ, bytes, -1, buffer) .sendToTarget(); } catch (IOException e) { Log.e(TAG, "Error reading from btInputStream"); break; } } } /* Call this from the main activity to send data to the remote device */ public void write(byte[] bytes) { try { btOutputStream.write(bytes); } catch (IOException e) { Log.e(TAG, "Error when writing to btOutputStream"); } } /* Call this from the main activity to shutdown the connection */ public void cancel() { try { btSocket.close(); } catch (IOException e) { Log.e(TAG, "Error when closing the btSocket"); } } } /* My ToastMaster function to display a messageBox on the screen */ void ToastMaster(String textToDisplay) { Toast myMessage = Toast.makeText(getApplicationContext(), textToDisplay, Toast.LENGTH_SHORT); myMessage.setGravity(Gravity.CENTER, 0, 0); myMessage.show(); } //onClickWidget is called when a widget is clicked/touched void onClickWidget(APWidget widget) { String sendLetter = ""; //Disable the previous Background colour changers foundDevice=false; BTisConnected=false; if (widget == whiteButton) { //if the red button was clicked buttonText="white"; background(0, 255, 100); sendLetter = "a"; } else if(widget == pinkButton){ buttonText = "Pink"; background(0, 200,200); sendLetter = "b"; } else if (widget == redOrangeButton) { //if the blue button was clicked buttonText="Red Orange"; background(255, 90, 0); sendLetter = "c"; } else if (widget == blueButton) { //if the off button was clicked buttonText="Blue"; background(50,100,155); sendLetter = "d"; } byte[] myByte = stringToBytesUTFCustom(sendLetter); sendReceiveBT.write(myByte); } 

Una vez que todo este código que se ejecuta, debe ser capaz de pulsar los botones de la aplicación para cambiar el color de las tiras LED. Nota: Si el teléfono está inactivo durante demasiado tiempo, usted perderá la conexión bluetooth y debe cerrar la aplicación en el teléfono y desconecte el tablero ligero. Puede enchufar otra vez la Junta y volver a abrir la aplicación y debe conectar de nuevo.

Artículos Relacionados

Control remoto de iluminación del humor de Arduino

Control remoto de iluminación del humor de Arduino

Combinar una franja de luz de LED de cierre con un minúsculo tablero de Arduino Pro Mini, agregar control remoto y tiene una configuración de iluminación de humor barato, versátil!La luz de mi dormitorio es en el techo. Es bonito y brillante, que es
Iluminación del humor de Arduino

Iluminación del humor de Arduino

este instructable le mostrará que para construir un sistema de iluminación rgb con un arduino. También se puede controlar con un ipod/iphone/ipad con touchOSC. En mi anterior instructable mostré cómo controlar un rgb llevado montones en esto que se p
Iluminación del humor usando recycleables

Iluminación del humor usando recycleables

quería algunos iluminación del humor en mi dormitorio y quería probar mi mano en el uso de LEDs, así que aquí es un artefacto de iluminación ambiente que utiliza LEDs de color rojo y emite suficiente luz y se ve realmente genial. Todo el diseño fue i
Teléfono soporte multi-herramienta del corte del laser

Teléfono soporte multi-herramienta del corte del laser

En este instructable les mostraré cómo hacer un láser de corte de soporte del teléfono. Su pequeño y portátil y fácil de usar, además de que tiene algunas características adicionales. Fáciles de hacer y muy adaptables a sus necesidades.Para este proy
Caja del teléfono de la cinta del conducto

Caja del teléfono de la cinta del conducto

Super fácil y creo que la caja del teléfono muy bien hecha de cinta adhesivaPaso 1: La Base de su cintaHacer una pieza de tela de Duck Tape® que es de 3 pulgadas de ancho y dos veces tan largo como la longitud de su teléfono.Paso 2: Hacer de la forma
Teléfono de la botella del animal doméstico de carga dock

Teléfono de la botella del animal doméstico de carga dock

hacer un simple teléfono de carga dock utilizando una botella de pet usadaPaso 1: Paso 1 Tomar una botella de Pet usada y desenvolver la etiquetaPaso 2: Paso 2 Dibujar una línea de corte junto con la botella y cortar la parte superior la mitad primer
Soporte de carga del teléfono de la cinta del conducto

Soporte de carga del teléfono de la cinta del conducto

Hoy vamos a hacer un soporte para evitar que el teléfono colgando hasta el suelo cuando está cargada de carga del teléfono. Pueden variar los colores para hacerlo más decorativo.Paso 1: Haga una hoja de cinta para ductosPaso 2: Hacer la bolsaAgregar
Luz negra en el teléfono o la luz del Flash!

Luz negra en el teléfono o la luz del Flash!

Paso 1: Recolectar ingredientes Reunir un oscuro azul expo o marcador, marcador de color púrpura oscuro y cinta. Cinta transparente funciona mejorPaso 2: cinta Tiene 3 pequeñas tiras de cinta.Paso 3: Color azul 2 de las tiras y de color azul en el la
Teléfono control luces LED RBG

Teléfono control luces LED RBG

RBG LED luz controlado por un simple teléfono. Se comunica por bluetooth. Todo lo que necesitas es un LED RBG, 3 resistencias, un módulo de bluetooth (como HC-05), placa arduino y un teléfono móvil con bluetooth.Cableado de datos y así como enlaces a
Teléfono inteligente soporte/sostenedor del PWB del

Teléfono inteligente soporte/sostenedor del PWB del

este s mi opinión sobre un DIY teléfono soporte. Instrucciones detalladas se pueden encontrar en mi sitio web en diy.viktak.com.
Iluminación del humor de gabinete de la TV

Iluminación del humor de gabinete de la TV

gire su TV gabinete en una decoración luz de estado de ánimo que cambia de color! Elegir colores para emparejar su estado de ánimo y compartir con amigos!Paso 1: Las lámparas LED con control remoto inalámbrico Paso 2: Se unió a una cadena de luces de
Teléfono control árbol de Navidad luces

Teléfono control árbol de Navidad luces

Me encanta Day de Chrismas, creo que es uno de los mejores días en el año. Siempre hacemos un bonito árbol de Navidad con mi familia, pero este año decidí que voy añadir alguna función extra a este árbol. Entonces hice un sistema de luz controlada po
Interfaz Bluetooth de Ford (teléfono Control con radio de acción)

Interfaz Bluetooth de Ford (teléfono Control con radio de acción)

Este es un proyecto que comencé hace aproximadamente un año. Es una interfaz Bluetooth para una radio de Ford y es un reemplazo directo para el cambiador de CD en mi 99 Ford Expedition! Todo lo que tienes que hacer es desenchufar el cambiador de CD y
Iluminación del humor de

Iluminación del humor de

esto es una gran noche de luz o sólo para tener atmósfera.Tomamos nuestro instructivo y había modificado un poco.Vaya al paso 7 para ver los cambios. No olvide revisar la lista aunque.Paso 1: materiales Titular de LEDLED (Color)Arandela guardabarrosI