RFID Door Lock Shield trouble

Control electric door locks and strike plates using your Arduino and an RFID module. Serial interface for an external RFID reader, and a switched output for door strike control. [Product page]
Post Reply
jagerp
Posts: 4
Joined: Wed Dec 18, 2013 9:41 pm

RFID Door Lock Shield trouble

Post by jagerp » Wed Dec 18, 2013 10:01 pm

Hi, As this is my first post apologies for any misconceptions or errors.

I am using the Door lock shield, Uno R3 and RDM630 rfid reader in a small project so I can open my garage door without the need of a key. My reason for building this is that I do allot of bike riding road and mountain and would rather not take a key.

I am stuck somewhat; I have constructed the circuit and am using the practical arduino example but when reading the tag with the reader I always get the following results.
if((val = rfid.read()) == 2) { // Check for header
bytesRead = 0;
while (bytesRead < 12) { // Read 10 digit code + 2 digit checksum
val = rfid.read();
RFID reader starting up
Tag read: FFFFFFFFFF
Checksum: FF -- passed.
Tag not authorized

Now I know that the five different tags I have are all unique tag numbers and don't match the above FFFFFFFFFF .

By getting a result I know that software serial is working but not the result obvioulsy that I am after.

I did manage to get it working on a mega using the below after scanning the web for info. obviously a mega is an overkill for what I need hence my search for more info.
if(Serial1.available() > 0) {
//if((val = Serial1.read()) == 2) { // Check for header
//bytesRead = 0;
//while (bytesRead < 12) {
//if( Serial1.available() > 0) { // Read 10 digit code + 2 digit checksum
// val = Serial1.read();
the above code works using serial1 on a mega, so I am thinking that it has something to do with software serial or the code relating to the rfid.read section of the practical arduino example .

Appreciate any help or pointers hopefully I have given enough info.

Thanks Paul

andrew
Freetronics Staff
Freetronics Staff
Posts: 978
Joined: Sun Jul 14, 2013 7:06 am
Location: Melbourne, Australia
Contact:

Re: RFID Door Lock Shield trouble

Post by andrew » Thu Dec 19, 2013 9:13 am

Serial1 is pins D18 and D19 on the Mega - are you manually connecting the RFID reader straight to the Mega?

Anyhow, back to the Uno and the shield for a moment. Could you please connect the RFID reader to the shield, and the shield to the Uno, and upload the following sketch:

Code: Select all

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
void setup()  
{
  // Open connection to host at 38400bps
  Serial.begin(38400);

  // Open connection to RFID module at 9600bps
  mySerial.begin(9600);
}
void loop()
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}
Then wave some tags at the reader, and let me know what appears in the serial monitor?
Thanks
john

jagerp
Posts: 4
Joined: Wed Dec 18, 2013 9:41 pm

Re: RFID Door Lock Shield trouble

Post by jagerp » Fri Dec 20, 2013 5:35 am

Hi John, here are the results with uploaded code you posted.


Serial Monitor Results, using each card/fob
08000AC075B7
08000AD6F226
280015E6FF24
03000B014B42
0300019DE07F

Regards Paul

andrew
Freetronics Staff
Freetronics Staff
Posts: 978
Joined: Sun Jul 14, 2013 7:06 am
Location: Melbourne, Australia
Contact:

Re: RFID Door Lock Shield trouble

Post by andrew » Fri Dec 20, 2013 11:18 am

Thanks for doing that. By seeing those different tag numbers it tells us that the hardware is working as expected.

So I've just had another look at the code for the project out of the PA book and it looks as if some of the pin numbers are incorrect for use with the DLOCK shield. Give the following code a try:

Code: Select all

/**
 * RFID Access Control Single
 *
 * This project implements a single stand-alone RFID access control
 * system that can operate independently of a host computer or any
 * other device. It uses either an ID-12 RFID reader module from ID
 * Innovations or an RDM630 RFID reader module from Seeed Studio to
 * scan for 125KHz RFID tags, and when a recognised tag is identified
 * it toggles an output for a configurable duration, typically 2
 * seconds. The output can then be used to control a relay to trip an
 * electric striker plate to release a door lock.
 *
 * Because this project is intended to provide a minimal working system
 * it does not have any provision for database updates to be managed
 * externally from a host, so updates to the accepted cards must be
 * made by changing the values in the code, recompiling the program,
 * and re-uploading it to the Arduino. It does however report card
 * readings (both successful and unsuccessful) via the serial
 * connection so you can monitor the system using a connected computer.
 *
 * Some of this code was inspired by Tom Igoe's excellent RFID tutorial
 * which is detailed on his blog at:
 *   http://www.tigoe.net/pcomp/code/category/PHP/347
 * And also from the ID-12 example code on the Arduino Playground at:
 *   http://www.arduino.cc/playground/Code/ID12
 *
 * Copyright Jonathan Oxer <jon@oxer.com.au>
 * http://www.practicalarduino.com/projects/medium/rfid-access-control
 */

// Set up the serial connection to the RFID reader module. In order to
// keep the Arduino TX and RX pins free for communication with a host,
// the sketch uses the SoftwareSerial library to implement serial
// communications on other pins.
#include <SoftwareSerial.h>

// The RFID module's TX pin needs to be connected to the Arduino. Module
// RX doesn't need to be connected to anything since we won't send
// commands to it, but SoftwareSerial requires us to define a pin for
// TX anyway so you can either connect module RX to Arduino TX or just
// leave them disconnected.

// If you have built the circuit exactly as described in Practical
// Arduino, use pins D2 / D3:
#define rxPin 2
#define txPin 3
// If you are using the Freetronics RFID Lock Shield, use pins D4 / D5:
/* #define rxPin 4 */
/* #define txPin 5 */

// Create a software serial object for the connection to the RFID module
SoftwareSerial rfid = SoftwareSerial( rxPin, txPin );

// Set up outputs for the strike plate and status LEDs.
// If you have built the circuit exactly as described in Practical
// Arduino, use pins D12 and D13:
#define strikePlate 9
#define ledPin 8
// If you are using the Freetronics RFID Lock Shield, use pins D6 / D7:
/* #define strikePlate 6 */
/* #define ledPin 7 */

// Specify how long the strike plate should be held open.
#define unlockSeconds 2

// The tag database consists of two parts. The first part is an array of
// tag values with each tag taking up 5 bytes. The second is a list of
// names with one name for each tag (ie: group of 5 bytes).
char* allowedTags[] = {
  "0104F5B523",         // Tag 1
  "04146E8BDD",         // Tag 2
  "0413BBBF23",         // Tag 3
};

// List of names to associate with the matching tag IDs
char* tagName[] = {
  "Jonathan Oxer",      // Tag 1
  "Hugh Blemings",      // Tag 2
  "Dexter D Dog",       // Tag 3
};

// Check the number of tags defined
int numberOfTags = sizeof(allowedTags)/sizeof(allowedTags[0]);

int incomingByte = 0;    // To store incoming serial data

/**
 * Setup
 */
void setup() {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  pinMode(strikePlate, OUTPUT);
  digitalWrite(strikePlate, LOW);

  Serial.begin(38400);   // Serial port for connection to host
  rfid.begin(9600);      // Serial port for connection to RFID module

  Serial.println("RFID reader starting up");
}

/**
 * Loop
 */
void loop() {
  byte i         = 0;
  byte val       = 0;
  byte checksum  = 0;
  byte bytesRead = 0;
  byte tempByte  = 0;
  byte tagBytes[6];    // "Unique" tags are only 5 bytes but we need an extra byte for the checksum
  char tagValue[10];

  // Read from the RFID module. Because this connection uses SoftwareSerial
  // there is no equivalent to the Serial.available() function, so at this
  // point the program blocks while waiting for a value from the module
  if((val = rfid.read()) == 2) {        // Check for header
    bytesRead = 0;
    while (bytesRead < 12) {            // Read 10 digit code + 2 digit checksum
      val = rfid.read();

      // Append the first 10 bytes (0 to 9) to the raw tag value
      if (bytesRead < 10)
      {
        tagValue[bytesRead] = val;
      }

      // Check if this is a header or stop byte before the 10 digit reading is complete
      if((val == 0x0D)||(val == 0x0A)||(val == 0x03)||(val == 0x02)) {
        break;                          // Stop reading
      }

      // Ascii/Hex conversion:
      if ((val >= '0') && (val <= '9')) {
        val = val - '0';
      }
      else if ((val >= 'A') && (val <= 'F')) {
        val = 10 + val - 'A';
      }

      // Every two hex-digits, add a byte to the code:
      if (bytesRead & 1 == 1) {
        // Make space for this hex-digit by shifting the previous digit 4 bits to the left
        tagBytes[bytesRead >> 1] = (val | (tempByte << 4));

        if (bytesRead >> 1 != 5) {                // If we're at the checksum byte,
          checksum ^= tagBytes[bytesRead >> 1];   // Calculate the checksum... (XOR)
        };
      } else {
        tempByte = val;                           // Store the first hex digit first
      };

      bytesRead++;                                // Ready to read next digit
    }

    // Send the result to the host connected via USB
    if (bytesRead == 12) {                        // 12 digit read is complete
      tagValue[10] = '\0';                        // Null-terminate the string

      Serial.print("Tag read: ");
      for (i=0; i<5; i++) {
        // Add a leading 0 to pad out values below 16
        if (tagBytes[i] < 16) {
          Serial.print("0");
        }
        Serial.print(tagBytes[i], HEX);
      }
      Serial.println();

      Serial.print("Checksum: ");
      Serial.print(tagBytes[5], HEX);
      Serial.println(tagBytes[5] == checksum ? " -- passed." : " -- error.");

      // Show the raw tag value
      //Serial.print("VALUE: ");
      //Serial.println(tagValue);

      // Search the tag database for this particular tag
      int tagId = findTag( tagValue );

      // Only fire the strike plate if this tag was found in the database
      if( tagId > 0 )
      {
        Serial.print("Authorized tag ID ");
        Serial.print(tagId);
        Serial.print(": unlocking for ");
        Serial.println(tagName[tagId - 1]);   // Get the name for this tag from the database
        unlock();                             // Fire the strike plate to open the lock
      } else {
        Serial.println("Tag not authorized");
      }
      Serial.println();     // Blank separator line in output
    }

    bytesRead = 0;
  }
}

/**
 * Fire the relay to activate the strike plate for the configured
 * number of seconds.
 */
void unlock() {
  digitalWrite(ledPin, HIGH);
  digitalWrite(strikePlate, HIGH);
  delay(unlockSeconds * 1000);
  digitalWrite(strikePlate, LOW);
  digitalWrite(ledPin, LOW);
}

/**
 * Search for a specific tag in the database
 */
int findTag( char tagValue[10] ) {
  for (int thisCard = 0; thisCard < numberOfTags; thisCard++) {
    // Check if the tag value matches this row in the tag database
    if(strcmp(tagValue, allowedTags[thisCard]) == 0)
    {
      // The row in the database starts at 0, so add 1 to the result so
      // that the card ID starts from 1 instead (0 represents "no match")
      return(thisCard + 1);
    }
  }
  // If we don't find the tag return a tag ID of 0 to show there was no match
  return(0);
}
Finally there is a different way of reading the tags, but with the same final result in another tutorial over at tronixstuff:

http://tronixstuff.com/2013/11/19/ardui ... r-15-rfid/

If you work through that tutorial the last example sketch will do what you want, just trigger D9 when you get a successful match in the final example.

Let me know how you get on.
cheers
john

jagerp
Posts: 4
Joined: Wed Dec 18, 2013 9:41 pm

Re: RFID Door Lock Shield trouble

Post by jagerp » Fri Dec 20, 2013 11:31 pm

Hi John,


Still no luck with the PA project code. But I did try the tronixstuff scketch and I had success, so as you said I just need to adjust pin numbers to suit the shield.

Appreciate your help, still my curious nature wonders where the other sketch fails. But I will leave that for another day, I can now take my project off the breadboard and put in to operation

Cheers Paul

andrew
Freetronics Staff
Freetronics Staff
Posts: 978
Joined: Sun Jul 14, 2013 7:06 am
Location: Melbourne, Australia
Contact:

Re: RFID Door Lock Shield trouble

Post by andrew » Sun Dec 22, 2013 8:34 am

jagerp wrote:Hi John,


Still no luck with the PA project code. But I did try the tronixstuff scketch and I had success, so as you said I just need to adjust pin numbers to suit the shield.

Appreciate your help, still my curious nature wonders where the other sketch fails. But I will leave that for another day, I can now take my project off the breadboard and put in to operation

Cheers Paul
Hi Paul
Apologies for the delay in my reply. Good to hear you have it working. PA was written a few years back so I will have a word with the author about updating the code. In the meanwhile if you have any more questions about the content in the book etc., let us know in the forum:
viewforum.php?f=23
or email support@freetronics.com
John

clibin009
Posts: 150
Joined: Mon Oct 23, 2017 2:57 am

Re: RFID Door Lock Shield trouble

Post by clibin009 » Mon Oct 23, 2017 4:02 am

clb1023
cheap jordan shoes
cheap oakley sunglasses
cheap ray ban sunglasses
ugg boots
uggs outlet
coach outlet store
supreme shirts
adidas shoes
canada goose outlet
coach outlet online
cheap jordan shoes
red bottom
coach outlet online
polo ralph lauren
oakley sunglasses outlet
pandora jewelry
pandora jewelry
coach outlet online
mulberry
michael kors outlet canada
coach outlet store
canada goose coats
nike sneakers
oakley sunglasses outlet
michael kors bags
adidas sneakers
pandora charms
cheap jordan shoes
michael kors outlet online
canada goose jacket
cheap jordan shoes
polo ralph lauren outlet online
michael kors handbags outlet
harden shoes
fred perry polo shirts
ray ban sunglasses sale
ugg boots sale
moncler outlet online
coach outlet online
ugg shoes
valentino
pandora charms sale clearance
uggs outlet
moncler outlet online
louis vuitton outlet online
michael kors
air max shoes
christian louboutin shoes
coach outlet store online
ugg boots women
ray ban sunglasses outlet
ugg
ugg boots
nike outlet
cheap ray ban sunglasses
ugg outlet
canada goose sale
ray ban sunglasses outlet
michael kors outlet online
jordan shoes
hermes bags
canada goose jackets
burberry outlet online
coach outlet online
longchamp bags
mlb jerseys
coach outlet online
coach outlet
michael kors outlet online
supreme uk
pandora charms
the north face outlet
cheap air jordans
canada goose jackets
canada goose coats
timberland outlet store
ralph lauren outlet online
ugg boots
yeezy boost 350
pandora outlet
michael kors outlet canada
north face outlet
mlb jerseys
air max
uggs
ralph lauren outlet online
michael kors
jerseys cheap
cheap jordans
canada goose outlet
coach outlet online
supreme clothing
michael kors
michael kors outlet store
coach outlet online
salvatore ferragamo outlet
michael kors outlet clearance
burberry handbags
air jordans
coach factory outlet online
retro 11
ugg outlet online
pandora charms sale clearance
louis vuitton outlet store
longchamps
louis vuitton outlet online
nfl jerseys
ugg outlet online
canada goose outlet
cheap nfl jerseys wholesale
polo ralph lauren
canada goose jackets
tory burch shoes
toms
uggs outlet
ugg boots on sale
christian louboutin shoes
michael kors outlet online
ralph lauren outlet
cheap uggs
uggs outlet
adidas outlet online
cheap ugg boots
ray ban sunglasses discount
moncler jacket
nike outlet online
michael kors outlet online
coach factory outlet online
ray ban sunglasses outlet
christian louboutin sale
uggs outlet
birkenstock shoes
hermes bags
michael kors outlet store
nike shoes
pandora jewelry outlet
canada goose outlet
uggs
uggs outlet
louis vuitton outlet
uggs clearance
louboutin outlet
moncler uk
cheap ugg boots
ugg boots outlet
ugg outlet
coach factory outlet
adidas superstar shoes
coach outlet online
adidas nmd runner
pandora jewelry outlet
adidas outlet store
canada goose coats
adidas nmd r1
ralph lauren outlet online
discount oakley sunglasses
ugg outlet
toms
coach purses
birkin handbags
ralph lauren outlet online
kate spade outlet
michael kors outlet online
pandora charms
yeezy shoes
coach factory outlet online
michael kors outlet store
canada goose uk
michael kors outlet clearance
burberry outlet online
canada goose jackets
uggs outlet
air jordan shoes
burberry outlet online
ray ban sunglasses cheap
ugg boots
hermes handbags
nike outlet store
uggs outlet
moncler coats
ugg boots
red bottom heels
coach outlet online
cheap ugg boots
moncler jackets
cheap ugg boots
bottes ugg
uggs outlet
polo ralph lauren outlet
ugg outlet store
coach outlet online
ralph lauren sale
toms shoes
ralph lauren
fred perry shirts
pandora charms sale
canada goose outlet online
moncler
adidas superstars
pandora uk
ugg boots outlet
cheap ugg boots
coach outlet online
coach factorty outlet online
louis vuitton factory outlet
canada goose parka
nike cortez classic
uggs outlet
moncler coats
burberry outlet online
cheap oakley sunglasses
ugg boots
polo ralph lauren outlet online
longchamp bags
coach outlet online
kate spade outlet online
coach factorty outlet online
coach factory outlet online
adidas yeezy boost
toms
nike outlet store online
coach factory outlet online
birkenstock outlet
coach outlet store
ugg boots outlet
coach outlet store online
michael kors outlet online
coach factory outlet
ralph lauren outlet
mbt
ugg boots
nike shoes
coach outlet online
ugg boots
north face outlet
polo ralph lauren outlet
canada goose outlet
canada goose
coach factory outlet online
kate spade outlet online
longchamp outlet
kate spade outlet online
polo ralph lauren outlet online
pandora charms outlet
adidas outlet online
coach factory outlet online
hermens
kate spade handbags
pandora charms outlet
columbia sportswear outlet
nike huarache shoes
uggs outlet
polo ralph lauren outlet
moncler sale
mulberry handbags
moncler
adidas nmd r1
canada goose coats
moncler jackets
moncler sale
air max
coach outlet store online clearance
burberry handbags
michael kors outlet store
caterpillar boots
yeezy boost 350
moncler sale
michael kors outlet clearance
uggs outlet
ralph lauren sale clearance uk
ugg sale
moncler coats
coach outlet canada
michael kors uk
coach outlet online
ugg boots clearance
ugg outlet
pandora jewelry store
cheap air jordans
coach outlet online
canada goose jacket
nmd adidas
coach factory outlet online
adidas outlet store
canada goose coats
ray bans
air jordans
coach factory outlet online
cheap nike shoes
ugg sale
pandora charms sale clearance
moncler coats
louis vuitton factory outlet
polo ralph lauren outlet
ralph lauren sale clearance uk
burberry outlet
michael kors outlet store
adidas ultra boost
michael kors outlet online
toms
ugg slippers
adidas nmd r1
coach outlet online
louboutin outlet
louboutin shoes
canada goose jackets
coach factory outlet online
louis vuitton factory outlet
canada goose outlet
michael kors bags
north face jackets
cheap ray bans
ugg australia
cheap nfl jerseys
uggs clearance
jordans
cheap uggs
adidas yeezy boost
cheap ray ban sunglasses
coach factory outlet
ugg boots
canada goose sale
coach factory outlet
polo outlet online
adidas store
canada goose sale
canada goose outlet
ray ban glasses
yeezy shoes
birkenstock
air jordan retro
cheap uggs
timberland outlet
mlb jerseys whgolesale
adidas nmd runner
coach outlet online
coach outlet canada
canada goose jackets
ugg boots clearance
ugg outlet online
michael kors outlet clearance
canada goose jackets
discount ray ban sunglasses
pandora charms outlet
canada goose sale
uggs outlet
coach outlet online
polo ralph lauren outlet
birkenstock uk
ray ban sunglasses discount
longchamp sale
ugg boots
michael kors outlet store
canada goose jackets
canada goose clothing
cheap jordan shoes
canada goose jackets
yeezy boost
michael kors outlet clearance
uggs
canada goose sale
christian louboutin sale
ugg boots outlet
red bottoms
ugg boots outlet
uggs on sale
canada goose jackets
adidas yeezy boost 350
ralph lauren uk
uggs outlet
cheap ugg sale
moncler jackets
coach factory outlet
christian louboutin shoes
yeezy boost 350
ferragamo shoes
uggs outlet
canada goose uk
gucci outlet online
ugg outlet store
cheap ugg boots
fitflops sale clearance
nike outlet online
nike outlet store
canada goose sale
uggs outlet
cheap air jordans
canada goose jackets
moncler outlet online
mulberry outlet uk
north face jackets
louis vuitton outlet store
ugg boots
coach factory outlet online
valentino outlet
ralph lauren sale
louis vuitton outlet online
yeezy shoes
ferragamo outlet
canada goose
pandora
canada goose coats
hermes outlet
coach factory outlet online
the north face outlet
polo ralph lauren outlet online
uggs outlet
coach outlet online
kate spade handbags
ugg outlet
ray ban glasses
michael kors outlet clearance
ralph lauren sale
hermes bag
longchamp outlet store
harden vol 1
pandora charms
polo ralph lauren outlet
burberry outlet online
michael kors outlet online
ugg boots
ugg canada
ralph lauren outlet
burberry handbags
tory burch outlet online
polo ralph lauren outlet
michael kors
canada goose jackets
fitflop sandals
coach outlet store
polo ralph lauren outlet
salvatore ferragamo shoes
ray bans
adidas yeezy shoes
coach outlet online
gucci outlet
coach handbags outlet
christian louboutin shoes
pandora charms outlet
ralph lauren
nike air max 2018
mbt
coach outlet online
kate spade handbags
cheap oakley sunglasses
louis vuitton handbags
christian louboutin shoes
michael kors outlet store
moncler pas cher
moncler outlet online
ray bans
kate spade outlet
cheap jordans for sale
nike sneakers
tory burch outlet online
toms outlet
ugg on sale
coach outlet online
ugg outlet
mulberry uk
cheap jordans free shipping
coach outlet store online
clb1023


yaoxuemei
Posts: 59
Joined: Fri Dec 15, 2017 7:34 am

Re: RFID Door Lock Shield trouble

Post by yaoxuemei » Fri Dec 15, 2017 8:23 am

michael kors outlet
polo ralph lauren
pandora bracelet
jordan shoes
ralph lauren
giuseppe zanotti outlet
canada goose outlet
lunette ray ban
christian louboutin outlet
oakley sunglasses
polo ralph lauren
uggs outlet
oakley sunglasses wholesale
polo outlet
nike shoes on sale
canada goose jackets
moncler coats
canada goose jackets
ray ban wayfarer
nfl jerseys
ugg boots clearance
supreme t shirts
michael kors outlet
canada goose outlet store
ugg boots
coach outlet
tory burch outlet stores
mlb jerseys
coach outlet
supreme outlet
uggs outlet
ugg outlet
cheap ray bans sunglasses
polo outlet
ray-ban sunglasses
true religion jeans
tory burch sandals
canada goose outlet online
oakley sunglasses
uggs outlet
michael kors outlet
ugg boots
coach factory outlet
nfl jerseys wholesale
michael kors outlet online
ray ban sunglasses
ugg outlet
polo ralph lauren
uggs outlet
mulberry outlet
pandora outlet store
cheap oakley sunglasses
ray ban sunglasse
pandora jewelry outlet
ralph lauren shirts
coach outlet store online
coach outlet
cheap jordans
nike outlet store
canada goose jackets
coach outlet
uggs outlet
michael kors
fitflops sale clearance
uggs outlet
pandora outlet
cheap mlb jerseys
michael kors outlet
uggs outlet
cheap uggs
true religion
adidas outlet online
ugg outlet online clearance
polo ralph lauren outlet
fitflops sale clearance
canada goose jackets
nike shoes
michael kors outlet clearance
michael kors outlet
polo ralph lauren pas cher
longchamp bags
michael kors outlet online
coach outlet online
jordan shoes
canada goose
oakley sunglasses
mulberry handbags
true religion outlet
ray ban wayfarer
nike shoes for men
cheap ugg boots
fitflops sandals
coach outlet online
michael kors outlet online
michael kors outlet
yeezy boost
fitflops outlet
michael kors outlet clearance
nike outlet
uggs outlet
coach outlet clearance
ugg outlet
oakley sunglasses wholesale
giuseppe zanotti shoes
oakley sunglasses wholesale
tory burch outlet
oakley sunglasses wholesale
cheap oakley sunglasses
ralph lauren
ralph lauren uk
michael kors outlet clearance
polo ralph lauren shirts
canada goose outlet
pandora charms
nike shoes
nfl jerseys wholesale
coach factory outlet
canada goose jackets sale
ugg outlet
canada goose outlet
cheap ugg boots
christian louboutin shoes
coach outlet online
ralph lauren outlet
coach outlet online
uggs outlet
pandora outlet
ralph lauren polo
michael kors outlet
michael kors outlet
michael kors outlet clearance
ralph lauren uk
coach outlet store online
oakley sunglasses outlet
polo ralph lauren outlet
coach outlet
pandora outlet
ugg outlet
nike outlet
coach outlet
fred perry polo shirts
canada goose
pandora rings
michael kors outlet
nike outlet online
kate spade handbags
ugg outlet store
pandora charms
canada goose
ferragamo outlet store
polo outlet
true religion outlet store
uggs outlet
michael kors outlet online
polo ralph lauren
michael kors outlet online
coach factory outlet online
canada goose jackets
coach outlet store online
polo ralph lauren
christian louboutin
polo outlet
canada goose outlet store
coach outlet
jordan retro shoes
ralph lauren
michael kors outlet clearance
michael kors outlet online
michael kors outlet
canada goose outlet online
ugg outlet
air max shoes
uggs outlet
cheap nfl jerseys
ugg outlet
uggs on sale
ugg outlet
canada goose jackets
coach outlet
coach outlet
cheap nfl jerseys
canada goose outlet
ralph lauren
air jordan shoes
true religion outlet
polo shirts
coach factory outlet
canada goose outlet
mlb jerseys wholesale
canada goose outlet store
polo ralph lauren factory store
canada goose uk
polo ralph lauren
uggs outlet
adidas nmd
mont blanc outlet
polo outlet
mlb jerseys
longchamp
canada goose
yaoxuemei20171215

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest