Differences

This shows you the differences between two versions of the page.

Link to this comparison view

iothings:laboratoare:2025:lab5 [2025/10/22 11:18]
dan.tudose [Zigbee Router + End Device]
iothings:laboratoare:2025:lab5 [2025/10/28 11:35] (current)
dan.tudose [Switch as a Sleepy ED]
Line 1: Line 1:
-====== Lab 5. Zigbee ======+====== Lab 5. Zigbee ​Networking ​======
  
 Zigbee is a low‑power,​ low‑data‑rate wireless protocol for building sensor/​actuator networks (home automation, smart energy, lighting, industrial monitoring). It sits on top of IEEE 802.15.4 radios and adds networking, security, and application profiles. Zigbee is a low‑power,​ low‑data‑rate wireless protocol for building sensor/​actuator networks (home automation, smart energy, lighting, industrial monitoring). It sits on top of IEEE 802.15.4 radios and adds networking, security, and application profiles.
Line 184: Line 184:
  
 <code bash platformio.ini>​ <code bash platformio.ini>​
 +; PlatformIO Project Configuration File
 +;
 +;   Build options: build flags, source filter
 +;   ​Upload options: custom upload port, speed and extra flags
 +;   ​Library options: dependencies,​ extra library storages
 +;   ​Advanced options: extra scripting
 +;
 +; See https://​docs.platformio.org/​page/​projectconf.html for details.
 +
 [platformio] [platformio]
 default_envs = sparrow-switch default_envs = sparrow-switch
Line 200: Line 209:
   ;-D CORE_DEBUG_LEVEL=5   ;-D CORE_DEBUG_LEVEL=5
  
-; Use a partitions.csv that contains Zigbee NV partitions+; Use a partitions.csv that contains Zigbee NV partitions ​(see step 2)
 board_build.partitions = partitions.csv board_build.partitions = partitions.csv
  
Line 210: Line 219:
   -D ZIGBEE_MODE_ED   -D ZIGBEE_MODE_ED
   -D SPARROW_SWITCH   -D SPARROW_SWITCH
 +  -D CONFIG_ZB_ENABLED=1
 +  -L$PLATFORMIO_PACKAGES_DIR/​framework-arduinoespressif32-libs/​esp32c6/​lib
 +  -lesp_zb_api.ed
 +  -lzboss_stack.ed
 +  -lzboss_port.native
 +  -lzboss_port.remote
  
 [env:​sparrow-light] [env:​sparrow-light]
Line 216: Line 231:
   -D ZIGBEE_MODE_ROUTER   -D ZIGBEE_MODE_ROUTER
   -D SPARROW_LIGHT   -D SPARROW_LIGHT
 +  -D CONFIG_ZB_ENABLED=1
 +  -L$PLATFORMIO_PACKAGES_DIR/​framework-arduinoespressif32-libs/​esp32c6/​lib
 +  -lesp_zb_api.zczr
 +  -lzboss_stack.zczr
 +  -lzboss_port.native
 +  -lzboss_port.remote
 lib_deps = lib_deps =
   adafruit/​Adafruit NeoPixel@^1.12.0   adafruit/​Adafruit NeoPixel@^1.12.0
 +
  
 </​code>​ </​code>​
Line 229: Line 251:
 [[iothings:​laboratoare:​2025_code:​lab5_2|Click here to get the code for this example.]] [[iothings:​laboratoare:​2025_code:​lab5_2|Click here to get the code for this example.]]
  
 +====== Switch as a Sleepy ED ======
 +
 +The previous example has the downside that the ED can be battery powered, but the code is not particularly optimized for energy saving. As a regular user will not press the switch more that a dozen times a day, it makes a lot of sense to keep the switch ED in deep sleep and wake only when the button is pressed. waking from deep sleep equates to having a hardware reset, so we will need to persist switch logic into the non-volatile RTC memory. This is all handled in the code below.
 +
 +[[iothings:​laboratoare:​2025_code:​lab5_3|Click here to get the code for this example.]]
 +
 +<​note>​**Assignment 1:**
 +Use the on-board BME680 sensor to switch lights on/off depending on the switch temperature instead of pushing a button. For example, if the temperature is above 25 degrees C, the light should turn on.
 +</​note>​
 +
 +<​note>​**Assignment 2:**
 +Encode more than simple on/off behavior from the switch. For example, a press toggles, and a hold dims up/down. Add a long-press detector on GPIO 9 and send MoveWithOnOff / Stop commands; on the bulb, implement Level Control callbacks to set NeoPixel brightness with transition times.
 +</​note>​
 +
 +<​hidden>​
 +Pentru asistenți: la laboratorul ăsta o să aveți nevoie de un gateway Home Assistant cu stick Zigbee Coordinator atașat. Dacă nu aveți așa ceva, întrebați-l pe Dan Tudose.
 +
 +</​hidden>​
iothings/laboratoare/2025/lab5.1761121121.txt.gz · Last modified: 2025/10/22 11:18 by dan.tudose
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0