Mesh设计出来的目的主要是为了解决什么呢?在我看来比较适合的场景为数据量小,对可靠性或者实时性要求不高,但规模较大的场景。
我们知道BLE 5.0出现的多连接理论上可以支持一个蓝牙设备连接无限制个设备,但实际上由于芯片资源限制,一个设备能连接10个设备就算极限了,而且对于成本来说极不划算。在这种情况下,mesh的优势之一就在于不需要建立连接,因此发送消息的步骤相对来说要少一点,可以试着比较一下广播和通信的区别,没有握手这一环节,广播的操作更加简单;另一个优势就是,不需要太考虑资源的消耗,mesh只关心发出去,对于谁收到并不是特别关心,因此可以适用于超大规模的场景;第三个优势在于传播范围广,由于mesh支持中继功能,每个节点都可以看做一个中继站,因此以牺牲实时性为代价换来了传输范围的增加。当然缺点也很明显,由于没有建立连接,所以mesh节点之间的通信是不可靠,要形成可靠的通信,就需要来回不断确认,因此数据传输效率不高,因此适用于数据量小,对可靠性和实时性要求不高的场景,并且消息属于泛洪网络,消息多的情况下容易造成网络拥堵,因此mesh中消息的过滤、转发都需要精心的设计。

1. 几种常见的mesh应用场景

1.1 灯控

目前Mesh应用场景最广的就是灯控了,SIG也设计了专门的Light Model,比较全面的覆盖了灯的功能。通过无线的方式控制大规模的灯,减少了布线的复杂度,并且成本增加并不高,但灵活性大大增加,可以说在这方面mesh灯控优势比较大。因此大部分mesh的厂商也都在首推这方面。

1.2 工厂

工厂也是一个比较适合mesh的场景,工厂随处可见的sensor,都可以通过mesh网络进行消息通知和无人管理,这类消息数据量小并且对实时性要求不高,并且规模大,距离远都与mesh的特点相契合。

1.3 农业

农业的大棚也同工厂一样,范围大,温度湿度等信息对实时性要求也不高,可能一两个小时通知一次就够了,通过mesh网络可以极大地减少人力成本。

1.4 家居

家居利用mesh的大范围,可以对大量的设备进行控制,如灯控,电扇,空调等延时1-2s,对于使用人员完全是可以接受的。可以群控,比如关闭厨房所有灯,打开所有电扇,调整客厅的电扇风速等,还可以添加特定的profile,实现wifi等网关,与其他无线通信方式互联。通过手机远程查看家里电器状态等功能。

1.5 公司

每一层每一个区域的灯和空调的控制,每个工位的员工信息更新等等。员工工牌邮件、会议等通知,智能打卡等。

1.6 其他

其他人多且集中的地方,比如医院、监狱等都可以使用mesh技术来进行监测等。

2. 利用Model进行App开发

Mesh的App开发主要依托于Model,每个Model都有自己特定的功能,通过把不同功能的Model组合在一起,从而完成一个特定功能的App。类似于搭积木或者C++里面的类。App开发人员只需要明确此App需要什么功能,然后挑选具有该功能的Model,然后考虑怎么把这么Model组合起来,设计不同Model之间的联动,以及上层Model的数据处理即可。Model开发人员则只需要完成此Model的功能,保证Model的性能就OK。

下面的文章将会介绍如何设计一个Model。