SKU:U110
Zigbee is a self-organizing network communication module launched by M5Stack. The module adopts the CC2630F128 solution, integrates the Zigbee protocol stack internally, and provides an open serial communication interface. It features an external antenna, with a stable single-node communication distance of up to 1 km and supports up to 200 levels of router depth. Through MESH networking, it can significantly extend the range of your IoT applications, offering both ultra-low power consumption and high sensitivity. The Zigbee network can support hundreds of nodes and has enhanced security features, providing a complete and interoperable IoT solution for home and building automation.
Resources | Parameter |
---|---|
CC2630F128 | ARM Cortex-M3 32bit |
communication | UART 38400bps 8N1(default) |
Communication distance | 1km (Open area) |
working frequency | 2.4GHZ (2405MHz-2480MHz, step:5MHz) |
Net weight | 24g |
Gross weight | 50g |
Product Size | 71.5*24*8mm |
Package Size | 136*92*10mm |
Core | TX(GPIO 17) | RX(GPIO 16) | 5V | GND |
---|---|---|---|---|
Zigbee Unit | RX | TX | VIN | GND |
DRFZigbee.h - API
//Initialize the serial port of the module
void begin(HardwareSerial & uart){ _uartp = &uart;}
//Connect the module. After execution, the module will disconnect the wireless link and enter the configuration mode.
int linkMoudle();
//Read and write module configuration parameters
int readModuleparm(zigbee_arg_t *parm);
int setModuleparm(zigbee_arg_t &parm);
//Get network topology
int getNetworksTopology();
//After completing the configuration, you need to execute the program to restart the module and restore the wireless connection
int rebootModule();
//Get module signal quality
int8_t getModuleRSSI(nodeRSSI_t *nodeRSSIPtr = nullptr);
//Receive data
int reviceData(reviceData_t *revice,uint8_t type = kP2PCustomIDMode,size_t timeout = 1000);
//send data
void sendData(uint8_t cmd, const std::initializer_list<uint8_t> args);
int sendCMDAndWaitRevice(uint8_t cmd, byteArray &array, byteArray *reviceArray = nullptr, size_t timeout = 1000);
int sendCMDAndWaitRevice(uint8_t cmd, const std::initializer_list<uint8_t> args, byteArray *reviceArray = nullptr, size_t timeout = 1000);
int sendDataP2P(uint8_t mode,uint16_t addr,uint8_t *dataptr,size_t length);
int sendDataP2P(uint8_t mode,uint16_t addr,byteArray &array);
int sendDataP2P(uint8_t mode,uint16_t addr,const std::initializer_list<uint8_t> args);
--------------------------------------------------------------
//Module configuration parameter item
DRFZigbee::zigbee_arg_t *arg = new DRFZigbee::zigbee_arg_t;
uint8_t main_pointType;
uint16_t main_PANID;
uint8_t main_channel;
uint8_t main_transmissionMode;
uint16_t main_customID;
uint16_t main_res0;
uint8_t main_uartBaud;
uint8_t main_uartBit;
uint8_t main_uatrtStop;
uint8_t main_uartCheck;
uint16_t main_res1;
uint8_t main_ATN;
uint8_t main_mac[8];
//Configure preset parameters-complete configuration preset parameters can be used to quickly access the network from the node without settings
uint8_t preset_pointType;
uint16_t preset_PANID;
uint8_t preset_channel;
uint8_t preset_transmissionMode;
uint16_t preset_customID;
//reserved
uint16_t preset_res0;
uint8_t preset_uartBaud;
uint8_t preset_uartBit;
uint8_t preset_uatrtStop;
uint8_t preset_uartCheck;
//reserved
uint16_t preset_res1;
uint8_t preset_ATN;
uint16_t shortAddr;
uint8_t res3;
uint8_t encryption;
uint8_t password[4];