zigbee 与 esp8266 有何不同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zigbee 与 esp8266 有何不同相关的知识,希望对你有一定的参考价值。

yooooo,题主好啊。


题主的题干,其实有些问题。


Zigbee是物联网的一种协议,与wifi并列。


而esp8266是一种wifi芯片,这我简单说说zigbee和wifi两种协议的特点吧,网上其实有很多写得很好,我摘抄一下:


ZigBee/WiFi/蓝牙?谁更适合智能家居

2014-12-24 08:58 [编辑:nicolelee]in分享

智能家居无疑是这几年来热门的研究对象之一,而今年随着蓝牙4.0技术的推出,其低功耗,低成本,传输速率快的特点让更多的人选择了蓝牙方案开发智能家居,让智能家居这个市场形成了蓝牙,WiFi,ZigBee三足鼎立的一个局面。本文主要针对三种方案的原理,技术特点及优缺点作出了一个对比并以此展望了智能家居市场的未来。

1. ZigBee (紫峰协议)  

ZigBee简介 
Zigbee是IEEE 802.15.4协议的简称,它来源于蜜蜂的八字舞,蜜蜂(bee)是通过飞翔和“嗡嗡”(zig)抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,而ZigBee协议的方式特点与其类似便更名为ZigBee。ZigBee主要适合用于自动控制和远程控制领域,可以嵌入各种设备,其特点是传播距离近、低功耗、低成本、低数据速率、可自组网、协议简单。

ZigBee的主要优点如下:

     
1. 功耗低       
对比Bluetooth与WiFi,在相同的电量下(两节五号电池)可支持设备使用六个月至两年左右的时间,而Bluetooth只能工作几周,WiFi仅能工作几小时。     

2. 成本低     
ZigBee专利费免收,传输速率较小且协议简单,大大降低了ZigBee设备的成本。    

3. 掉线率低     
由于ZigBee的避免碰撞机制,且同时为通信业务的固定带宽预留了专用的时间空隙,使得在数据传输时不会发生竞争和冲突;可自组网的功能让其每个节点模块之间都能建立起联系,接收到的信息可通过每个节点模块间的线路进行传输,使得ZigBee传输信息的可靠性大大提高了,几乎可以认为是不会掉线的。   

4. 组网能力强        
ZigBee的组网能力超群,建立的网络每个有60,000个节点。     
   
5. 安全保密           
ZigBee提供了一套基于128位AES算法的安全类和软件,并集成了IEEE 802.15.4的安全元素。         


6. 灵活的工作频段
2.4 GHz,868 MHz及915 MHz的使用频段均为免执照频段。     
   
ZigBee的缺点如下:    


1. 传播距离近         
若在不适用功率放大器的情况下,一般ZigBee的有效传播距离一般在10m——75m,主要还是适用于一些小型的区域,例如家庭和办公场所。但若在牺牲掉其低掉线率的优点的前提下,以节点模块作为接收端也作为发射端,便可实现较长距离的信息传输。     
   
2. 数据信息传输速率低          
处于2.4 GHz的频段时,ZigBee也只有250 Kb/s的传播速度,而且这单单是链路上的速率且不包含帧头开销、信道竞争、应答和重传,去除掉这些后实际可应用的速率会低于100 Kb/s,在多个节点运行多个应用时速率还要被他们分享掉。   
   
3. 会有延时性         
ZigBee在随机接入MAC层的同时不支持时分复用的信道接入方式,因此在支持一些实时的应用时会因为发送多跳和冲突会产生延时。


ZigBee/WiFi/蓝牙?谁更适合智能家居

2014-12-24 08:58 [编辑:nicolelee]in分享

智能家居无疑是这几年来热门的研究对象之一,而今年随着蓝牙4.0技术的推出,其低功耗,低成本,传输速率快的特点让更多的人选择了蓝牙方案开发智能家居,让智能家居这个市场形成了蓝牙,WiFi,ZigBee三足鼎立的一个局面。本文主要针对三种方案的原理,技术特点及优缺点作出了一个对比并以此展望了智能家居市场的未来。

1. ZigBee (紫峰协议)  

ZigBee简介 
Zigbee是IEEE 802.15.4协议的简称,它来源于蜜蜂的八字舞,蜜蜂(bee)是通过飞翔和“嗡嗡”(zig)抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,而ZigBee协议的方式特点与其类似便更名为ZigBee。ZigBee主要适合用于自动控制和远程控制领域,可以嵌入各种设备,其特点是传播距离近、低功耗、低成本、低数据速率、可自组网、协议简单。

ZigBee的主要优点如下:     
1. 功耗低       
对比Bluetooth与WiFi,在相同的电量下(两节五号电池)可支持设备使用六个月至两年左右的时间,而Bluetooth只能工作几周,WiFi仅能工作几小时。     

2. 成本低     
ZigBee专利费免收,传输速率较小且协议简单,大大降低了ZigBee设备的成本。    

3. 掉线率低     
由于ZigBee的避免碰撞机制,且同时为通信业务的固定带宽预留了专用的时间空隙,使得在数据传输时不会发生竞争和冲突;可自组网的功能让其每个节点模块之间都能建立起联系,接收到的信息可通过每个节点模块间的线路进行传输,使得ZigBee传输信息的可靠性大大提高了,几乎可以认为是不会掉线的。   

4. 组网能力强        
ZigBee的组网能力超群,建立的网络每个有60,000个节点。     
   
5. 安全保密           
ZigBee提供了一套基于128位AES算法的安全类和软件,并集成了IEEE 802.15.4的安全元素。         

6. 灵活的工作频段
2.4 GHz,868 MHz及915 MHz的使用频段均为免执照频段。     
   
ZigBee的缺点如下:    
1. 传播距离近         
若在不适用功率放大器的情况下,一般ZigBee的有效传播距离一般在10m——75m,主要还是适用于一些小型的区域,例如家庭和办公场所。但若在牺牲掉其低掉线率的优点的前提下,以节点模块作为接收端也作为发射端,便可实现较长距离的信息传输。     
   
2. 数据信息传输速率低          
处于2.4 GHz的频段时,ZigBee也只有250 Kb/s的传播速度,而且这单单是链路上的速率且不包含帧头开销、信道竞争、应答和重传,去除掉这些后实际可应用的速率会低于100 Kb/s,在多个节点运行多个应用时速率还要被他们分享掉。   
   
3. 会有延时性         
ZigBee在随机接入MAC层的同时不支持时分复用的信道接入方式,因此在支持一些实时的应用时会因为发送多跳和冲突会产生延时。

ZigBee的具体应用       
ZigBee的问世已经有很长一段时间,但是由于传输速率且目前电子设备中配置其模块的比例几乎为零,在2010年前几乎没有什么出名的具体应用。在LED火热的这几年,人们发现ZigBee适用于灯光照明系统,智能家居系统这种不需要传输速率很快的系统。最近还有应用在无线定位系统中并在具体的项目上得到了实施。

2. Bluetooth(蓝牙协议)   

蓝牙简介  
蓝牙协议是由爱立信公司创造并于1999年5月20日与其他业界领先开发商一同制定了蓝牙技术标准,最终将此种无线通信技术命名为蓝牙。蓝牙技术是一种可使电子设备在10~100 m的空间范围内建立网络连接并进行数据传输或者语音通话的无线通信技术。

蓝牙发展趋势      
蓝牙技术联盟(Bluetooth Special Interest Group,SIG)日前宣布蓝牙4.0版本正式问世,且制定了技术标准并开始了认证计划。蓝牙4.0在保持3.0+HS高速传输技术的基础上又加入了某开发商力推的Wibree低功耗传输技术。     
   
蓝牙4.0是IEEE 802.15.1传统蓝牙,IEEE 802.11物理层和MAC层以及Wibree三者的结合体,已和大家传统认识中只适用于WPAN的蓝牙有着天壤之别,在未来几年蓝牙会持续这几年的发展趋势进入一个应用狂潮。
   
蓝牙4.0最大的突破和技术特点便是沿用Wibree的低功耗传输,它采用简单的GFSK调制因而有着极低的运行和待机功耗,即使只是一颗纽扣电池也可支持设备工作几年以上。     
   
蓝牙4.0的网络拓扑与ZigBee的星形拓扑相比来得简单且传输速率是ZigBee的几倍以上,在传输距离上相对NFC又有较大优势,加之其在手机与音频领域的广泛应用,作为一个问世不久的新技术,它对ZigBee和NFC的威胁力度却不容忽视,未来发展不可限量。

蓝牙的优点如下:
1. 功耗低且传输速率快     
蓝牙的短数据封包特性是其低功耗技术特点的根本,传输速率可达到1Mb/s,且所有连接均采用先进的嗅探性次额定功能模式以实现超低的负载循环。     
   
2. 建立连接的时间短       
蓝牙用应用程序打开到建立连接只需要短短的3ms,同时能以数毫秒的传输速度完成经认可的数据传递后并立即关闭连接。     
   
3. 稳定性好       
蓝牙低功耗技术使用24位的循环重复检环(CRC),能确保所有封包在受干扰时的最大稳定度。        

4. 安全度高         
CCM的AES-128完全加密技术为数据封包提供高度加密性及认证度。     
   
蓝牙的缺点如下: 
1. 数据传输的大小受限
高速跳频使得蓝牙传输信息时有极高的安全性但同时也限制了蓝牙传输过程中数据包不可能太大。即使在所谓的高保真蓝牙耳机中高低频部分也是会被严重压缩的。

2. 设备连接数量少
相对于Wifi与ZigBee,蓝牙连接设备能力确实较差,理论上可连接8台设备,实际上也就只能做到6——7个设备连接。

3. 蓝牙设备的单一连接性
假设我用A手机连接了一个蓝牙设备,那么B手机是连接不上它的,一定要我与此蓝牙设备之间的握手协议断开B手机才能连接上它。

蓝牙应用         
从最初的蓝牙传输数据使得蓝牙技术在手机上广泛运用,再到后来蓝牙耳机和蓝牙无线鼠标的风靡,再到时下最流行的蓝牙智能家居系统,蓝牙对人们生活产生的便利不言而喻。凭借着其在电子产品中的高配置比,人们对蓝牙新产品的接受程度会高于ZigBee,NFC等产品。电子窗帘,吸尘器机器人,抽油烟机,智能穿戴产品,低功耗的蓝牙4.0将有更大的应用市场。     

WiFi(无线保真协议)

WiFi技术简介    
WiFi(Wireless Fidelity,无线保真技术)是IEEE 802.11的简称,是一种可支持数据,图像,语音和多媒体且输出速率高达54Mb/s的短程无线传输技术,在几百米的范围内可让互联网接入者接收到无线电信号。WiFi的首版于1997年问世,当时其中定义了物理层和介质访问接入控制层(MAC层)并在规定了无线局域网的基本传输介质和网络结构的同时规范了介质访问层(MAC)的特性和物理层(PHY),其中物理层采用的是FSSS(调频扩频)技术、红外技术和DSSS(直接序列扩频)技术。在1999年又新增了IEEE 802.11g和IEEE 802.11a标准进行完善。  

WiFi技术特点    
1. 传输范围广 
WiFi的电波覆盖范围半径高达100 m,甚至连整栋大楼都可以覆盖,相对于半径只有15m蓝牙,优势相当明显。     
   
2. 传输速度快        
高达54Mb/s的传输速率使得WiFi的用户可以随时随地接收网络,并可快速地享受到类似于网络游戏、视频点播(VOD)、远程教育、网上证券、远程医疗、视频会议等一系列宽带信息增值服务。在这飞速发展的信息时代,速度还在不断提升的WiFi必能满足社会与个人信息化发展的需求。

3. 健康安全       
WiFi设备在IEEE 802.11的规定下发射功率不能超过100 mW,而实际的发射功率可能也就在60~70 mW。与类似的通信设备相比,手机发射功率约在200 mW~1 W,而手持式对讲机更是高达5 W。相对于这两者WiFi产品的辐射更小。     
   
4. 普及应用度高        
现今配置WiFi的电子设备越来越多,手机、笔记本电脑、平板电脑、MP4几乎都将WiFi列入了他们的主流标准配置。

WiFi发展趋势       
前段时间WiFi技术联盟推出了WiFi Direct标准,这也表示着WiFi在上网本、智能手机、电视机、机顶盒和其他设备中的采用率不断上升的同时也开始要涉及蓝牙传统的WPAN领域。据市场调查公司In-Stat的调查数据,预计到2013年全球将新增2.16亿个配置WiFi模块的电子设备。        


传统标配中较热门的蓝牙与红外目前只剩下蓝牙,新增的配置包括重力感应,GPS及WiFi,当中已WiFi配置比例最高。WiFi已经几乎已成为目前手机及其他类似电子设备中的标配。目前市面上的平板,笔记本电脑及智能手机几乎全部配置有WiFi模块。          
   
近日,博通无线连接集团GPS业务组市场总监David Murray表示,与竞争对手相比,博通的解决方案有更多的优势——除了利用卫星信号,还通过WiFi和基站来进行辅助定位。值得一提的是,WiFi的加入让难以接收卫星信号的室内得以实现精确定位。

参考技术A ESP8266是一款高性能无线SOC,集成了业界领先的TensilicL106超低功耗32位微MCU,具有16位缩减模式,主频支持80MHz和160MHz,支持RTOS,集成了Wi-FiMAC/BB/RF/PA/LNA,板载天线。ESP8266采用gagent固件编程,可快速实现设备M2M接入、数据统计分析、远程控制、OTA升级、第三方接口等功能服务。该固件支持SoC解决方案和二次开发,大大降低了开发成本,缩短了开发周期。
ZigBee模块也是物联网的理想选择之一。虽然ZigBee通常工作在2.4GHzISM频段,但它也可以用于902MHz至928MHz和868MHz频段。2.4GHz频段的数据速率为250kb/s,可用于点对点、星形和网格配置,最高支持216个节点。与其他技术一样,安全性由AES-128加密保证。ZigBee的一大优势在于,它为特定应用(包括物联网)提供预先开发的软件应用配置文件。最终产品必须获得许可。ZigBee模块可以嵌入到各种设备中,在自动控制和远程控制领域有非常广阔的应用场景。

测试ESP32-Zigbee转发命令 : 滑轨继电器控制

简 介: 本文给出了利用ESP32-Zigbee 转发模块控制滑轨与继电器控制命令。

关键词 ESP32Zigbee继电器

ESP32转发Zigbee 目 录
Contents
继电器命令 滑轨控制命令 单轴步进驱
动SH-20403
双轴滑轨控制 双轴SH20403 总 结

 

§01 ESP32转发Zigbee


   利用ESP32构造一个ZIGBEE的网络发送转接 构造了一个通过ESP32转发ZigBee转发模块。下面对于这个模块中相关的很多命令进行测试。

一、继电器命令

  改造其中的 zbcmd 函数,然后重新定义了一组继电器相关的命令。下面命令经过测试都可以正常执行。

#------------------------------------------------------------
ESP32_ZIGBEE_IP     = '192.168.0.114'
ESP32_ZIGBEE_PORT   = 4567

def zbcmd(str):
#    ccloadSerial.write(str + b'\\r')
    strcmd = str + '\\r'
    udpsendstr(ESP32_ZIGBEE_IP,
               ESP32_ZIGBEE_PORT,
               strcmd)

  下面是相应的改造命令:

#------------------------------------------------------------
def V45ON():
    zbcmd('on')

def V45OFF():
    zbcmd('off')

def V45SET(num):
   zbcmd('set %d'%num)

#------------------------------------------------------------
def RClick():
    zbcmd('solenoidrelay pulse 4 50')

def R1Click(t):
    zbcmd('solenoidrelay pulse 2 %d'%t)
    zbcmd('solenoidrelay pulse 2 %d'%t)

def R2Click(t):
    zbcmd('solenoidrelay pulse 8 %d'%t)
    zbcmd('solenoidrelay pulse 8 %d'%t)

def R1ON():
    zbcmd('solenoidrelay on 2')
    zbcmd('solenoidrelay on 2')

def R1OFF():
    zbcmd('solenoidrelay off 2')
    zbcmd('solenoidrelay off 2')

def R2ON():
    zbcmd('solenoidrelay on 8')
    zbcmd('solenoidrelay on 8')

def R2OFF():
    zbcmd('solenoidrelay off 8')
    zbcmd('solenoidrelay off 8')

def OCON(bit123):
    setbit = 0x0

    if (bit123 & 0x1) != 0:
        setbit = setbit | 0x10

    if (bit123 & 0x2) != 0:
        setbit = setbit | 0x20

    if (bit123 & 0x4) != 0:
        setbit = setbit | 0x40

    zbcmd('solenoidrelay on %x'%setbit)

def OCOFF(bit123):
    setbit = 0x0

    if (bit123 & 0x1) != 0:
        setbit = setbit | 0x10

    if (bit123 & 0x2) != 0:
        setbit = setbit | 0x20

    if (bit123 & 0x4) != 0:
        setbit = setbit | 0x40

    zbcmd('solenoidrelay off %x'%setbit)

def RAllON():
    zbcmd('solenoidrelay set 0x7b')

def RALLOFF():
    zbcmd('solenoidrelay set 0x0')

def RSetHV(num):
    zbcmd('solenoidrelay hv %x'%num)

二、滑轨控制命令

1、单轴步进驱动SH-20403

  在 单轴步进驱动模块SH-20403 给出了 SH-20403的驱动参数。

▲ 图1.2.1 单轴驱动器

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# LSCM8.PY                     -- by Dr. ZhuoQing 2022-08-01
#
# Note:
#============================================================

from headm import *
from tsmodule.tshardware    import *


#------------------------------------------------------------
COMMAND_FRAME_HEAD		= 0x56
COMMAND_FRAME_TAIL		= 0x65

COMMAND_STATUS_WAIT		= 0x0
COMMAND_STATUS_COMMAND	        = 0x1
COMMAND_STATUS_LENGTH	        = 0x2
COMMAND_STATUS_DATA		= 0x3
COMMAND_STATUS_CHECK	        = 0x4
COMMAND_STATUS_TAIL		= 0x5

#------------------------------------------------------------
COMMAND_HELLO_ECHO		= 0x20
COMMAND_BEEP_ON			= 0x21
COMMAND_BEEP_OFF		= 0x22
COMMAND_DIR_ON			= 0x23
COMMAND_DIR_OFF			= 0x24
COMMAND_REL_ON			= 0x25
COMMAND_REL_OFF			= 0x26
COMMAND_PUL_SET			= 0x27
COMMAND_PUL_STOP		= 0x28
COMMAND_GOTO_HEAD		= 0x29
COMMAND_GOTO_TAIL		= 0x2A
COMMAND_GET_STATE		= 0x2B
COMMAND_GET_PULSEOUT	        = 0x2C
COMMAND_CLEAR_PULSEOUT	        = 0x2D

#------------------------------------------------------------
def lscm8cmd(cmd, cmddata):

    checksum = cmd + len(cmddata)
    for cd in cmddata:
        checksum = checksum + cd

    checksum = (checksum & 0xff) ^ 0xff

    cmdstr = b'' + byte(COMMAND_FRAME_HEAD) + byte(cmd) + byte(len(cmddata)) +\\
             cmddata + byte(checksum) + byte(COMMAND_FRAME_TAIL)

    zbdata(cmdstr)

def lscm8hello():
    lscm8cmd(COMMAND_HELLO_ECHO, b'')

def lscm8beepon():
    lscm8cmd(COMMAND_BEEP_ON, b'')

def lscm8beepoff():
    lscm8cmd(COMMAND_BEEP_OFF, b'')

#------------------------------------------------------------
def lscm8relon(bits):
    cmd = bits.to_bytes(1, byteorder='big')
    lscm8cmd(COMMAND_REL_ON, cmd)

#------------------------------------------------------------
# bits:0:relay0, 1:relay1
def lscm8reloff(bits):
    cmd = bits.to_bytes(1, byteorder='big')
    lscm8cmd(COMMAND_REL_OFF, cmd)

def lscm8diron(bits):
    cmd = bits.to_bytes(1, byteorder='big')
    lscm8cmd(COMMAND_DIR_ON, cmd)

def lscm8diroff(bits):
    cmd = bits.to_bytes(1, byteorder='big')
    lscm8cmd(COMMAND_DIR_OFF, cmd)

#------------------------------------------------------------
def lscm8setpulse(bits, pulse):
    cmd = bits.to_bytes(1, byteorder='big') +\\
          pulse.to_bytes(4, byteorder='big')
    lscm8cmd(COMMAND_PUL_SET, cmd)

def lscm8stoppulse():
    lscm8cmd(COMMAND_PUL_STOP, b'')

def lscm8gotohead():
    lscm8cmd(COMMAND_GOTO_HEAD, b'')

def lscm8gototail():
    lscm8cmd(COMMAND_GOTO_TAIL, b'')

def lscm8clearpulseout():
    lscm8cmd(COMMAND_CLEAR_PULSEOUT, b'')

def lscm8mf(steps):
    lscm8diron(3)
    lscm8reloff(3)
    lscm8setpulse(3, steps)

def lscm8mb(steps):
    lscm8diroff(3)
    lscm8reloff(3)
    lscm8setpulse(3, steps)

#------------------------------------------------------------
if __name__ == "__main__":
    lscm8mb(1000)
#------------------------------------------------------------
#        END OF FILE : LSCM8.PY
#============================================================

2、双轴滑轨控制

  这个控制器在 DRV8825步进电机驱动控制模块以及双轴平台 进行了描述。

▲ 图1.2.1 Zigbee双轴驱动器

  三组命令:

  • zbcmd(’drvm1 1000’) : 对于顶层移动;
  • zbcmd(’drvm2 1000’):对于底层驱动;
  • zbcmd(’drvorg’) : 两个电机都回复的复位原点。

  当参数大于零时,平台原理步进电机;当参数小于0,平台移动到步进电机;

  • 移动参数: N= 200000,移动距离:6.6mm
from headm import *
from tsmodule.tshardware    import *

zbcmd('drvorg')

3、双轴SH20403

  在 SH-20403AXIS12双轴蓝牙移动框架 给出了这款ZIGBEE移动控制框架的描述。

▲ 图1.2.3 SH-20403双轴蓝牙移动

(1)波特率:115200;
(2)COM2:该端口已经连接有ZIGBEE

(1)波特率:115200;
(2)COM2:该端口已经连接有ZIGBEE

  2.通讯命令
  ① sm2pul n1 n2 : 同时移动AXIS1,AXIS2
  ② sm2pul1 n1:移动AXIS1

  n1的范围 41000
  ③ sm2pul2 n2:移动AXIS2

  n2范围:195000:
  移动距离100mm
  ④ sm2arr n : 0~65535 :设置TIM1的ARR
  该数值不要小于50.

 

  结 ※


  文给出了利用ESP32-Zigbee 转发模块控制滑轨与继电器控制命令。


■ 相关文献链接:

● 相关图表链接:

以上是关于zigbee 与 esp8266 有何不同的主要内容,如果未能解决你的问题,请参考以下文章

基于CC2530(ZigBee)设计的自动照明系统

利用TCP工具实现esp8266点灯控制程序

<2> esp8266 iot 程序下载

<2> esp8266 iot 程序下载

Arduino ESP8266基于异步http网页定时器

ALL-51单片机ESP8266学习-AT指令(ESP8266作为TCP客户端,连接自己制作的TCP服务器)