Calabaza de Halloween pagar - NFC habilitado calabazas (2 / 3 paso)

Paso 2: El código

Esta vez he usado Java. He coloco todo el NetBeans proyecto aquí https://github.com/noelportugal/NFCHalloween

Esta es la clase principal:

 package com.noelportugal.halloween.nfc; import com.noelportugal.halloween.hue.HueBridgeLink; import com.noelportugal.halloween.hue.HueBridgeLinkCallback; import com.philips.lighting.hue.sdk.PHHueSDK; import com.philips.lighting.hue.sdk.utilities.PHUtilities; import com.philips.lighting.model.PHBridge; import com.philips.lighting.model.PHLight; import com.philips.lighting.model.PHLightState; import java.util.List; import java.util.Random; public class Main implements HueBridgeLinkCallback { static final byte PN532_MIFARE_ISO14443A = 0x00; static final String defaultColor = "0 0 0"; private Random rand = new Random(); private static PHHueSDK phHueSDK; private static PHBridge bridge; private static PHLightState lightState; private static final int maxBrightness = 254; private static final int minBrightness = 15; // Change to match your NFC tags private static final String[] UIDS = { "36076607291754756", "36358082404879876", "36358082404944388" }; private static final String[] GROUPS = { "AL", // 1 "BM", // 2 "CD", // 3 "E", // 4 "FGHIJK", // 5 }; private static final int[][] GROUP_COLORS = { {0,255,0}, // 1 Green {255,0,0}, // 2 Red {50,0,255}, // 3 Blue {200,255,0}, // 4 Yellow {255,0,255}, // 5 Purlple }; private static final int MAX_HUE = 65535; private int randomColor; public Main(){ // Prepare the Hue Bridge link HueBridgeLink bridgeLink = new HueBridgeLink(); bridgeLink.connect(this); phHueSDK = PHHueSDK.getInstance(); } public void onBridgeReady() { bridge = phHueSDK.getSelectedBridge(); allOff(); } private static float[] rgbGroupColor (int[] groupColors, PHLight light) { return PHUtilities.calculateXYFromRGB(groupColors[0], groupColors[1], groupColors[2], light.getModelNumber()); } private static long getDec(byte[] bytes) { long result = 0; long factor = 1; for (int i = 0; i < bytes.length; ++i) { long value = bytes[i] & 0xffl; result += value * factor; factor *= 256l; } return result; } private void start() throws InterruptedException{ IPN532Interface pn532Interface = new PN532Spi(); PN532 nfc = new PN532(pn532Interface); System.out.println("Starting up..."); nfc.begin(); Thread.sleep(1000); long versiondata = nfc.getFirmwareVersion(); if (versiondata == 0) { System.out.println("Didn't find PN53x board"); return; } System.out.print("Found chip PN5: "); System.out.println(Long.toHexString((versiondata >> 24) & 0xFF)); System.out.print("Firmware versioin: "); System.out.print(Long.toHexString((versiondata >> 16) & 0xFF)); System.out.print('.'); System.out.println(Long.toHexString((versiondata >> 8) & 0xFF)); // configure board to read RFID tags nfc.SAMConfig(); System.out.println("Station ready to Scan"); byte[] buffer = new byte[8]; String winner = UIDS[rand.nextInt(2)]; while (true) { int readLength = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, buffer); if (readLength > 0) { String uid = ""; System.out.print(" UID: "); uid = String.valueOf(getDec(buffer)); System.out.println(uid); try { if (uid.equals(winner)){ Runtime.getRuntime().exec(new String[]{"/usr/bin/mpg321", "-q","/home/pi/Sounds/win1.mp3"}); win(); winner = UIDS[rand.nextInt(2)]; }else{ Runtime.getRuntime().exec(new String[]{"/usr/bin/mpg321", "-q","/home/pi/Sounds/fail.mp3"}); fail(); } // wait for 1 seconds before next scan Thread.sleep(1000); System.out.println("Station ready to Scan"); } catch (Exception ex) { System.err.println(ex.getMessage()); } } // sleep for 200 ms before going back to scan for NFC tag Thread.sleep(200); } } private void allOff(){ lightState = new PHLightState(); lightState.setOn(false); bridge.setLightStateForDefaultGroup(lightState); } private void fail() throws InterruptedException{ lightState = new PHLightState(); lightState.setOn(true); lightState.setHue(65280); bridge.setLightStateForDefaultGroup(lightState); Thread.sleep(2000); allOff(); } private void win(){ System.out.println("Starting Random Light Thread"); PHBridge bridge = phHueSDK.getSelectedBridge(); List<PHLight> allLights = bridge.getResourceCache().getAllLights(); Random rand = new Random(); int i =0; while (i++ < 6) { System.out.println("while loop: " + i); try { PHLightState lightState = new PHLightState(); lightState.setOn(true); randomColor = rand.nextInt(MAX_HUE); lightState.setBrightness(maxBrightness); lightState.setHue(randomColor); bridge.setLightStateForDefaultGroup(lightState); Thread.sleep(1000); } catch (Exception ex) { System.err.println("error:" + ex.getMessage()); } } allOff(); } public static void main(String[] args) throws InterruptedException { System.out.println("Starting Exchange Hue Lights Server"); Main halloween = new Main(); halloween.start(); } } 

Artículos Relacionados

Utilizar un teléfono NFC habilitado para escanear una huella dactilar y encontrar la carta elegida de una verdadera baraja de cartas!

Utilizar un teléfono NFC habilitado para escanear una huella dactilar y encontrar la carta elegida de una verdadera baraja de cartas!

Esto entró en un concurso del día de April Fools. Es un truco de magia que usted puede comprar. No es una aplicación descargable. Es simple de hacer para cualquier persona 8 y para arriba. Esto no funcionará a menos que tenga el truco de magia para h
XYZ Da Vinci Junior (jr) etiqueta NFC filamento Reset Hack

XYZ Da Vinci Junior (jr) etiqueta NFC filamento Reset Hack

Este proceso le permitirá restablecer su etiqueta nfc de filamento a una configuración completa utilizando un dispositivo Android con NFC. Si no tienes una NFC habilitado dispositivo Android o lo que algo diferente tengo un Instructable utilizando un
Alternativa a Amazon el tablero botón utilizando etiquetas NFC

Alternativa a Amazon el tablero botón utilizando etiquetas NFC

Amazon ahora ofrece dispositivos de botón pulsador para colocar alrededor de su casa para facilitar la reordenación de los bienes básicos como detergente. Se llaman "Botones de tablero".En la actualidad, el costo de $5 de los botones es reembols
Saco de Hacky NFC DIY

Saco de Hacky NFC DIY

¿Por lo tanto, desea DIY un saco de hacky NFC? Bueno suerte que los gruñones está aquí para mostrarle cómo. Este fue un pequeño experimento que hemos creado con laboratorio creativo de Google, Sydney.Queríamos una manera poco aseada para compartir en
Cómo crear un Detector de NFC

Cómo crear un Detector de NFC

en este tutorial mostrará usted cómo hacer un detector de NFC. Es muy fácil.Paso 1: partes Todo lo que necesita es:-alambre (cualquier longitud decente)-cinta-LED-NFC habilitado dispositivo-tijerasPaso 2: Hacer la bobina a envolver el alambre en una
Controlador Bluetooth PS2

Controlador Bluetooth PS2

El regulador original de PlayStation 2 sigue siendo un control sólido y bien construido por estándares de hoy. Mejor aún, puede tener hoy en día por una fracción del costo de un controlador con la misma calidad.Hoy estamos recuperando este controlado
Adaptador de ratón teclado Bluetooth

Adaptador de ratón teclado Bluetooth

¡ Hola! Esta semana es el Minion Bluetooth teclado Mouse adaptador!Conecte un teclado estándar o ratón y podrá utilizar como un ratón o un teclado Bluetooth.También es NFC habilitado así que directamente podemos aprovechar a la par con un dispositivo
Tazón de fuente de alimentación RFABulous perro

Tazón de fuente de alimentación RFABulous perro

Votar por nosotros - clic aquí¿Viven en una casa con 2 o más perros? ¿Cansado de tu perro comida de gato? ¿Cansado de tener un perro flaco y un perro obeso?El equipo de Texas Instruments RFABulous cachorro comida Bowl encontró una solución.Miembros d
Soporte de teléfono de sobremesa con Sugru y Samsung TecTiles

Soporte de teléfono de sobremesa con Sugru y Samsung TecTiles

por un tiempo he querido (necesario tal vez?) un muelle para mi S4 cuando estoy sentado en mi escritorio. Te voy a mostrar cómo hice una con Sugru y un TecTile.Paso 1: Es algo bastante básico... Las imágenes cuentan la historia bastante bien. Sugru e
Lector RFID para EPassports por teléfono Android (TfCD)

Lector RFID para EPassports por teléfono Android (TfCD)

(Parte de TfCD asignación 2 para el IPD maestro en TU Delft)Este instructable muestra cómo usar el teléfono como un lector RFID. El objetivo es leer los datos almacenados en el chip de un pasaporte electrónico incluyendo nombres, género, nacionalidad
Calabaza de Halloween interactivo (basado en Arduino)

Calabaza de Halloween interactivo (basado en Arduino)

LA IDEA DEUna calabaza que se ilumina, se sacude y grita... [video]Es Halloween, naturalmente tenemos que tener un proyecto.La idea es tener una calabaza, que detecta la presencia de una persona intentando llegar a los dulces y luego emplea varios ef
Remiendo de la calabaza de Halloween IOT

Remiendo de la calabaza de Halloween IOT

Meta: Cuando los niños acercan a la casa el remiendo de la calabaza cobra vida un entorno interactivo basado en movimiento y detección de sonido.Paso 1: Capa de serviciosPaso 2: Flujo de trabajoCuando se detecta movimiento; Haga lo siguiente:No comen
Halloween calabaza Chocolate Cupcake Toppers

Halloween calabaza Chocolate Cupcake Toppers

Toppers de Cupcake de chocolate HalloweenHola, en este instructable, mostraré cómo hacer Cupcake de Halloween Chocolate o Toppers de la torta. Vamos a hacer Jack o linterna que, un símbolo de Batman y un símbolo de apple. Estos toppers de cupcake o p
Cuero Halloween calabaza parche

Cuero Halloween calabaza parche

Hola a todosEste es mi primer vez Instructable y hoy que mostrará usted cómo hacer un parche de calabaza de Halloween de cuero (no yo en la foto, pero es mi amigo modelar para mí).Aquí voy a enumerar todos los materiales y herramientas necesarias par