Giant Ball of String (GBoS) is a sample demonstration applicaiton that illustrates how several technologies from Cisco can be brought together to address a business problem.
All across the United States, there are roadside attractions like The Worlds Largest Fork, The Biggest Donut, and The Giant Ball of String. The organization that manages these attractions is facing pressure to provide better metrics and details about the visitors to the attractions, and to provide a better experience for those visitors. If they can't meet this demand, they may see their funding reduced.
To address this problem, the technical staff has built their next generation attraction support platform. This platform provides the following capabilities:
- Monitor activity at each site using motion detectors.
- Turn on lights, signage, and resources at each site only when vistors are present
- Provide centralized logging of visits at all attractions
- Informational Kiosks at each attraction
- Direct interaction with visitors by providing facts and Q/A through their mobile devices
This repository and README provide details on setting up just the gbos_arduino code and circuit. More details available at:
- gbos_demo - Full Demo Application Setup and Details
- gbos_iox - Details on the Cisco IOx Client Application
- gbos_arduino - Details on the Arduino Microcontroller Code
- gbos_kiosk - Details on the Welcome Web Portal Page
- gbos_tropo - Details on the Tropo Service for SMS based communication with visitors
This repository provides the code and details for the Arduino microcontroller that enables motion detection and control of attraction lighting. The Arduino running this code is connected via a Serial Interface to a Cisco IOx Router running the gbos_iox application.
The great part about the Arduino platform is the large number of boards to use that, for the most part, are compatible with each other, including sketchs (an Arduino program). A common Ardunio to use for projects focused on learning and demonstrations is the Arduino UNO, which was used here.
In addition to the Arduino board itself, you'll need a few other things to complete the external sensor circuit. These include:
-
Push Button
-
PIR Motion Detector
-
LED Light (for indication)
-
Resistors (for LED)
-
Breadboard (optional but very handy)
-
Breadboard jumpers
-
Arduino Power Supply
-
Relay (to act as switch powering lights)
The following parts list and links are provided for information and as a reference. Any similar components will work.
Description | Link |
---|---|
Arduino Uno | Adafruit |
Arduino Power Supply | Adafruit |
Arduino Uno USB Cable | Adafruit |
Breadboard | Adafruit |
Jumpers | Adafruit |
LED | Adafruit |
2.2K Resistor - LED | Adafruit |
PIR Motion Detector | Adafruit |
Relay - AC 10Amp 250VAC | Amazon |
Alternatively, you can order an Arduino Starter Kit that includes most of the above and more.
PIR Motion Detector and Relay not included in most starter kits
Links to Adafruit and Amazon above are purely for reference. We will receive no money if you use them.
The Arduino Serial communciations operate using TTL, while the IOx router uses RS232. These mechanisms are NOT directly compatible, and attempts to do so can damage your Arduino. You can translate between them using a few different methods. For this demo, I used an RS232 Shifter available from Sparkfun to make it simple and easy.
Description | Link |
---|---|
RS232 Shifter | Sparkfun |
DB9 Breakout | Amazon |
Links to Sparkfun and Amazon above are purely for reference. We will receive no money if you use them.
Before loading the Sample Sketch onto your Arduino, be sure to have built the electrical circuit as shown in the Component Diagram.
See for information on full details using the Arduino IDE. The steps below assume some familiarity with the process of programming and Arduino
-
Open
gbos_sketch1.ino
in the Arduino IDE. -
Make sure your Ardino board and port are configured.
-
Upload the Sketch to your Arduino.
-
Verify that Arduino is configured properly by opening the Serial Monitor within the IDE and wave your hand in front of the motion sensor. You should see messages logged.
-
Disconnect the USB Cable from the Arduino used to program. Be sure another power adapter or supply is connected still.
Depending on the exact type of Serial interface and cable you are using with your router, you may need to update these details. But if your router serial cable provides a Female DB25 connector (as was used in this demo build) you will use these pin connections.
- Pin 2 - Receive connected to RS232 Shifter Pin 2: Tx
- Pin 3 - Transmit connected to RS232 Shifter Pin 3: Rx
- Pin 7 - Ground connected to RS232 Shifter Pin 5: Ground