Skip to content

Latest commit

 

History

History

Zigbee_Temp_Hum_Sensor_Sleepy

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Arduino-ESP32 Zigbee Temperature and Humidity Sensor Sleepy Device Example

This example demonstrates how to use the Zigbee library to create an end device temperature/humidity sensor and use it as a Home Automation (HA) extended temperature sensor.

Supported Targets

Currently, this example supports the following targets.

Supported Targets ESP32-C6 ESP32-H2

Temperature Sensor Functions

  1. Initialize a Zigbee temperature and humidity sensor.
  2. Measure temperature and humidity values.
  3. Report the measured values to the Zigbee network.
  4. Put the device to sleep to save power.

Hardware Required

  • ESP32-H2 or ESP32-C6 development board
  • A USB cable for power supply and programming

Configure the Project

In this example, to demonstrate the functionality the chip temperature is used and reported as temperature and humidity. Set the Button GPIO by changing the button variable. By default, it's the pin BOOT_PIN (BOOT button on ESP32-C6 and ESP32-H2).

Using Arduino IDE

To get more information about the Espressif boards see Espressif Development Kits.

  • Before Compile/Verify, select the correct board: Tools -> Board.
  • Select the End device Zigbee mode: Tools -> Zigbee mode: Zigbee ED (end device)
  • Select Partition Scheme for Zigbee: Tools -> Partition Scheme: Zigbee 4MB with spiffs
  • Select the COM port: Tools -> Port: xxx where the xxx is the detected COM port.
  • Optional: Set debug level to verbose to see all logs from Zigbee stack: Tools -> Core Debug Level: Verbose.

Troubleshooting

If the End device flashed with this example is not connecting to the coordinator, erase the flash of the End device before flashing the example to the board. It is recommended to do this if you re-flash the coordinator. You can do the following:

  • In the Arduino IDE go to the Tools menu and set Erase All Flash Before Sketch Upload to Enabled.
  • Add to the sketch Zigbee.factoryReset(); to reset the device and Zigbee stack.

By default, the coordinator network is closed after rebooting or flashing new firmware. To open the network you have 2 options:

  • Open network after reboot by setting Zigbee.setRebootOpenNetwork(time); before calling Zigbee.begin();.
  • In application you can anytime call Zigbee.openNetwork(time); to open the network for devices to join.

Important: Make sure you are using a good quality USB cable and that you have a reliable power source

  • LED not blinking: Check the wiring connection and the IO selection.
  • Programming Fail: If the programming/flash procedure fails, try reducing the serial connection speed.
  • COM port not detected: Check the USB cable and the USB to Serial driver installation.

If the error persists, you can ask for help at the official ESP32 forum or see Contribute.

Contribute

To know how to contribute to this project, see How to contribute.

If you have any feedback or issue to report on this example/library, please open an issue or fix it by creating a new PR. Contributions are more than welcome!

Before creating a new issue, be sure to try Troubleshooting and check if the same issue was already created by someone else.

Resources