How to Buy
IoT Products and Services
Digi XBee Ecosystem
Digi XBee RF Modules
Digi XBee Cellular Modems
Digi XBee Gateways
Digi XBee Tools
Single Board Computers
IoT Development Kits
IoT Software and Services
Digi Remote Manager
Wireless Design Services
TrustFence Security Framework
USB Over IP/AnywhereUSB
Built-in security framework for the IoT
Solutions by Application
Kiosks and Digital Signage
Positive Train Control (PTC)
Solutions by Technology
The Journey to 5G
Private LTE Based on CBRS
Zigbee Wireless Mesh Networking
Solutions by Industry
Examples and Guides
Product Returns (RMA)
Expert Support Login
Diagnostics, Utilities & MIBS
Have a Question?
Examples & Guides
Light Sensor Example: XBee Zigbee Cloud Kit
Light Sensor Example: XBee Zigbee Cloud Kit
Table of Contents
Assemble the Parts
Configure the Radio
Wire up the Circuit
In this example you will learn to use a photocell light sensor with the XBee Zigbee Gateway to sense and take action based on the amount of available light. You use light to tell if it’s day or night of course, but you can also determine if a cabinet is open or closed, or if someone is currently occupying a hotel room. Because light changes at the speed...well of light, it's a great sensor to use when want to prototype using changes that happen instantaneously rather than only over a longer period of time. Best of all, these sensors are cheap—at about a dollar a piece, they’re a great component to use when deploying sensors in large multiples. The resistance across the two leads of the cell varies according to the amount of light hitting the cell. With our circuit, the brighter it is, the lower the voltage that is passed to the XBee's analog-to-digital converter (ADC). This reading is then sent via
to the XBee Zigbee Cloud Kit's online dashboard application. Now you can monitor the brightness from anywhere right in your web browser.
2) Assemble the Parts
To hook up a light sensor you'll need:
XBee Zigbee Cloud Kit*
- for sensing light (
10K ohm resistors
XBee Zigbee with
3) Configure the Radio
You'll configure the radio using your free Device Cloud account. (Note that radios can also be configured using
NOTE: If your radio was recently configured by the XBee Zigbee Cloud Kit then the sampling rate and pin settings are already set. You can safely skip these steps.
Log in to
Select Devices under the Device Management tab.
Select the XBee Zigbee that you are configuring, then select Properties or double-click to open the Properties window for that device.
Select Configurations, then Input and Output Settings, then confirm that DIO1/AD1/SPI_ATTN is set to Analog Input.
On the same page, confirm that Sample Rate is set to 5000 ms which will take a sample every five seconds.
Save your changes!
4) Wire up the Circuit
You will build this sensor circuit using the XBee Development Board.
Plug in the three 10K ohm resistors to separate rows of the
as shown. They will form a chain with the each resistor connecting to one end of each resistor on either side. These scale the input down from 3.3 volt input to near the 2.5 volt maximum of the XBee Zigbee's ADC.
Connect a red jumper wire from the open end of the first resistor to 3.3 volts power.
Connect one end of a yellow (or any other color) jumper wire to the open end of the third resistor. Connect the other end of this wire to to the XBee's AD1 pin.
Plug in the photocell so that one leg connects to the same junction row as the yellow wire and third resistor. The other leg can go into an unused row. (A photoresistor doesn't have any polarity, its orientation doesn't matter.)
Connect a black jumper wire from the open leg of the photocell to ground (GND) as shown.
Set the DIP switch for AD1 on the PCB to OFF to disconnect the soldered-on component.
Here's what everything should look like:
5) View It!
You will use the XBee Zigbee Cloud Kit's web application to configure a widget for viewing the light readings from your sensor:
Log in to the XBee Zigbee Cloud Kit web application.
Use the Add Widget button to create a new display widget.
Choose Gauge Widget for the widget type.
Add a label such as "
Choose your XBee Zigbee device by its ID.
Select ADC1 as the input stream and check the device configuration to make sure it is configured properly.
" to transform the input from millivolts to a simple percentage from 0 to 100. The calculation takes the input value, scales to a decimal, then multiplies by 100 to get a percentage value. Since is technically the percentage of darkness we subtract it from 100 to flip it to the percentage of brightness.
Add a name for Units such as "
Set a low value of 0 and a high of 100 to see the percentage light range displayed.
Save the changes to see your new Widget.
6) Use it!
The light level is now being transmitted from your XBee Gateway! Place it in some sunshine and see if you get the widget to show 100% as the sensor saturates with brightness. Cover it with a box to see it go towards 0%. You can also add a graph widget to examine the brightness data over time. See if you can sense cloudy periods, or watch the sunset data in real time. You can also run your setup from a battery pack and place it in your refrigerator. When the door is closed, does the light really go out? You might want to try setting up an Alarm in Device Cloud to alert you to late-night snackers. There are many different light sensors available, all with different ranges and response characteristics. Most light sensors will generate data that changes very quickly. If you want to experiment with
changing sensor data try building the