Created
December 5, 2019 01:54
-
-
Save natendaben/f93a103ea3d59f4182a26fc8f0831635 to your computer and use it in GitHub Desktop.
Using RFID technology to change Neopixel strip based on different tags
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <SPI.h> | |
#include <MFRC522.h> | |
#define SS_PIN 53 | |
#define RST_PIN 5 | |
#include <Adafruit_NeoPixel.h> | |
#define PIN 22 | |
Adafruit_NeoPixel strip = Adafruit_NeoPixel(5, PIN, NEO_GRB + NEO_KHZ800); | |
MFRC522 mfrc522(SS_PIN, RST_PIN); // Instance of the class | |
// Desert - Gold / brown | |
uint32_t desert = strip.gamma32(strip.Color(255, 183, 0)); | |
// Underwater - Deep blues / dark | |
uint32_t water = strip.gamma32(strip.Color(0, 32, 194)); | |
// Rainforest - Deep greens / dark | |
uint32_t forest = strip.gamma32(strip.Color(0, 179, 116)); | |
// Grassland - Light greens / yellows | |
uint32_t grass = strip.gamma32(strip.Color(234, 255, 143)); | |
// Beach - Light blues / tans | |
uint32_t beach = strip.gamma32(strip.Color(0, 255, 255)); | |
uint32_t black = strip.gamma32(strip.Color(0, 0, 0)); | |
void setup() { | |
Serial.begin(9600); | |
strip.begin(); | |
strip.show(); | |
strip.setBrightness(20); | |
SPI.begin(); // Init SPI bus | |
mfrc522.PCD_Init(); // Init MFRC522 | |
Serial.println("RFID reading UID"); | |
for(int i=0; i<strip.numPixels(); i++){ | |
strip.setPixelColor(i, forest); | |
} | |
strip.show(); | |
} | |
void loop() { | |
if ( mfrc522.PICC_IsNewCardPresent()){ | |
if ( mfrc522.PICC_ReadCardSerial()){ | |
if (mfrc522.uid.uidByte[0] == 0xF9 && | |
mfrc522.uid.uidByte[1] == 0x2C && | |
mfrc522.uid.uidByte[2] == 0xC8 && | |
mfrc522.uid.uidByte[3] == 0xB1) { | |
for(int i=0; i<strip.numPixels(); i++){ | |
strip.setPixelColor(i, desert); | |
} | |
strip.show(); | |
} | |
if (mfrc522.uid.uidByte[0] == 0xF9 && | |
mfrc522.uid.uidByte[1] == 0xEC && | |
mfrc522.uid.uidByte[2] == 0xC4 && | |
mfrc522.uid.uidByte[3] == 0xB1) { | |
for(int i=0; i<strip.numPixels(); i++){ | |
strip.setPixelColor(i, water); | |
} | |
strip.show(); | |
} | |
if (mfrc522.uid.uidByte[0] == 0x19 && | |
mfrc522.uid.uidByte[1] == 0xE8 && | |
mfrc522.uid.uidByte[2] == 0xB3 && | |
mfrc522.uid.uidByte[3] == 0xB0) { | |
for(int i=0; i<strip.numPixels(); i++){ | |
strip.setPixelColor(i, grass); | |
} | |
strip.show(); | |
} | |
if (mfrc522.uid.uidByte[0] == 0xC9 && | |
mfrc522.uid.uidByte[1] == 0xFA && | |
mfrc522.uid.uidByte[2] == 0x21 && | |
mfrc522.uid.uidByte[3] == 0xB3) { | |
for(int i=0; i<strip.numPixels(); i++){ | |
strip.setPixelColor(i, beach); | |
} | |
strip.show(); | |
} | |
Serial.print("Tag UID:"); | |
for (byte i = 0; i < mfrc522.uid.size; i++) { | |
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); | |
Serial.print(mfrc522.uid.uidByte[i], HEX); | |
} | |
Serial.println(); | |
mfrc522.PICC_HaltA(); | |
delay(1000); | |
} | |
// } else { | |
// for(int i=0; i<strip.numPixels(); i++){ | |
// strip.setPixelColor(i, forest); | |
// } | |
// strip.show(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment