Brello Umbrella Stand

Made by Dani Quan, kanikak, Benjamin Hecht, nsridhar, Qin Bian and Matthew M

The smart umbrella stand uses RFID to check in and out umbrellas in the Brello share.

Created: May 3rd, 2018

0

Problem Statement/Goal

In designing the box, we were faced with a problem: how can we design an easy-to-use, intuitive box that would securely hold the umbrella within and prevent theft. Umbrella stands are usually very intuitive, the user just has to drop his or her umbrella into the stand, so we attempted to make something that would mimic this comfortable activity but with extra technology. The main way to do this was by making checking out one of our umbrellas as simple as scanning an ID to get onto a bus.

0

Process

Two RFID scanners were required, one for receiving the umbrella, and one for scanning the fob. We started by wiring a servo motor and one of the RFID scanners. After doing some research about other projects which used the same RFID scanner on the photon, we found a library and wiring diagram to set up the scanner. The test code we ran printed the RFID serial number to the Serial port if a card was detected. From here we were able to modify the code so that an event was published whenever an RFID card was detected. We thought about checking the serial numbers as if we were checking for our specific devices, but decided to simply check for a valid card. From here, we looked into how to read two RFID scanners on the same photon. The RC522 scanners use a Serial Peripheral Interface bus to communicate, which uses a lot of pins on the photon. However, it makes hooking up a second scanner as simple as adding a different pin for the Slave Select Pin and sharing all the other pins with the first device.

The first version of our box can be seen below:

0
Scaled Down Umbrella Stand Prototype
Img 20180424 182811.thumb
0

In our first version of the box, we created a small-scale version to test whether or not our design worked, if our components worked properly, and if there is anything we can improve upon. In this phase, we realized that we needed a way to lock the umbrella in that worked with our servo motor. So we decided to attach a hook to it and have a corresponding hole for the hook to go into. In our initial testing, this worked well, however, we soon realized that in order to most optimally function we would need to cut into the side of our box. Therefore we decided to create an external housing for the main box, which would help us cover up the various wires and holes necessary to creating a functional umbrella stand.

The next image features our hook design, and the image after that shows our boxes in the process of being clued.

0

After the final box was cut and glued, the electronics were integrated with the stand. The photon was mounted near the top of the umbrella stand near the servo motor. The RFID scanner for the fob is mounted on the front of the box near the top, and the umbrella RFID scanner is wired onto the bottom of the box. The Initial RFID test can be seen in the image below:

0
Single RFID scanner wired to the Photon
20180417 194801.thumb
0

To make our box easy to use, we engraved one of the sides to indicate where the user can scan their key fob. We wanted to include an engraving of a QR code for easy scanning, however, it did not end up looking clear n our test cuts. The RFID scan area can be seen below:

0
RFID engraving on outer box
20180503 182205.thumb
0
#include "RFID.h"

/* Define the pins used for the SS (SDA) and RST (reset) pins for BOTH hardware and software SPI */
/* Change as required */
#define SS_PIN_1      A1      // Same pin used as hardware SPI (SS)
#define SS_PIN_2      A2      // Same pin used as hardware SPI (SS)
#define RST_PIN     D3

/* Define the pins used for the DATA OUT (MOSI), DATA IN (MISO) and CLOCK (SCK) pins for SOFTWARE SPI ONLY */
/* Change as required and may be same as hardware SPI as listed in comments */
#define MOSI_PIN    A5      // hardware SPI: A5
#define MISO_PIN    A4      //     "     " : A4
#define SCK_PIN     A3      //     "     " : A3

#define SERVOPIN D0
Servo latch;
int close = 10;
int open = 90;

int angle = open;

/* Create an instance of the RFID library */
#if defined(_USE_SOFT_SPI_)
    RFID RC522_1(SS_PIN_1, RST_PIN, MOSI_PIN, MISO_PIN, SCK_PIN);    // Software SPI
#else
    RFID RC522_1(SS_PIN_1, RST_PIN);                                 // Hardware SPI
#endif

#if defined(_USE_SOFT_SPI_)
    RFID RC522_2(SS_PIN_2, RST_PIN, MOSI_PIN, MISO_PIN, SCK_PIN);    // Software SPI
#else
    RFID RC522_2(SS_PIN_2, RST_PIN);                                 // Hardware SPI
#endif



void setup()
{
  Serial.begin(9600);
  latch.attach(SERVOPIN);
  latch.write(angle);

#if !defined(_USE_SOFT_SPI_)
  /* Enable the HW SPI interface */
  SPI.setDataMode(SPI_MODE0);
  SPI.setBitOrder(MSBFIRST);
  SPI.setClockDivider(SPI_CLOCK_DIV8);
  SPI.begin();
#endif

  /* Initialise the RFID reader */
  RC522_1.init();
  RC522_2.init();
}

void loop()
{
  /* Has a card been detected? */
  if (RC522_1.isCard())
  {
    /* If so then get its serial number */
    RC522_1.readCardSerial();

    if (angle == open) {
      Particle.publish("diot/2018/brello/umbrella_status","returned");
      angle = close;
      latch.write(angle);
    }

    /* Output the serial number to the UART */
    Serial.print("Umbrella RFID: ");
    for(uint8_t i = 0; i <= 4; i++)
    {
      Serial.print(RC522_1.serNum[i],HEX);
      Serial.print(" ");
    }
    Serial.println();
  }

  if (RC522_2.isCard())
  {
    /* If so then get its serial number */
    RC522_2.readCardSerial();

    if (angle == close) {
      Particle.publish("diot/2018/brello/umbrella_status","taken");
      angle = open;
      latch.write(angle);
    }

    /* Output the serial number to the UART */
    Serial.print("Key Fob RFID: ");
    for(uint8_t i = 0; i <= 4; i++)
    {
      Serial.print(RC522_2.serNum[i],HEX);
      Serial.print(" ");
    }
    Serial.println();
  }

  delay(500);
}
Click to Expand
0
Umbrella Stand Wiring Diagram, made in Fritzing
Final base.thumb
0
SPI communication diagram
1280px spi three slaves.svg.thumb
0

Bill of Materials

  • Photon
  • Acrylic and Acrylic Glue
  • MFRC-522 RFID Scanners (2)
  • Servo
  • Jumper Wires
  • Breadboard
0

Reflection

Overall the process of creating and designing the interior and exterior boxes were a lot of fun. Granted, based on the dimensions we used we had to buy three 2x4 sized acrylic pieces. The main issue we ran into was lining up the hook with the umbrella to lock it in. Since the umbrella was a lot thicker than we intended, it would often knock the hook off of the servo motor, thus ruining the intended lock mechanism.  


One thing that we could not accomplish in the class is to have the umbrella charge when it is in the box.  If we were to actually create the product, we would have to find a way to have the top of the umbrella plug into the box for charging. 

x
Share this Project

Courses

49313 Designing for the Internet of Things (Undergrad)

· 22 members

A hands-on introductory course exploring the Internet of Things and connected product experiences.


About

The smart umbrella stand uses RFID to check in and out umbrellas in the Brello share.