不久的将来是物联网。也就是说,不仅在地理上最大程度地覆盖了全球网络,而且还渗透到了生活的各个领域。包括我们的房屋在内,几乎所有家用电器中都有。这就需要进一步开发带有设备的收发器网络。
认为只有IT行业的公司才参与Internet的全面渗透和扩展问题是徒劳的。根据估计,这项任务原则上具有如此规模,范围和复杂性,即由多个不同的跨国公司创建的企业集团。
例如,在具有煽动性的Ilon Mask和他的公司SpaceX(航天工业)的主持下,雄心勃勃的Starlink项目开始实施。传统上,对他而言,计划是“拿破仑式”的:他们威胁要在不同高度的轨道上发射近12千颗卫星。到2024年,他们承诺以1 GB /从到 世界上任何地方。
最近的竞争对手 - OneWeb专案,在维珍银河(Virgin Galactic),高通(Qualcomm),空中客车(Airbus)甚至可口可乐(Coca-Cola)的全面领导下, 共同投资者。它们的范围显然更适中,因此似乎更现实。该计划旨在发射近2千颗低轨道卫星。空间网络明显不那么“密集”,但是为了高质量和高可用性,将部署功能更强大的地面收发器基础结构。他们承诺在2027年之前为地球上的每个居民提供通道。
在这种“泰坦之战”的背景下,人们不禁要关注更多的本地项目。同时,即使仅仅是因为他们的明显需要,他们也同样有前途。
重要的信息! 俄罗斯还参加了OneWeb项目。特别是,在2月28的Soyuz-ST-B运载火箭2019的帮助下,测试车辆成功发射,并从库拉国际机场发射到6轨道。
IBM曾是IT行业的全球巨头,曾经是微电子领域的潮流引领者,但仍力争走在前列。如果不是以前那样,那么至少在部门上寻求保持在高科技市场的主要地位。特别是在2018中,他们举行了公开的“代码征集”竞赛,为此目的开放了自己设计的软件代码。他的想法是提出一个这样的人工智能(AI)系统项目,该项目可以帮助处于紧急情况下的人们(例如在自然灾害期间)。
值得注意的是,胜利是由一个前黑客团队开发的,名为Project Owl。其本质 - 在电话服务不可用时联系并拨打紧急救援服务的能力。
这可以通过网络的现有元素来实现,并通过特殊集线器(信号放大器)进行部分补充。事实是,在许多地方,现有的低频Wi-Fi都具有所谓的“灰色地带”和Internet连接。因此,在使用放大器的情况下,智能手机可以配备附加功能,以在失去正常的蜂窝通信的情况下连接到紧急服务。
集线器本身有一个半开玩笑的名字DuckLinks。通过与橡皮鸭相似的原理用于浴室。因为建议的网络应该位于任何地方,也就是在水上。因此,该设备具有不规则多面体的形状,而防震和 防水。 但是他的颜色是一样的 黄色。 积极解决低成本问题对于其广泛使用也很重要。
如有必要,通过从空中排放相对少量的DuckLink,可以将覆盖网络扩展到100 sq。公里 在遭受毁灭性飓风玛丽袭击后,第一批实际测试在波多黎各的2017进行。然后将这些设备在不同的条件和环境下倾倒在船和汽车上。
IT技术领域的竞赛通常是雄心勃勃的,规模宏大。这使得它的一些参与者没有注意到她脚下的过程。幸运的是,有些人提供了易于实施的原创思想。最重要的是 - 非常有前途的使用。
我真的无语了,本来对这个东西感兴趣。找遍全网都找不到关于这个的详细资料。都在搞新闻。真是无语~
https://github.com/Code-and-Response/ClusterDuck-Protocol
http://clusterduckprotocol.org/
官网首页
基于鸭子的作品
2017年,五级飓风玛丽亚袭击了波多黎各,对岛上的基础设施造成了严重破坏。飓风过后很长一段时间,通讯和电源被禁用,造成了持久影响。如果平民能够访问基本网络,并在其中向紧急服务和地方政府发送短信,则许多这些问题本来可以避免。
ClusterDuck协议是由Project OWL创建的,它是一种易于使用的移动网状网络,人们无需特定的硬件或预先下载的软件(如移动应用程序)即可访问。自创建以来,ClusterDuck协议的愿景已不仅仅是在飓风过后为有需要的人提供服务,还针对地震,山火,蜂窝拥塞(大型事件),传感器网络等更多用例。OWL项目将此项目开源,以便ClusterDuck协议可以尽快到达需要它的社区,并继续探索新的方向。
网络由称为“ Ducks”的多个节点组成。ClusterDuck网络中有3个核心角色:DuckLink,MamaDuck和PapaDuck。DuckLinks充当仅传输数据的边缘节点。这些功能用作远程传感器或作为Captive Portal的其他访问点。MamaDucks继承了DuckLinks的相同功能,但也接收消息。MamaDucks重复来自DuckLinks和其他MamaDucks的消息,直到消息到达PapaDuck。PapaDucks是收集所有数据并可以存储或推送到云的网络端点。(即将推出免费的层云平台)
强制门户是ClusterDuck协议网络中的重要功能。Captive Portal允许智能手机和笔记本电脑等设备访问网络,而无需下载其他软件,因为它利用了智能手机(如Android和iPhone设备和笔记本电脑)固有的系统的优势。
这在地震或飓风等造成传统通信基础设施瘫痪的事件发生后非常有用。用户可以连接到DuckLink或MamaDuck的WiFi接入点,后者将依次转发其消息。
设置网络时,可能很难弄清Duck设备在现场的放置位置。使用DetectorDuck可以轻松确保在临时部署时Ducks能够保持连接性。它每隔3秒对ping一次进行工作,并获取最近的Duck设备的Pong的RSSI值。根据RSSI值,连接的RGB LED将在蓝色(范围内没有设备),绿色(良好连接),紫色(良好连接)和红色(正常连接)之间改变颜色。
要使用ClusterDuck协议,请遵循“ 如何构建Duck”安装指南。
在Arduino IDE中打开新草图或使用PlatformIO创建一个新项目,并包含ClusterDuck库
#include "ClusterDuck.h"
创建ClusterDuck对象
ClusterDuck duck;
初始化ClusterDuck类对象
duck.begin(baudRate);
初始化串行打印和消息传递的波特率。您可以调整到所需的波特率。
设置设备ID和强制门户格式长度。
duck.setDeviceId(String deviceId, const int formLength);
设置DuckLink
duck.setupDuckLink();
duck.setupMamaDuck
也可以在此处用于设置MamaDuck,但是不能在同一草图中同时使用两者。
添加相应的Duck运行代码。必须与中使用的设备类型相同setup()
。(例如,如果duck.setupMamaDuck()
在使用setup()
使用duck.runMamaDuck()
)
duck.runDuckLink();
您的草图应如下所示:
#include "ClusterDuck.h"
ClusterDuck duck;
void setup() {
// put your setup code here, to run once:
duck.begin();
duck.setDeviceId("Z", 10);
duck.setupDuckLink();
}
void loop() {
// put your main code here, to run repeatedly:
duck.runDuckLink();
}
现在编译并上传到您的设备。如果使用Heltec LoRa ESP32开发板,则应在LED屏幕上看到Duck Online消息。现在,您可以打开手机或笔记本电脑的Wi-Fi偏好设置,然后连接到SOS DuckLink Network
!
如果看不到强制门户网站屏幕,则可以通过访问neverssl.com来强制执行此操作,这将确保强制门户网站拦截HTTP请求。
setDeviceId(String deviceId)
setup()
。void begin(int baudRate)
setup()
。void setupDisplay(String deviceType)
setup()
。void setupLoRa(long BAND, int SS, int RST, int DI0, int DI1, int TxPower)
setup()
。void setFlag(void)
void setupWebServer(bool createCaptivePortal = false)
sendPayloadStandard(String msg)
setupInternet(String SSID, String PASSWORD)
void setupWifiAp(const char * AP)
void setupDns()
void setupInternet(String SSID, String PASSWORD)
int handlePacket()
void processPortalRequest()
loop()
。void setupDuckLink()
setup()
void runDuckLink()
loop()
。void setupDetect()
setup()
。void runDetect()
loop()
。void setupMamaDuck()
setup()
。void runMamaDuck()
loop()
。void sendPayloadMessage(String msg)
void sendPayloadStandard(String msg, String senderId = "", String messageId = "", String path = "")
sendPayloadMessage()
。senderId是消息发起者的ID。messageId是消息的UUID。ms是要发送的消息有效负载。path是消息的记录路径,用作检查以防止设备发送多个相同的消息。void couple(byte byteCode, String outgoing)
setDeviceId()
字节码参考。另外,它将传出长度写入LoRa数据包。bool idInPath(String path)
String * getPacketData(int pSize)
getLastPacket()
void restartDuck()
void reboot(void *)
restartDuck()
使用计时器时用于通话void imAlive(void *)
String duckMac(boolean format)
true
作为参数将返回使用格式化的MAC地址“:”String uuidCreator()
String getDeviceId()
Packet getLastPacket()
getPacketData()
volatile bool getFlag()
volatile bool getInterrupt()
int getRSSI()
Sting getSSID()
Sting getPassword()
void flipFlag()
void flipInterrupt()
void startReceive()
void startTransmit()
void ping()
void setupLED()
void setColor(int red, int green, int blue)
又是一个arduino的开源项目~我会跟着一起折腾~