├── struct.jpg ├── images ├── iot.jpg ├── rpi.jpg ├── MQTT.png ├── coap.jpg ├── grove.jpg ├── arduino.jpg ├── ip-stack.jpg ├── mbedos.png ├── security.jpg └── thread.jpg ├── security └── README.md ├── tools └── README.md ├── website └── README.md ├── framework └── README.md ├── protocol ├── MQTT.md └── MQTT.lib.md ├── hardware ├── README.md └── open_source_iot_tools.md ├── book └── README.md ├── EN.md ├── README.md ├── LICENSE └── Licence.txt /struct.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/awesome-iot-document/master/struct.jpg -------------------------------------------------------------------------------- /images/iot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/awesome-iot-document/master/images/iot.jpg -------------------------------------------------------------------------------- /images/rpi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/awesome-iot-document/master/images/rpi.jpg -------------------------------------------------------------------------------- /images/MQTT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/awesome-iot-document/master/images/MQTT.png -------------------------------------------------------------------------------- /images/coap.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/awesome-iot-document/master/images/coap.jpg -------------------------------------------------------------------------------- /images/grove.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/awesome-iot-document/master/images/grove.jpg -------------------------------------------------------------------------------- /images/arduino.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/awesome-iot-document/master/images/arduino.jpg -------------------------------------------------------------------------------- /images/ip-stack.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/awesome-iot-document/master/images/ip-stack.jpg -------------------------------------------------------------------------------- /images/mbedos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/awesome-iot-document/master/images/mbedos.png -------------------------------------------------------------------------------- /images/security.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/awesome-iot-document/master/images/security.jpg -------------------------------------------------------------------------------- /images/thread.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/phodal/awesome-iot-document/master/images/thread.jpg -------------------------------------------------------------------------------- /security/README.md: -------------------------------------------------------------------------------- 1 | #物联网安全相关 2 | 3 | ![Security](./images/security.jpg) 4 | 5 | ##拒绝服务攻击(Denial Of Service) 6 | 7 | > 拒绝服务攻击即攻击者想办法让目标机器停止提供服务,是黑客常用的攻击手段之一。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。拒绝服务攻击问题也一直得不到合理的解决,究其原因是因为这是由于网络协议本身的安全缺陷造成的,从而拒绝服务攻击也成为了攻击者的终极手法。攻击者进行拒绝服务攻击,实际上让服务器实现两种效果:一是迫使服务器的缓冲区满,不接收新的请求;二是使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。 8 | 9 | ###DDOS 10 | 11 | > 分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。通常,攻击者使用一个偷窃帐号将DDoS主控程序安装在一个计算机上,在一个设定的时间主控程序将与大量代理程序通讯,代理程序已经被安装在Internet上的许多计算机上。代理程序收到指令时就发动攻击。利用客户/服务器技术,主控程序能在几秒钟内激活成百上千次代理程序的运行。 12 | -------------------------------------------------------------------------------- /tools/README.md: -------------------------------------------------------------------------------- 1 | #物联网相关工具 2 | 3 | ##CoAP 4 | 5 | ###CoAP-CLI 6 | 7 | 语言: ``Javascript`` 8 | 9 | 主页: [https://github.com/mcollina/coap-cli](https://github.com/mcollina/coap-cli) 10 | 11 | > CoAP的命令行工具 12 | 13 | ###LibCoAP 14 | 15 | 语言: ``C`` 16 | 17 | 主页: [http://sourceforge.net/projects/libcoap/](http://sourceforge.net/projects/libcoap/) 18 | 19 | > Lightweight application-protocol for devices that are constrained their resources such as computing power, RF range, memory, bandwith, or network packet sizes. This protocol, CoAP, is developed in the IETF working group "CoRE", . 20 | 21 | 示例: 22 | 23 | ``起server`` 24 | 25 | coap-server 26 | 27 | ``测试`` 28 | 29 | coap-client -m get coap://localhost 30 | -------------------------------------------------------------------------------- /website/README.md: -------------------------------------------------------------------------------- 1 | #物联网相关网站 2 | 3 | ##最小物联网系统: 4 | 5 | [https://github.com/phodal/iot][iot] 6 | [iot]: https://github.com/phodal/iot 7 | 8 | ##Internet Of Things Architecture 9 | 10 | 首页: [Internet Of Things Architecture](http://www.iot-a.eu/) 11 | 12 | ###微软 13 | 14 | [Create the Internet of Your Things](http://www.microsoft.com/windowsembedded/en-us/internet-of-things.aspx) 15 | 16 | > When trillions of things can be connected, which things should you connect? 17 | 18 | > Empower your business and gain a competitive edge by connecting data from devices and sensors with the cloud and business intelligence tools. 19 | 20 | ##IETF CoAP协议 21 | 22 | [Constrained Application Protocol (CoAP) draft-ietf-core-coap-18](https://tools.ietf.org/html/draft-ietf-core-coap-18) 23 | 24 | > The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as 6LoWPAN often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine-to-machine (M2M) applications such as smart energy and building automation. -------------------------------------------------------------------------------- /framework/README.md: -------------------------------------------------------------------------------- 1 | #物联网相关框架 2 | 3 | ##WebIOPi 4 | 5 | > WebIOPi 6 | 7 | 平台: ``Raspberry Pi`` 8 | 协议: ``REST API``, ``HTTP Server``, ``CoAP Server`` 9 | 语言: ``Python``,``Javascript`` 10 | 主页: [https://code.google.com/p/webiopi/](https://code.google.com/p/webiopi/) 11 | 12 | ##GoBot 13 | 14 | > Gobot is a framework for robotics, physical computing, and the Internet of Things, written in the Go programming language. 15 | 16 | 平台: ``ARDrone``,``Arduino``,``Beaglebone Black``,``Digispark``,``Intel Edison``,``Joystick``,``Leap Motion``,``Mavlink``, ``Neurosky``,``OpenCV``,``Pebble``,``Raspberry Pi``,``Spark``,``Sphero`` 17 | 协议: ``MQTT`` 18 | 语言: ``GO`` 19 | 主页: [http://gobot.io/](http://gobot.io/) 20 | 21 | ##AllJoyn 22 | 23 | > AllJoyn is an open source project, initially developed by Qualcomm Innovation Center, Inc., and hosted by the AllSeen Alliance, which provides a universal software framework and core set of system services that enable interoperability among connected products and software applications across manufacturers to create dynamic proximal networks. Manufactures can offer interoperable products and services that will engage and delight users in new, exciting and useful ways. The range of consumer products AllJoyn can enable is only limited by the imaginations of innovative companies - from the mobile devices consumers always have with them, to the appliances and media equipment in their homes, to the electronics in their cars and the office equipment in their workplaces. 24 | 25 | 产商: 高通 26 | 27 | ##Cylon.js 28 | 29 | > Cylon.js is a JavaScript framework for robotics, physical computing, and the Internet of Things. It makes it incredibly simple and fun to command robots. 30 | 31 | 语言: Node 32 | 平台: ``ARDrone``,``Arduino``,``Arduino YUN``,``Audio``,``Beaglebone Black``,``BLE``,``Crazyflie``,``Digispark``,``Intel Galileo``,``Intel Edison``,``Joystick``,``Keyboard``,``Leap Motion``,``M2X``,``MQTT``,``Nest``,``Neurosky``,``Ollie``,``OpenCV``,``Pebble``,``Philips Hue``,``Pinoccio``,``PowerUp``,``Rapiro``,``Raspberry Pi``,``Salesforce``,``Skynet``,``Spark``,``Speech``,``Sphero``,``Tessel``,``WICED Sense`` 33 | 主页: [http://cylonjs.com/](http://cylonjs.com/) 34 | 35 | ##souliss 36 | 37 | > Souliss is a framework to manage interconnected Things, smart homes and automated appliances. It includes a network layer that gives virtualization over the communication media, an event based protocol and datastructure and an Android user interface. 38 | 39 | 语言: ``Java`` 40 | 41 | 平台: ``Arduio``,``AVR``,``Android`` 42 | 43 | 主页: [https://code.google.com/p/souliss/](https://code.google.com/p/souliss/) 44 | 45 | -------------------------------------------------------------------------------- /protocol/MQTT.md: -------------------------------------------------------------------------------- 1 | ##IBM Websphere MQ Telemetry 2 | 3 | The Telemetry MQTT feature is built-in optionally licensed feature in WebSphere MQ version 7.1 and above. It provides full MQTT v3.1 support, IBM MQ and JMS support. IBM WebSphere MQ Advanced includes the MQTT license at no charge. It ships with reference Java (MIDP and above), C and JavaScript (MQTT over WebSocket) clients. Eclipse Paho is highly recommended by IBM. 4 | 5 | ##IBM MessageSight 6 | 7 | IBM MessageSight is a DMZ secure MQTT appliance with hardware messaging acceleration for M2M and mobile applications requiring extreme volume, low latency, FIPS 140-2 and NSA Suite B security. Messaging provider for MQTT, HTML5 WebSockets, JMS. Includes C, Java, JavaScript, Apache Cordova/PhoneGap, ObjectiveC clients. Also connects/bridges IBM MQ, IBM Integration Bus, WebSphere MessageBroker. 8 | 9 | ##IBM Integration Bus 10 | 11 | IBM Integration Bus V9 has Telemetry feature built-in as optional licensed feature. IBM WebSphere MessageBroker V7 & V8 also include it as optionally licensed feature. 12 | 13 | Really Small Message Broker\ 75KB MQTT broker runtime free download as binaries from IBM alphaWorks, RSMB is a C implementation of a tiny MQTT server suitable for development, embedded systems, concentrators or small to medium sized deployments. It provides complete MQTT v3.1 support, bridging, and a C client API. 14 | 15 | ##Mosquitto 16 | 17 | Mosquitto is an Open Source MQTT server with C, C++, Python. For JavaScript, Mosquitto recommends the Eclipse Paho Javascript client. A public, hosted test server is also available (more information) 18 | 19 | ##Eclipse Paho 20 | 21 | The Eclipse Paho project hosts an instance of the mosquitto broker as a public test sandbox for the Machine-to-Machine Industry Working Group (more information). 22 | 23 | ##Eurotech Everywhere Device Cloud 24 | 25 | Eurotech Everywhere Device Cloud is a cloud-based service provided by Eurotech. 26 | 27 | ##Xively 28 | 29 | The Xively service, formerly known as Cosm, formerly known as Pachube, provides a data cloud for the Internet of Things, with MQTT support in beta. This is not a generic MQTT broker implementation; it uses MQTT as a transport for publishing and subscribing to your already existing data feeds (more information). 30 | 31 | ##eMQTT 32 | 33 | An Erlang MQTT broker. 34 | 35 | ##m2m.io 36 | 37 | m2m.io is a cloud messaging service (more information). 38 | 39 | ##webMethods Nirvana Messaging 40 | 41 | webMethods Nirvana Messaging provides a messaging engine with support for many different transports. Their MQTT support is described in their blog. 42 | 43 | ##RabbitMQ 44 | 45 | RabbitMQ is an AMQP message broker – with an MQTT plugin (bundled in version 3.x onwards). A public test server is also available (more information). 46 | 47 | ##Apache ActiveMQ 48 | 49 | Details of “classic” ActiveMQ’s support for MQTT are available here. 50 | 51 | ##Apache Apollo 52 | 53 | The “next generation” of ActiveMQ, Apache Apollo, supports MQTT via a plugin. 54 | 55 | Moquette 56 | 57 | Moquette is a Java MQTT broker based on an eventing model with Apache Mina. 58 | 59 | ##HiveMQ 60 | 61 | HiveMQ is a MQTT broker which was built from the ground up with maximum scalability and enterprise-ready security in mind. It comes with native web socket support and an open source plugin SDK to extend its functionality or integrate it with other components. A public test server is also available (more information). 62 | 63 | ##Mosca 64 | 65 | As node.js MQTT broker can Mosca be plugged on top of Redis, AMQP, MQTT, or ZeroMQ. 66 | 67 | ##Litmus Automation Loop 68 | 69 | Loop is a cloud based MQTT broker with scalability, high availability and security at core. Loop provides full MQTT 3.1 support and JMS connectivity. It can handle extremely large numbers of connected clients. On the other side it can be connected to any ERP, CRM and enterprise architecture with ESB or NoSQL databases for blazing fast data storage. 70 | 71 | ##JoramMQ 72 | 73 | JoramMQ is an offering by ScalAgent providing a message broker that fully supports MQTT 3.1, JMS 2.0, and AMQP 1.0. Interoperability between these standards is ensured by the message broker. MQTT can be used over TCP/IP, TLS (SSL), WebSocket, and secure WebSocket. JoramMQ is particularly appropriate for applications that need to scale with the number of MQTT clients while allowing the publishers to reliably transmit a large volume of messages with a low latency. 74 | -------------------------------------------------------------------------------- /hardware/README.md: -------------------------------------------------------------------------------- 1 | #物联网相关开源硬件 2 | 3 | ##Arduino 4 | 5 | 语言: ``Processing``,``C++``,``C`` 6 | 7 | > Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的 arduino板)和软件(arduino IDE。她适用于艺术家、设计师、爱好者和对于“互动”有兴趣的朋友们。 8 | 9 | ![Arduino](../images/arduino.jpg) 10 | 11 | > Arduino,是一个基于开放原始码的软硬体平台,构建于开放原始码simple I/O介面版,并且具有使用类似Java,C语言的Processing/Wiring开发环境。 12 | 13 | > Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是利用 Arduino编程语言 (基于Wiring)和 Arduino开发环境(based on Processing来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。 14 | 15 | [Arduino Yun](./ArduinoYun.md) 16 | 17 | > Arduino Yún是Linux与Arduino相结合的WiFi产品。Yún就是汉语中的”云“,目的是让该板子可轻松连接到复杂的网络服务。Arduino Yún是基于ATMEGA32U4和Atheros的AR9331,Atheros的处理器支持OpenWRT的名为Linino的Linux发行版,Arduino Yún已内置以太网和WiFi的支持,USB-A端口、Micro-SD卡插槽、20个数字输入/输出引脚(其中7个可作为PWM输出为模拟输入和12)、一个16 MHz晶体振荡器、一个微型USB连接、一个ICSP头和一个复位按钮。 18 | 19 | ##Raspberry Pi 20 | 21 | 语言: Any 22 | 主要有:``Python``,``C#``,``Ruby`` 23 | 24 | ![RaspberryPi](../images/rpi.jpg) 25 | 26 | > 树莓派(raspberry pi),是一款基于linux系统的、只有一张信用卡大小的卡片式计算机。研发树莓派的最初目的是通过低价硬件及自由软件来推动在学校的基础的计算机学科教育,但很快树莓派就得到计算机和硬件爱好者青睐;他们用它学习编程,并创造出各种各样新奇的、风靡一时的软硬件应用。 27 | 28 | > 在接口方面,Raspberry Pi提供了可供键鼠使用的USB接口,此外还有快速以太网接口、SD卡扩展接口以及1个HDMI高清视频输出接口,可与显示器或者TV相连。 29 | 30 | ##Spark Core 31 | 32 | 语言: ``Processing``,``C++``,``C`` 33 | 34 | [Spark Core](./SparkCore.md) 35 | 36 | > Spark 的核心芯片(Spark Core)采用兼容 Arduino 的 ARM Cortex-M3 平台,搭载一块 德州仪器(TI)CC3000 WiFi 芯片。一切的开始是你再也不用连接 USB 线到电脑,而只需通过 WiFi 即可刷入代码。更重要的是,他们提供了一个免费的云服务,类似非硬件的云服务 Heroku 那样,可以让使用核心板块的自定义程序托管在上面。开发者们可以立即测试自己产品的效果。 37 | 38 | ##WIFI-DUINO 39 | 40 | > WiFi-Duino是一个可以接入wifi(或者建立wifi热点)的兼容Arduino系列开发软件的开发板,基于Atmega32U4和HLK-RM04 WiFi模块制作,提供比Arduino Yun更加完善的功能,售价仅需¥169。您可以通过它将您的电路设计和互联网相连,快速开发出物联网应用。 41 | 42 | ![WIFI-DUINO](http://bcs.duapp.com/blogimbed/wifi-duino/v1_fb.png) 43 | 44 | > 和Arduino Yun不同的是,我们提供了板载的稳压芯片,WiFi-Duino可以通过USB接口供电,也可以通过供电插座供电,板载检测器会自动切换电源。外部供电设备可以是AC-to-DC配适器或者电池。配适器的连接方式是通过向板载的电源插座插入一个2.1mm的插头(中心为正);电池则是直接插入供电端口(Gnd和Vin排针)。 45 | 46 | >理论上WiFi-Duino可以在6—15伏内正常工作。然而,如果供电不足7伏,5V排针的供电电压可能会小于5伏,板载插座则有可能不能稳定工作。如果供电大于12伏,稳压器则会过热,板载插座也会受损。所以,推荐的外部电源电压范围是7—12伏。 47 | 48 | 49 | ##LinkIt ONE 50 | 51 | 联发科技创意实验室项目初期将以联发科技的LinkIt™开发平台为主,该平台主要以联发科技Aster(MT2502)系统单芯片为核心。LinkIt开发平台具备完整的联网功能和良好的扩充性,通过高度整合以降低额外硬件连接设备的数量。而且,联发科技所提供的硬件参考设计,可让开发可穿戴及物联网原型设备的流程更加简化且更具成本效益。 52 | 53 | LinkIt开发平台由下以部份组成: 54 | 55 | - 系统单芯片(SoC)—联发科技Aster(MT2502)是全球体积最小、已商用的可穿戴SoC,可搭配Wi-Fi (MT5931) 和 GPS (MT3332),提供出色的高性能低功耗表现。 56 | 57 | - LinkIt OS— LinkIt OS是一个先进且精简的操作系统,可有效控制软件、AsterSoC和与其搭配的芯片组,以及大量传感器和周边硬件。 58 | 59 | - 硬件开发包(HDK)— 首先推出的是与深圳矽递科技有限公司 (Seeed Studio)合作的LinkItONE硬件开发包,让在LinkIt ONE上添加传感器、周边器件和Arduino功能扩展板的工作更容易,进而打造功能完善的产品原型设计。 60 | 61 | - 软件开发包(SDK)— 创客们可利用软件开发包中所提供的应用程序界面(API),轻松简单得将现有的Arduino编码迁移到LinkIt ONE上。另外,还有一系列API可让创客们使用LinkIt ONE上的各种通信功能,包括GSM, GPRS, Bluetooth和Wi-Fi等。 62 | 63 | 为确保开发者们能够充分利用LinkIt平台,联发科技创意实验室提供一系列服务,包括: 64 | 65 | - 完整的商业和技术概述 66 | 67 | - 解决方案目录:开发者们可以在此分享他们有关产品设备、应用程序和服务方面的信息,增加与联发科技的客户和伙伴未来的合作机会。 68 | 69 | - 各种技术支持:包括由联发科技专业技术人员维护的FAQ和论坛,并针对解决方案目录里正在开发的解决方案,为开发者提供免费技术支持。 70 | 71 | - 深圳矽递科技有限公司(SeeedStudio)创始人兼首席执行官潘昊表示:“当创客们仍然在采用传统工业用组件开发新型物联网设备时,矽递为联发科技LinkIt开发平台提供的LinkIt ONE硬件开发包,可以帮助创客们更容易、更快速地将产品原型设计推向市场,我们对此感到非常高兴。” 72 | 73 | 创客、设计师和开发者们今天就可以登录联发科技创意实验室(http://labs.mediatek.com),下载全套的工具和文件。 74 | 75 | ##Seeeduino Cloud 76 | 77 | > Seeeduino Cloud是一款基于Dragino WiFi 物联网模块HE和ATmega32u4的微控制器板。HE是一个高性能、低成本的150M,2.4G WiFi模块,在汉语中意味着核心,并且它内置开源的OpenWrt系统。Seeeduino Cloud完全兼容Arduino,Grove,扩展板和IDE(版本高于1.5.3)。除了Arduino常规接口,Seeeduino Cloud还支持内置的以太网和WiFi,USB-A端口使得需要网络连接和大量存储的原型设计非常容易。将Seeeduino Cloud用作一个物联网网关也不失为一个好主意。 78 | 79 | ![Seeeduino Cloud](http://www.seeedstudio.com/wiki/images/thumb/d/df/SeeeduinoCloud_MainPic.jpg/500px-SeeeduinoCloud_MainPic.jpg) 80 | 81 | - 兼容Arduino Yun 82 | 83 | - 基于Dragino WiFi 物联网模块HE 84 | 85 | - 内置开源OpenWrt系统 86 | 87 | - 支持2.4GHz WiFi。802.11b/g/n 88 | 89 | - 支持以太网 90 | 91 | - 支持USB2.0 92 | 93 | - 尺寸:75.10mm x 53.39mm x 11.50mm / 2.95" x 2.10 x 0.45" 94 | 95 | - 工作温度:-20~60°C 96 | 97 | - 表面颜色:红色 98 | 99 | ##Spark Core 100 | 101 | > Spark Core 是一款 Arduino 的 WiFi 开发板,内建云端开发平台,让工程师可以轻松开发出任何与网络链接的硬设备~~ 这款开发板内建 72 MHz ARM Cortex M3、号称市面上最好用的 TI WiFi 模块、无线程序编辑、PIN out 和 peripheral 埠,开发起来相当方便。 102 | 103 | ![Spark Core](http://img1.cache.netease.com/catchpic/F/FE/FE6400730B9F095E24C50FA90FF445E9.jpg) 104 | 105 | > 从外观上看,这是一个只有不到两个手指宽的电路板,正反两面都嵌有芯片,背面有针脚,显然它可以与某些设备相连。它的核心是一颗运行频率为 72MHz 的 ARM Cortex-M3 芯片,以及 Wi-Fi 模块。 106 | 107 | ##WiDo物联网主控器 108 | 109 | > Wido是一款轻量化WIFI传感器节点控制器,兼容Arduino Leonardo. 通过Wido你可以轻松对接国内外各大物联网平台,监控环境与设备数据。 110 | 111 | ![WiDo](http://wiki.dfrobot.com.cn/images/thumb/4/49/DFR0321_Pinout.png/800px-DFR0321_Pinout.png) 112 | 113 | - Arduino Leonardo兼容设计 114 | 115 | - 支持Micro USB直插供电与编程 116 | 117 | - 外接电源电压范围:7-12v 118 | 119 | - 板载WIFI嵌入式模组,2.4GHz IEEE 802.11 b/g 120 | 121 | - SPI驱动WIFI模组 122 | 123 | - 板载Micro SD卡槽 124 | 125 | - PCB 2.4G天线,提供接近手机的WIFI信号 126 | 127 | 驱动引脚: 128 | 129 | - WIFI模块—D7(IRQ),D5(VBAT),D10(CS),D14(MISO),D15(SCK),D16(MOSI) 130 | 131 | - MicroSD —D4(CS),D14(MISO),D15(SCK),D16(MOSI) 132 | 133 | PS:4个Arduino Leonardo占用,MicroSD和CC3000都通过SPI驱动,顾有硬件串口资源可扩展其他功能 134 | 135 | 136 | #物联网相关闭源硬件 137 | 138 | 139 | #未知 140 | 141 | [WiDo物联网主控器](./WiDo.md) 142 | 143 | [WIFI-DUINO](./WIFI-DUINO.md) 144 | 145 | [Seeeduino Cloud](./SeeeduinoCloud.md) 146 | 147 | [LinkIt One](./LinkItOne.md) -------------------------------------------------------------------------------- /book/README.md: -------------------------------------------------------------------------------- 1 | 2 | ##物联网相关博客集 3 | 4 | ###嵌入式以太网 5 | 6 | 【[嵌入式 TCP IP 资料汇总](http://blog.csdn.net/xukai871105/article/details/8568612)】    7 | 8 | ###【ENC28J60学习笔记——索引】 9 | 10 | 【[第1部分](http://blog.csdn.net/xukai871105/article/details/13931833)】 11 | 【[第2部分](http://blog.csdn.net/xukai871105/article/details/14092167)】 12 | 【[第3部分](http://blog.csdn.net/xukai871105/article/details/14345709)】 13 | 【[第4部分](http://blog.csdn.net/xukai871105/article/details/14461741) 】 14 | 15 | ###STM32NET学习笔记 16 |     17 | 【[STM32NET学习笔记——ARP和Ethernet部分](http://blog.csdn.net/xukai871105/article/details/17564487)】 18 | 19 | 【[STM32NET学习笔记——IPICMP部分](http://blog.csdn.net/xukai871105/article/details/19938133)】 20 | 21 | 【[STM32NET学习笔记——UDP部分](http://blog.csdn.net/xukai871105/article/details/23085679)】 22 | 23 | 【[STM32NET学习笔记——TCP部分](http://blog.csdn.net/xukai871105/article/details/37729201)】 24 | 25 | 【[uIP学习笔记](http://blog.csdn.net/xukai871105/article/details/17471865)】 26 | 27 | 【[LwIP学习笔记——STM32ENC28J60移植与入门](http://blog.csdn.net/xukai871105/article/details/37995079)】 28 | 29 | ###【contiki相关】 30 | 31 | 【[CC2530 RF部分使用——实现点对点收发](http://blog.csdn.net/xukai871105/article/details/9897695)】 32 | 33 | 【[Instant Contiki安装笔记——SDCC和CC2530](http://blog.csdn.net/xukai871105/article/details/9204101)】  34 | 35 | 【[contiki学习笔记——cc2530dk例程实践和UDP重启问题解决](http://blog.csdn.net/xukai871105/article/details/23626437)】 36 | 37 | 【[contiki学习笔记——IAR工程合集](http://blog.csdn.net/xukai871105/article/details/9866261)】 38 | 39 | 【[contikiSTM32移植](http://blog.csdn.net/xukai871105/article/details/7482858) 】 40 | 41 | 【[contiki学习笔记spi部分解析](http://blog.csdn.net/xukai871105/article/details/9098417) 】 42 | 43 | 【[contiki学习笔记clock部分](http://blog.csdn.net/xukai871105/article/details/9108093) 】 44 | 45 | 【[contiki 学习笔记leds实现部分](http://blog.csdn.net/xukai871105/article/details/9115545) 】 46 | 47 | 【[contiki学习笔记etimer部分](http://blog.csdn.net/xukai871105/article/details/9152525) 】 48 | 49 | 【[contiki CC2530CC2430例子描述](http://blog.csdn.net/xukai871105/article/details/9207203) 】 50 | 51 | ##协议与标准 52 | 53 | ###【JSON】 54 | 55 | 【[cJSON学习笔记](http://blog.csdn.net/xukai871105/article/details/17094113)】 56 | 57 | 【[cJSON学习笔记续集](http://blog.csdn.net/xukai871105/article/details/33013455)】    58 | 59 | 【[前端学习——JSON格式详解](http://blog.csdn.net/xukai871105/article/details/32346797)】 60 | 61 | ###【REST】 62 | 【[树莓派学习笔记——Restful服务 采用slim php apache](http://blog.csdn.net/xukai871105/article/details/19763683)】 63 | 64 | 【[PHP再学习4——slim框架学习和使用](http://blog.csdn.net/xukai871105/article/details/18677215)】 65 | 66 | 【[PHP再学习5——RESTFul框架远程控制LED](http://blog.csdn.net/xukai871105/article/details/18775957)】 67 | 68 | ###【CoAP】 69 | 70 | 【[CoAP学习笔记——CoAP基础](http://blog.csdn.net/xukai871105/article/details/17734163)】 71 | 72 | 【[CoAP学习笔记——CoAP资源发现](http://blog.csdn.net/xukai871105/article/details/17765919)】 73 | 74 | 【[CoAP学习笔记——服务器端繁忙时的处理请求流程](http://blog.csdn.net/xukai871105/article/details/17766051)】 75 | 76 | 【[CoAP学习笔记——nodeJS node-coap安装和使用(Linux平台)](http://blog.csdn.net/xukai871105/article/details/39120399)】 77 | 78 | 【[CoAP学习笔记——nodeJS node-coap安装和使用(windows平台)](http://blog.csdn.net/xukai871105/article/details/39120435)】 79 | 80 | 【[CoAP学习笔记——nodeJS node-coap返回JSON数据包](http://blog.csdn.net/xukai871105/article/details/39213061)】 81 | 82 | ###【MQTT】 83 | 84 | 【[MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用](http://blog.csdn.net/xukai871105/article/details/39252653)】 85 | 86 | 【[MQTT学习笔记——树莓派MQTT客户端 使用Mosquitto和paho-python](http://blog.csdn.net/xukai871105/article/details/39255089)】 87 | 88 | 【[MQTT学习笔记——Yeelink MQTT服务 使用mqtt.js和paho-mqtt](http://blog.csdn.net/xukai871105/article/details/39346461)】 89 | 90 | ###【WebSocket】 91 | 【[WebSocket学习笔记——无痛入门](http://blog.csdn.net/xukai871105/article/details/23301213) 】 92 | 93 | ###【cURL】 94 | 【[cURL安装和使用笔记](http://blog.csdn.net/xukai871105/article/details/9323761)】 95 | 96 | 【[cURL学习笔记——结合yeelink平台](http://blog.csdn.net/xukai871105/article/details/17173771) 】 97 | 98 | ####【yeelink】 99 | 【[Yeelink Http请求格式分析](http://blog.csdn.net/xukai871105/article/details/8607338)】 100 | 101 | 【[Yeelink平台查询开关量——套接字编程 Windows平台](http://blog.csdn.net/xukai871105/article/details/17096319) 】 102 | 103 | 【[Yeelink平台推送传感器结果——套接字编程 Windows平台](http://blog.csdn.net/xukai871105/article/details/23543349)】 104 | 105 | 【[Yeelink平台使用——远程控制 RT Thread + LwIP+ STM32](http://blog.csdn.net/xukai871105/article/details/17101131) 】 106 | 107 | 【[树莓派学习笔记——yeelink远程控制LED](http://blog.csdn.net/xukai871105/article/details/18624307) 】 108 | 109 | ###【云平台】 110 | 【[物联网学习笔记——京东云擎初体验部署REST服务](http://blog.csdn.net/xukai871105/article/details/21194491)】  111 | 112 | 【[物联网学习笔记——构建RESTFul平台1](http://blog.csdn.net/xukai871105/article/details/18862569)】 113 | 114 | 【[物联网学习笔记——构建RESTFul平台2](http://blog.csdn.net/xukai871105/article/details/20399661)】 115 | 116 | 117 | 118 | ##Phodal 119 | 120 | [一个最小的物联网系统设计方案及源码][2] 121 | 122 | [最小物联网系统(一)——系统组成][4] 123 | 124 | [最小物联网系统(二)——RESTful][5] 125 | 126 | [最小物联网系统(三)——创建RESTful][6] 127 | 128 | [最小物联网系统(四)——详解Laravel的RESTful][7] 129 | 130 | [最小物联网系统(五)——Laravel RESTful模板化][8] 131 | 132 | [最小物联网系统(六)——Ajax打造可视化][9] 133 | 134 | [最小物联网系统(七)——与服务器通讯][10] 135 | 136 | [最小物联网系统(八)——与单片机通讯][11] 137 | 138 | [最小物联网系统(九)——Android客户端][12] 139 | 140 | [最小物联网系统设计——给Laravel添加测试][15] 141 | 142 | [2]:http://www.phodal.com/blog/bare-minimum-iot 143 | [4]:http://www.phodal.com/blog/bare-minimum-iot-system-structure/ 144 | [5]:http://www.phodal.com/blog/bare-minimum-iot-system-restful/ 145 | [6]:http://www.phodal.com/blog/bare-minimum-iot-system-create-restful/ 146 | [7]:http://www.phodal.com/blog/bare-minimum-iot-system-about-restful/ 147 | [8]:http://www.phodal.com/blog/bare-minimum-iot-system-restful-template/ 148 | [9]:http://www.phodal.com/blog/bare-minimum-iot-system-ajax/ 149 | [10]:http://www.phodal.com/blog/bare-minimum-iot-system-date-commucation/ 150 | [11]:http://www.phodal.com/blog/bare-minimum-iot-system-mcu-commucation/ 151 | [12]:http://www.phodal.com/blog/bare-minimum-iot-system-android-example/ 152 | [15]:http://www.phodal.com/blog/bare-minimum-iot-system-add-test-for-laravel/ 153 | [16]:http://www.phodal.com/blog/bare-minimum-iot-system-dashboard-framework-dashing/ 154 | 155 | ###CoAP 156 | 157 | [CoAP与物联网系统][basic] 158 | 159 | [物联网系统与CoAP之Hello,World][hello] 160 | 161 | [CoAP与物联网系统之返回JSON][returnjson] 162 | 163 | [CoAP与物联网系统之返回XML][returnxml] 164 | 165 | [IoT CoAP 块传输——使用Block传输数据][iotblock] 166 | 167 | [构建基于CoAP SQLite Nodejs的物联网之查询数据][querydb] 168 | 169 | [构建基于CoAP SQLite Nodejs的物联网之数据库][db] 170 | 171 | [basic]: http://www.phodal.com/blog/use-constrained-application-protocol-in-internet-of-things/ 172 | [hello]: http://www.phodal.com/blog/use-node-coap-create-a-coap-server/ 173 | [returnjson]: http://www.phodal.com/blog/use-coap-build-internet-of-things-return-json/ 174 | [querydb]: http://www.phodal.com/blog/use-node-coap-sqlite-create-a-coap-server-get-response/ 175 | [db]: http://www.phodal.com/blog/use-coap-nodejs-sqlite-build-iot/ 176 | [returnxml]: http://www.phodal.com/blog/use-jstoxml-convert-iot-coap-return-json/ 177 | [iotblock]: http://www.phodal.com/blog/use-coap-block-send-data-on-iot-coap/ 178 | -------------------------------------------------------------------------------- /hardware/open_source_iot_tools.md: -------------------------------------------------------------------------------- 1 | ##物联网的开源工具 2 | 3 | 物联网开源正在快速发展。开源的物联网软件和硬件项目可以帮助企业和DIY爱好者通过网络连接设备进行实验。 4 | 5 | 如果你近几年由于某些原因涉猎到IT行业,那么你很有可能听过“物联网”这个词。据高德纳公司所说,物联网正如日中天,很多人都对它有兴趣,但对于物联网来说,还没有太多实质性的发展。在2009年连接到网络的设备数目少于10亿台,但高德纳公司预测在2020年将有260亿台设备连接到网络,这将为制造商和服务供应商们产生3000亿美元的收入并对全球经济造成1.9万亿美元的影响。 6 | 7 | 简单来讲,物联网是如何使用智能设备来收集通过互联网传输到其他设备的数据。机器对机器的技术与这密切相关。虽然机器对机器这一概念已经存在了一段时间了,但“物联网”这一概念却要到1999年,才由当时还是宝洁公司员工的凯文.阿斯顿第一次提出。 8 | 9 | 从那时起,这个概念迅速而广泛的传播开来。根据arm公司的一项调查,超过75%的企业已经使用或打算在某些方面使用物联网。而且该调查还显示,96%的企业预计在2016年之前都将使用物联网。 10 | 11 | 人们对物联网有极大兴趣的部分原因是物联网的潜能巨大。2006年,阿斯顿在文章中解释说:“如果我们的电脑可以知晓一切可知的,并在没有我们的帮助下使用它们收集的数据,我们将能够去跟踪和计算一切然后大大的减少浪费、损失和成本。我们能知道什么时候某些东西需要更换、维修或召回,我们能知道它们是否新鲜或者是度过了最佳状态。”他总结说:“物联网像互联网一样有改变世界的潜力。甚至物联网比互联网更强”。 12 | 13 | 许多关于物联网技术和标准的早期工作已经在开源社区完成了。这个月我们拥有的一些更有趣的开源物联网项目正在积极开发中。虽然我们的开源清单通常专注于软件,但这个清单里也具有一些开源硬件,这些开源硬件大部分是低价提供给物联网爱好者购买的。 14 | 15 | 与往常一样,假如你认为某些项目应该出现在我们的清单上,那么请不吝赐教,将这些项目写在下面的评论部分中。 16 | 17 | ##开发工具 18 | 19 | ###Arduino 20 | > Arduino包含一个交互式电子的硬件规格和一套软件。这套软件包括IDE和Arduino编程语言。某网站解释说Arduino是“一个工具,这个工具可以制造一个比台式电脑感知和控制更多物理世界的电脑”。其背后的组织提供了许多开发板、入门套件、机器人和相关的产品出售。同时,许多其他团体已经使用Arduino去建立他们自己的物联网相关硬件和软件产品。 21 | 22 | ###Eclipse物联网项目 23 | > Eclipse正在资助几个关于物联网的项目。它们包括应用框架服务、物联网协议的开源实现(协议包括MQTT CoAP协议、OMA-DM协议和OMA LWM2M协议)、用lua语言进行工作的工具(eclipse正在推动lua语言为理想的物联网编程语言)。Eclipse相关的项目包括Mihini、Koneki和Paho。该网站还包括一个模拟环境,在这个环境可以用工具进行试验并有一个现场演示。 24 | 25 | ###Kinoma 26 | > Marvell公司所拥有的Kinoma的软件平台包括三个不同的开源项目。Kimona Create是为标准电子设备产生的DIY构筑套件。Kimona Studio是和Create、Kinoma Platform Runtime一起工作的开发环境。KimonaConnect是一个免费的ios和安装应用,这个应用连接智能手机和物联网设备表。 27 | 28 | ###M2MLabs Mainspring 29 | 30 | > Mainspring是用来构建远程监控,车队管理和智能电网应用的,是用来开发M2M应用的开源框架。它的功能包括灵活的设备模块化、设备配置、在设备和应用间的通信、数据校验和标准化、长期数据存储和数据恢复功能。它是基于Java和Apache Cassandra NoSQL数据库的。 31 | 32 | ###Node-RED 33 | > Node-RED是基于Node.js的,它把自己描述为“一个连接物联网的可视化工具”。它允许开发人员使用一个基于浏览器的流程编辑器连接设备、服务器和API应用。它能在树莓派上运行,并且有超过6万个模块可用来扩展其功能。 34 | 硬件 35 | 36 | ###Arduino Yún 37 | 38 | > 该微控制器将基于Arduino板的易用性和linux系统结合起来。它包括两个处理器:ATmega32u4(支持Arduino)和Atheros AR9331(运行linux)。其他功能包括WIFI、以太网支持、usb接口、micro-SD卡槽、三个复位按钮等等。他们可以在Arduino网站上买到。 39 | 40 | ###BeagleBoard 41 | > BeagleBoard提供信用卡大小的“电脑”,在这个电脑上可以运行安卓和linux。因为他们满足低功耗需求,所以它们是很好的物联网设备。无论是硬件设计还是它们上面运行的开源软件,BeagleBoard可以通过多种渠道获取。 42 | 43 | ###Flutter 44 | > Flutter是以它超远的距离而出名的。这个基于arduino的开发板,它的无线传输可以到达半英里外。另外,你不需要一台路由器,flutter和flutter可以直接进行通信。它拥有256位的AES加密,并很容易使用。硬件和软件都是完全开源的,而且标配板子只卖20美元。 45 | 46 | ###LocalMotors Connected Car 47 | > Local Motors是一家汽车公司,它进行小规模的开源汽车设计制造。他们在一个物联网连接的交通工具上和IBM公司合作,在去年春天,这个交通工具在一个会议上展示。许多关于这个交通工具的开源软件和详细资料可在网站进行下载。 48 | 49 | ###Microduino 50 | > 你可能已经从名字上猜到,Microdunio提供的非常小的开发板是和Arduino兼容的。事实上,这些开发板只有普通开发板四分之一的大小,而且可以叠加起来创造新的东西。所有的硬件设计是开源的,且核心模块每个只要8美元。它是由一个叫做Kickstarter的运动资助的,总共募集了134563美元。 51 | 52 | ###OpenPicus 53 | > 这个公司为了将设备连接到云和物联网,提供了一些列的可编程模块和套件。它的平台和硬件都是开源的,但是它的产品能被用来开发闭源的商业产品。这个公司也提供自我的开发租赁服务。 54 | 55 | ###Pinoccio 56 | > Arduino兼容的Pinnoccio开发板(该公司称之为“童子军”)相互连接成低功耗的网状网络。他们包括一个内置的可充电电池,这个可充电电池可以连接到太阳能电池板或usb供电电源。这个组织还提供Pinoccio HQ(一个用于监控侦查活动的图形用户界面)、ScoutScript(一个用来控制设备易于使用的脚本语言)。Pinoccio的入门套件价格为197美元。 57 | 58 | ###RasWIK 59 | > RasWIK是Ciseco公司开发的,是树莓派无线发明家套件的简略版。它允许任何人使用树莓派去尝试建立自己的可连接wifi的设备。RasWIK包含29个项目,你也可以把你自己的项目加进来。购买这个设备可能需要一定的费用,但是里面的代码都是开源免费的,你可以选择使用它来构建商业产品。 60 | 61 | ###SODAQ 62 | > SODAQ是“太阳能供电数据采集器”的简写,它提供Arduino兼容的电路板和类似乐高积木的插件模块。这个网站包括一些适合初学者的教程。而且,在很可能没有电力和网络的地方,太阳能电池板使其成为一个记录环境数据的不错选择。它的基本版电路板预售价是39美元。 63 | 64 | ###Tessel 65 | > Tessel的目的是为软件开发人员将硬件开发变得更容易,而这是通过可插入USB端口的、支持Java脚本的微控制器来实现的。你也可以将它连接到其他模块,比如添加加速计、环境光和声音、摄像头、蓝牙、gps和另外的9个功能。一块板子和一个模块的起始价为99美元,如果需要其他模块需要再加25美元。所有的软件和硬件设计都是开源的。 66 | 67 | ###UDOO 68 | > 这个Arduino兼容的主板还可以在它的第二处理器上运行安卓或linxu(这个linux版本被称为UDOObuntu)。它号称比树莓派强大4倍。在网站上可以获得多个教程和项目,它也提供一个叫做“有UDOO爱好者们创建”的部分,在这里大家可以展示自己的成功。这个板子的标准版价格是99美元。 69 | 70 | ##自动化家居软件 71 | 72 | ###OpenHAB 73 | > OpenHAB可以使你家里已经拥有的智能设备进行相互联系。它是供应商和硬件无关的,可以运行任何支持Java的系统上。它的目标之一是允许用户添加新的功能到他们的设备中并以新的方式来整合它们。OpenHAB赢得了很多大奖,它拥有一个名为my.openHAB的配套云计算服务器。 74 | 75 | ###The Thing System(物系统) 76 | > 这个项目包括软件组件和网络协议。它保证找到你房子里所有与互联网连接的东西,并把他们集合在一起,以便你能控制他们。它支持一系列的设备,包括鸟巢恒温器、三星智能空调、INSTEON LED灯泡、Roku、谷歌Chromeecast、Pebble智能手表、Goji 智能锁等等。它是以Node.js平台编写的,且适用于树莓派。 77 | 78 | ##中间件 79 | 80 | ###IoTSyS(物联网系统) 81 | 这个物联网中间件为智能设备提供一个通信协议栈。它支持多种标准和协议,包括IPv6、oBIX、6LoWPAN、受限制的应用协议和高效的XML交换格式。在该网站上一些视频展示它是如何工作的。 82 | 83 | ###OpenIoT 84 | > 该OpenIoT网站解释说,该项目是“一个从传感器云中获取信息的开源中间件,而不用担心是哪个确切的传感器被使用”。“它的目的是使能基于云传感器检测作为一种服务”,并制定了智能农业使用案例、智能制造、城市拥堵检测、智能生活和智能校园。它的支持者包括雅典信息技术学院(AIT)、巴黎高等洛桑联邦理工学院(EPEL)、弗劳恩霍夫光电研究所、系统技术和图像开发IOSB、SENSAP微系统AE、AcrossLimits、联邦科学与工业研究组织(CSIRO)、萨格勒布电气工程和计算机学院以及爱尔兰国立大学和高威大学。 85 | 86 | ##操作系统 87 | 88 | ###AllJoyn 89 | > AllJoyn最初是由高通公司创建的,这个基于物联网的开源操作系统由下列最杰出的物联网企业所支持,他们是AllSeen联盟成员,包括linux基金会、微软、LG、高通、夏普、松下、思科、赛门铁克等等。它包括一个框架和一组服务,这使得制造商能够创建兼容的设备。它是跨平台的,它的应用程序接口可以用于安卓、iOS、Mac OS X、linux和win7。 90 | 91 | ###Contiki 92 | > Contiki描述自己为“物联网开源操作系统”。它连接低功耗微控制器到互联网,并支持如IPv6、6LoWPAN、RPL和COAP协议。其他主要功能包括高效的内存分配、全IP网络、极低的功耗、动态模块加载等等。支持的硬件平台包括Redwire Econotags平台、Zolertia Z1 motes平台、意法半导体开发套件和德州仪器芯片和电路板。商业支持支付功能。 93 | 94 | ###Raspbian 95 | > 虽然树莓派被认为是教育设备,但许多开发人员已经开始在物联网项目中使用这个信用卡大小的电脑了。虽然完整的硬件规格不是开源的,但是大部分软件和文档是开源的。Raspbian是一种基于linux发行版Debian的流行树莓派操作系统。 96 | 97 | ###RIOT 98 | > RIOT自称为“友好的物联网操作系统”。RIOT是FeuerWhere项目的分支,首次亮相在2013年。它的目的是既开发者友好又资源友好。它支持多种架构,包括MSP430、ARM7、Cortex-M0、Cortex-M3、Cortex-M4和标准的x86电脑。 99 | 100 | ###Spark 101 | > Spark是一个分布式的,基于云计算的物联网操作系统。这家公司也提供易于使用的硬件开发套件和初始售价为39美元的相关产品(这个产品的硬件设计也是开源的)。它包括一个基于web的IDE,一个命令行界面,支持多国语言和用于不同物联网设备的库。它拥有一个非常活跃的用户社区,在上面可以获得许多文档和在线帮助。 102 | 103 | ##监控显示 104 | 105 | ###Freeboard 106 | > Freeboard的目标是让用户创建他们自己的用来监控物联网部署的仪表盘。该代码在GitHub上免费提供,或者说如果你让你的仪表盘公开,你可以尝试免费服务。对于那些想要保持自己的数据私有的人们,低价计划是可行的。示例仪表板展示如何用它们来跟踪空气质量、住宅电器、酿酒情况和实时环境条件。 107 | 108 | ##打印 109 | ###Exciting Printer(令人激动的打印机) 110 | 111 | > Exciting Printer提供了一个开源的套件,用于物联网打印试验。这使得建立自己的小的打印件和使用打印件来打印来自不同物联网设备获取到的信息成为可能。例如,它可以打印出一张每日提醒清单,天气报告等。并且,有趣的是,如果你想要联系项目拥有者,你可以在他们的办公室里用物联网打印件打印一张图片。 112 | 113 | ##平台和集成工具 114 | 115 | ###DeviceHive 116 | 该项目提供一个支持连接设备到物联网的机器对机器通信框架。它包括支持创建网络易于使用基于web的管理软件、应用安全规则和监控设备。该网站提供内置有DeviceHub的样本项目,而且它也有一个“游乐场”部分,允许用户使用DeviceHub在线去看它是如何工作的。 117 | 118 | ###Devicehub.net 119 | > Devicehub.net描述自己为“物联网的开源支柱”。它是一个基于云的服务,存储物联网相关的数据,提供数据的可视化并允许用户在网页上控制物联网设备。开发者使用该服务创建跟踪健康信息的应用程序,监视孩子的位置,自动化家电,跟踪车辆数据,监测天气等等。 120 | 121 | ###IoT Toolkit 122 | > 这个项目背后的组织正使用各种工具工作,来集成多个物联网相关的传感器网络和协议。虽然主要的项目时一个智能对象应用程序,但该组织也工作在一个HTTP对Coap的情景下,一个带有嵌入式软件代理的应用程序框架等等。在硅谷,他们也发起了一个“遇见”组织,面向对物联网开发有情趣的人。 123 | 124 | ###Mango(芒果) 125 | > “芒果”自称是“世界上最流行的开源的机器对机器软件”。基于网络的它支持多个平台。它的主要功能包括支持多协议和数据库、元点、用户自定义事件、导入/导出等等。 126 | 127 | ###Nimbits 128 | > Nimbits可以存储和处理特定的数据类型,数据可以是时间标记的或地理标记的。作为服务的公用平台是可用的,或者你也可以下载这个软件并部署它到谷歌应用引擎、或亚马逊EC2上的J2EE服务器上、或一个树莓派上。它支持多种编程语言,包括Arduino、JavaScript、HTML或Nimbits.io Java库。 129 | 130 | ###OpenRemote 131 | > OpenRemote为基于家居的爱好者、集成商、分销商和制造商提供了四种不同的集成工具。它支持十几种不同的现有协议,允许用户创建几乎任何类型的智能设备(他们能够想到和使用任何支持java的设备来控制它)。该平台是开源的,但在设计和产品开发过程中,该公司也出售各种支持、电子书等工具来进行帮助。 132 | 133 | ###SiteWhere 134 | > 这个项目提供了一个完整的平台,来管理物联网设备、收集数据并用外部系统进行数据整合。SiteWhere发行版本可以下载或在亚马逊云中使用。它还集成了多个大数据工具,包括MongoDB和ApacheHBase。 135 | 136 | ###ThingSpeak 137 | > ThingSpeak可以处理HTTP请求,并存储和处理数据。这个开放数据平台的主要功能包括开放应用程序、实时数据收集、地理位置数据、数据处理和可视化、设备状态信息和插件。它可以集成多个硬件和软件平台,包括Arduino、树莓派、ioBridge/RealTime.io、Electic lmp、移动和网络应用、社会网络和MATLAB数据分析。除了开源版本,还提供托管服务。 138 | -------------------------------------------------------------------------------- /EN.md: -------------------------------------------------------------------------------- 1 | ##Internet of Things Protocol 2 | 3 | Protocol | CoAP | XMPP | RESTful HTTP | MQTT 4 | ---------|---------|---------|---------|--------- 5 | Transport | UDP | TCP | TCP | TCP 6 | Messaging | Request/Response | Publish/Subscribe Request/Response | Request/Response | Publish/Subscribe Request/Response 7 | 2G, 3G, 4G Suitability (1000s nodes) | Excellent | Excellent | Excellent | Excellent 8 | LLN Suitability (1000s nodes) | Excellent | Fair | Fair | Fair 9 | Compute Resources | 10Ks RAM/Flash | 10Ks RAM/Flash | 10Ks RAM/Flash | 10Ks RAM/Flash 10 | Success Storied | Utility Field Area Networks | Remote management of consumer white goods | Smart Energy Profile 2 (premise energy management/home services) | Extending enterprise messaging into IoT applications 11 | 12 | ###XMPP 13 | 14 | The Extensible Messaging and Presence Protocol (XMPP) is an open technology for real-time communication, which powers a wide range of applications including instant messaging, presence, multi-party chat, voice and video calls, collaboration, lightweight middleware, content syndication, and generalized routing of XML data. The technology pages provide more information about the various XMPP “building blocks”. Several books about Jabber/XMPP technologies are available, as well. 15 | 16 | ###MQTT 17 | 18 | ![mqtt](./images/MQTT.png) 19 | 20 | MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium. 21 | 22 | [MQTT Library](./protocol/MQTT.lib.md) 23 | 24 | ###CoAP 25 | 26 | ![coap](./images/coap.jpg) 27 | 28 | Constrained Application Protocol (CoAP) is a software protocol intended to be used in very simple electronics devices that allows them to communicate interactively over the Internet. It is particularly targeted for small low power sensors, switches, valves and similar components that need to be controlled or supervised remotely, through standard Internet networks. CoAP is an application layer protocol that is intended for use in resource-constrained internet devices, such as WSN nodes. 29 | 30 | ###RESTful HTTP 31 | 32 | Representational State Transfer (REST) is a software architecture style for building scalable web services.REST gives a coordinated set of constraints to the design of components in a distributed hypermedia system that can lead to a higher performing and more maintainable architecture. 33 | 34 | ###Thread 35 | 36 | ![thread](./images/thread.jpg) 37 | 38 | THREAD SOLVES RELIABILITY, SECURITY, POWER, AND COMPATIBILITY ISSUES FOR CONNECTING PRODUCTS AROUND THE HOME. ONCE AND FOR ALL. 39 | 40 | ##IoT Platform 41 | 42 | ###Yeelink 43 | 44 | Homepage: [http://www.yeelink.net/](http://www.yeelink.net/) 45 | 46 | ###SiteWhere 47 | 48 | > The Open Platform for the Internet of Things ™ 49 | 50 | - Speed time to market for your IoT application 51 | - Leverage framework and APIs for custom development 52 | - Focus on solving business problems, not reinventing the wheel 53 | - Download source code for Community Edition from GitHub 54 | - Provided under CPAL 1.0 license 55 | 56 | Homepage: [http://www.sitewhere.org/](http://www.sitewhere.org/) 57 | 58 | ##IoT Embedded OS 59 | 60 | ###Contiki 61 | 62 | > Contiki is an open source operating system that runs on tiny low-power microcontrollers and makes it possible to develop applications that make efficient use of the hardware while providing standardized low-power wireless communication for a range of hardware platforms. 63 | 64 | Project Page: [https://github.com/contiki-os/contiki](https://github.com/contiki-os/contiki) 65 | 66 | ###mbed OS 67 | 68 | ![mbed OS](./images/mbedos.png) 69 | 70 | > mbed™ OS is an operating system for IoT devices and is especially well-suited to run in energy constrained environments. The OS includes the connectivity, security and device management functionalities required in every IoT device. 71 | 72 | - Connectivity protocol stack support for Bluetooth® low energy, Cellular, Ethernet, Thread, Wi-fi®, Zigbee IP, Zigbee NAN, 6LoWPAN 73 | - Automation of power management 74 | - Software asset protection and secure firmware updates for device security & management 75 | - Supports a wide range of ARM Cortex-M based hardware platforms from major MCU vendors 76 | - Support for OMA Lightweight M2M protocol for device management 77 | - Updatable and secure devices at the edge capable of additional processing and functionality 78 | - Banking-class end-to-end IP security across the communication channels through TLS & DTLS 79 | - Future proof designs by supporting all the key open standards for connectivity and device management 80 | 81 | ###Salvo 82 | 83 | > Salvo™ is the first Real-Time Operating System (RTOS) designed expressly for very-low-cost embedded systems with severely limited program and data memory. With Salvo, you can quickly create low-cost, smart and sophisticated embedded products. Pumpkin™ has currently certified Salvo for use with: 84 | 85 | - 8051 family and its derivatives 86 | - ARM® ARM7TDMI® and Cortex™-M3 87 | - Atmel® AVR® and MegaAVR™ 88 | - Epson S1C17 family 89 | - Motorola M68HC11 90 | - TI's MSP430 Ultra-Low Power Microcontroller 91 | - Microchip PIC12|14000|16|17|18 PICmicro® MCUs 92 | - Microchip PIC24 MCUs and dsPIC® DSCs 93 | - Microchip PIC32™ MCUs 94 | - TI's TMS320C2000 DSPs 95 | 96 | ###MQX 97 | 98 | > Freescale MQX™ RTOS a full-featured complimentary real-time operating system including the MQX™ Kernel, TCP/IP stack (RTCS), embedded MS-DOS file system (MFS), USB host/device stack, and more. The MQX™ multitasking kernel provides pre-emptive scheduling, fast interrupt response, extensive inter-process communication and synchronization facilities. MQX RTOS includes its own peripheral drivers. 99 | 100 | ###openWRT 101 | 102 | > OpenWrt is described as a Linux distribution for embedded devices. 103 | 104 | > Instead of trying to create a single, static firmware, OpenWrt provides a fully writable filesystem with package management. This frees you from the application selection and configuration provided by the vendor and allows you to customize the device through the use of packages to suit any application. For developer, OpenWrt is the framework to build an application without having to build a complete firmware around it; for users this means the ability for full customization, to use the device in ways never envisioned. 105 | 106 | ###RIOT 107 | Homepage: [http://riot-os.org/](http://riot-os.org/) 108 | 109 | > RIOT OS is an operating system for Internet of Things (IoT) devices. It is based on a microkernel and designed for 110 | 111 | - energy efficiency 112 | - hardware independent development 113 | - a high degree of modularity 114 | 115 | #IoT Libraried 116 | 117 | ##CoAP Protocol 118 | 119 | ###libcoap 120 | 121 | Language: ``C`` 122 | 123 | Homepage: [http://sourceforge.net/projects/libcoap/](http://sourceforge.net/projects/libcoap/) 124 | 125 | > Lightweight application-protocol for devices that are constrained their resources such as computing power, RF range, memory, bandwith, or network packet sizes. This protocol, CoAP, is developed in the IETF working group "CoRE", . 126 | 127 | ###jCoAP 128 | 129 | Language: ``Java`` 130 | 131 | Homepage: [https://code.google.com/p/jcoap/](https://code.google.com/p/jcoap/) 132 | 133 | > jCoAP is a Java Library implementing the Constrained Application Protocol (CoAP) 134 | 135 | 136 | ###Node-CoAP 137 | 138 | Language: ``Javascript`` (Nodejs) 139 | 140 | Homepage: [https://github.com/mcollina/node-coap](https://github.com/mcollina/node-coap) 141 | 142 | > node-coap is a client and server library for CoAP modelled after the http module. 143 | 144 | ###coap 145 | 146 | Language: ``Python`` 147 | 148 | Homepage: [https://github.com/openwsn-berkeley/coap](https://github.com/openwsn-berkeley/coap) 149 | 150 | > A CoAP Python library 151 | 152 | > This package implements the Constrained Application Protocol (CoAP) developed by the IETF CORE working group. 153 | 154 | ###Californium (Cf) CoAP 155 | 156 | Language: ``Java`` 157 | 158 | Homepage: [https://github.com/mkovatsc/Californium](https://github.com/mkovatsc/Californium) 159 | 160 | > Californium (Cf) is an open source implementation of the Constrained Application Protocol (CoAP). It is written in Java and targets unconstrained environments such as back-end service infrastructures (e.g., proxies, resource directories, or management services) and less constrained environments such as embedded devices running Linux (e.g., smart home controllers or vehicle sensors). Californium (Cf) has been running code for the IETF standardization of CoAP and was recently reimplemented to straighten changed design decisions, but also to improve its performance with focus on scalability. The new implementation was successfully tested at the ETSI CoAP#3 and OMA LWM2M Plugtests in November 2013. 161 | -------------------------------------------------------------------------------- /protocol/MQTT.lib.md: -------------------------------------------------------------------------------- 1 | #### [](#device-specific)Device-Specific 2 | 3 | - [Arduino](https://github.com/knolleary/pubsubclient) ([more 4 | information](http://knolleary.net/arduino-client-for-mqtt/)) 5 | 6 | - [mbed](https://github.com/yilun/MQTT-client-on-mbed) ([more 7 | information](http://ceit.uq.edu.au/content/mqttclient-mbed-version-20)) 8 | 9 | - [mbed (simple port of the Arduino 10 | pubsubclient)](http://mbed.org/users/jwende/code/MQTT/) 11 | 12 | - [mbed (native 13 | implementation)](http://mbed.org/users/Nim65s/code/niMQTT/) 14 | 15 | - [mbed (Paho Embedded C 16 | port)](http://mbed.org/users/icraggs/code/MQTTClient/) 17 | 18 | - [Nanode](http://github.com/njh/NanodeMQTT/) 19 | 20 | - [Netduino](https://github.com/danielan/NetduinoMQTT) 21 | 22 | - [M2MQTT (works with .Net Micro 23 | Framework)](https///m2mqtt.codeplex.com/) 24 | 25 | (see also [devices](things) page for more on hardware with built-in 26 | support) 27 | 28 | #### [](#actionscript)Actionscript 29 | 30 | - [as3MQTT](https://github.com/yangboz/as3MQTT) 31 | 32 | #### [](#c)C 33 | 34 | - [Eclipse Paho 35 | C](http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.c.git/) 36 | 37 | - [libmosquitto](http://mosquitto.org) 38 | 39 | - [libemqtt](https://github.com/menudoproblema/libemqtt) - an embedded 40 | C client 41 | 42 | #### [](#c-1)C++ 43 | 44 | - [libmosquittopp](http://mosquitto.org) 45 | 46 | #### [](#clojure)Clojure 47 | 48 | - [Machine Head](http://clojuremqtt.info) 49 | 50 | - [Clojure MQTT Codec for Netty](https://github.com/xively/clj-mqtt/) 51 | 52 | #### [](#dart)Dart 53 | 54 | - [mqtt.dart](http://pub.dartlang.org/packages/mqtt) 55 | 56 | #### [](#delphi)Delphi 57 | 58 | - [TMQTTClient](http://jamiei.com/code/TMQTTClient.zip) ([more 59 | information](http://jamiei.com/blog/code/mqtt-client-library-for-delphi/)) 60 | 61 | #### [](#erlang)Erlang 62 | 63 | - [erlmqtt](https://github.com/squaremo/erlmqtt) 64 | 65 | - [mqtt4erl](http://code.google.com/p/mqtt4erl/) 66 | 67 | - [my-mqtt4erl](http://code.google.com/p/my-mqtt4erl/) - updated fork 68 | of mqtt4erl 69 | 70 | #### [](#go)Go 71 | 72 | - [Eclipse Paho 73 | Go](http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.golang.git/) 74 | 75 | #### [](#haskell)Haskell 76 | 77 | - [mqtt-hs](http://hackage.haskell.org/package/mqtt-hs) 78 | 79 | #### [](#java)Java 80 | 81 | - [Eclipse Paho 82 | Java](http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.java.git/) 83 | 84 | - [Xenqtt](http://xenqtt.sf.net) Includes a client library, mock 85 | broker for unit/integration testing, and applications to support 86 | enterprise needs like using a cluster of servers as a single client, 87 | an HTTP gateway, etc. 88 | 89 | - [MeQanTT](https://github.com/AlbinTheander/MeQanTT) 90 | 91 | - [Fusesource mqtt-client](https://github.com/fusesource/mqtt-client) 92 | 93 | - [moquette](http://code.google.com/p/moquette-mqtt/) 94 | 95 | - ["MA9B" zip of 1/2 dozen mobile clients source code. Includes 96 | Android-optimized Java source that works with Android notifications, 97 | based on 98 | Paho](http://www-933.ibm.com/support/fixcentral/swg/selectFix?product=ibm%2FWebSphere%2FWebSphere+MQ&fixids=1.0.0.1-WS-MQCP-MA9B&source=dbluesearch&function=fixId&parent=ibm/WebSphere) 99 | 100 | - [IA92](http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg24006006&loc=en_US&cs=utf-8&lang=en) - 101 | *deprecated* IBM IA92 support pack, use Eclipse Paho GUI client 102 | instead. A useful MQTT Java swing GUI for publishing & subscribing. 103 | The Eclipse Paho GUI is identical but uses newer client code 104 | 105 | #### [](#javscript--nodejs)Javscript / Node.js 106 | 107 | - [Eclipse Paho HTML5 JavaScript over 108 | WebSocket.](http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.javascript.git/) 109 | 110 | - [mqtt.js](https://github.com/adamvr/MQTT.js) 111 | 112 | - [node\_mqtt\_client](https://github.com/yilun/node_mqtt_client) 113 | ([more 114 | information](http://ceit.uq.edu.au/content/simple-mqtt-cient-nodejs)) 115 | 116 | - [IBM-provided PhoneGap / Apache Cordova MQTT plug-in for 117 | Android](http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg24033580&loc=en_US&cs=utf-8&lang=en) - 118 | JavaScript API is identical to Eclipse Paho HTML5 JavaScript 119 | 120 | - [Ascoltatori](https://github.com/mcollina/ascoltatori) - a node.js 121 | pub/sub library that allows access to Redis, AMQP, MQTT and ZeroMQ 122 | with the same API. 123 | 124 | #### [](#lotusscript)LotusScript 125 | 126 | - [MQTT From 127 | LotusScript](https://tingenek.wordpress.com/2011/11/30/mqtt-with-lotus-notes/) 128 | 129 | #### [](#lua)Lua 130 | 131 | - [Eclipse Paho 132 | Lua](http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.lua.git/) 133 | 134 | #### [](#net--dotnet).NET / dotNET 135 | 136 | - [MqttDotNet](http://sourceforge.net/projects/mqttdotnet/) 137 | 138 | - [nMQTT](https://github.com/markallanson/nmqtt) 139 | 140 | - [M2MQTT](https///m2mqtt.codeplex.com/) 141 | 142 | - [KittyHawkMQ](http://www.kittyhawkmq.com/) 143 | 144 | #### [](#objective-c)Objective-C 145 | 146 | - [mqttIO-objC](https://github.com/m2mIO/mqttIO-objC) 147 | 148 | - [libmosquitto](https://mosquitto.org) - via wrappers 149 | ([example](https///github.com/njh/marquette)) 150 | 151 | - [MQTTKit](https://github.com/jmesnil/MQTTKit) ([sample 152 | app](https///github.com/jmesnil/MQTTExample)) 153 | 154 | - ["MA9B" zip of 1/2 dozen mobile clients source code including 155 | Objective-C](http://www-933.ibm.com/support/fixcentral/swg/selectFix?product=ibm%2FWebSphere%2FWebSphere+MQ&fixids=1.0.0.1-WS-MQCP-MA9B&source=dbluesearch&function=fixId&parent=ibm/WebSphere) 156 | 157 | #### [](#ocaml)OCaml 158 | 159 | - [mqtt\_client](https://github.com/philtomson/mqtt_client) 160 | 161 | #### [](#perl)Perl 162 | 163 | - [net-mqtt-perl](https://github.com/beanz/net-mqtt-perl) 164 | 165 | - [anyevent-mqtt-perl](https://github.com/beanz/anyevent-mqtt-perl) 166 | 167 | - [WebSphere-MQTT-Client](http://search.cpan.org/dist/WebSphere-MQTT-Client/) 168 | 169 | - Net::MQTT::Simple [cpan](https://metacpan.org/pod/Net::MQTT::Simple) 170 | [github](https://github.com/Juerd/Net-MQTT-Simple) 171 | 172 | #### [](#php)PHP 173 | 174 | - [phpMQTT](http://github.com/bluerhinos/phpMQTT) 175 | 176 | - [Mosquitto-PHP](https://github.com/mgdm/Mosquitto-PHP) 177 | 178 | #### [](#python)Python 179 | 180 | - [Eclipse Paho 181 | Python](http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.python.git/) - 182 | originally the mosquitto Python client 183 | 184 | - [nyamuk](https://github.com/iwanbk/nyamuk) 185 | 186 | - [MQTT for twisted 187 | python](https://github.com/adamvr/MQTT-For-Twisted-Python) 188 | 189 | #### [](#rexx)REXX 190 | 191 | - [REXX MQTT](https://github.com/DougieLawson/REXX_MQTT) 192 | 193 | #### [](#ruby)Ruby 194 | 195 | - [ruby-mqtt](https://github.com/njh/ruby-mqtt) 196 | 197 | - [em-mqtt](https://rubygems.org/gems/em-mqtt) 198 | 199 | - [mosquitto](https://github.com/xively/mosquitto) 200 | 201 | #### [](#tcl)Tcl 202 | 203 | - [tcl-mqtt](https://github.com/Tingenek/tcl-mqtt) 204 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 已停止维护, 请关注: [Awesome IoT](https://github.com/phodal/awesome-iot) 3 | 4 | 相关: [嵌入式工程师知识](http://github.com/phodal/eks) 5 | 6 | 7 | ![IoT Struct](struct.jpg) 8 | 9 | ##IoT Protocol 10 | 11 | Protocol | CoAP | XMPP | RESTful HTTP | MQTT 12 | ---------|---------|---------|---------|--------- 13 | Transport | UDP | TCP | TCP | TCP 14 | Messaging | Request/Response | Publish/Subscribe Request/Response | Request/Response | Publish/Subscribe Request/Response 15 | 2G, 3G, 4G Suitability (1000s nodes) | Excellent | Excellent | Excellent | Excellent 16 | LLN Suitability (1000s nodes) | Excellent | Fair | Fair | Fair 17 | Compute Resources | 10Ks RAM/Flash | 10Ks RAM/Flash | 10Ks RAM/Flash | 10Ks RAM/Flash 18 | Success Storied | Utility Field Area Networks | Remote management of consumer white goods | Smart Energy Profile 2 (premise energy management/home services) | Extending enterprise messaging into IoT applications 19 | 20 | English 21 | --- 22 | 23 | [English Version](./EN.md) 24 | 25 | 中文 26 | --- 27 | 28 | ###XMPP 29 | 30 | XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程 序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。 31 | 32 | ###MQTT 33 | 34 | ![mqtt](./images/MQTT.png) 35 | 36 | MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。 37 | 38 | [MQTT相关库](./protocol/MQTT.lib.md) 39 | [MQTT相关库介绍](./protocol/MQTT.lib.md) 40 | 41 | ###CoAP 42 | 43 | ![coap](./images/coap.jpg) 44 | 45 | CoAP是受限制的应用协议(Constrained Application Protocol)的代名词。在最近几年的时间中,专家们预测会有更多的设备相互连接,而这些设备的数量将远超人类的数量。在这种大背景下,物联网和M2M技术应运而生。虽然对人而言,连接入互联网显得方便容易,但是对于那些微型设备而言接入互联网非常困难。在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的。但是对于小型设备而言,实现TCP和HTTP协议显然是一个过分的要求。为了让小设备可以接入互联网,CoAP协议被设计出来。CoAP是一种应用层协议,它运行于UDP协议之上而不是像HTTP那样运行于TCP之上。CoAP协议非常的小巧,最小的数据包仅为4字节。 46 | 47 | ###RESTful HTTP 48 | 49 | REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。 50 | 51 | Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。 52 | 53 | 54 | ###Thread 55 | 56 | ![thread](./images/thread.jpg) 57 | 58 | Thread是一种基于简化版IPv6的网状网络协议,该协议由行业领先的多家技术公司联合开发,旨在实现家庭中各种产品间的互联,以及与互联网和云的连接。Thread易于安装、高度安全,并且可扩展到数百台设备。Thread基于低成本、低功耗的802.15.4芯片组开发。目前正在使用的大量产品,只需一次简单的软件升级,便可支持Thread。 59 | 60 | ##相关Web技术 61 | 62 | ##Z-Wave 63 | 64 | > Z-Wave是一种新兴的基于射频的、低成本、低功耗、高可靠、适于网络的短距离无线通信技术。工作频带为908.42MHz(美国)~868.42MHz(欧洲),采用FSK(BFSK/GFSK)调制方式,数据传输速率为9.6 kbps,信号的有效覆盖范围在室内是30m,室外可超过100m,适合于窄带宽应用场合。随着通信距离的增大,设备的复杂度、功耗以及系统成本都在增加,相对于现有的各种无线通信技术,Z-Wave技术将是最低功耗和最低成本的技术,有力地推动着低速率无线个人区域网。 65 | 66 | ##Zigbee 67 | 68 | > ZigBee是基于IEEE802.15.4标准的低功耗局域网协议。根据国际标准规定,ZigBee技术是一种短距离、低功耗的无线通信技术。这一名称(又称紫蜂协议)来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。其特点是近距离、低复杂度、自组织、低功耗、低数据速率。主要适合用于自动控制和远程控制领域,可以嵌入各种设备。简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术。 69 | 70 | ###Websocket 71 | 72 | > WebSocket protocol 是HTML5一种新的协议。它是实现了浏览器与服务器全双工通信(full-duplex)。 73 | 74 | ###SOAP 75 | 76 | > 简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。 77 | 78 | ###6LoWPAN 79 | 80 | > IETF 6LoWPAN取得的突破是得到一种非常紧凑、高效的IP实现,消除了以前造成各种专门标准和专有协议的因素。这在工业协议(BACNet、LonWorks、通用工业协议和监控与数据采集)领域具有特别的价值。这些协议最初开发是为了提供特殊的行业特有的总线和链路(从控制器区域网总线到AC电源线)上的互操作性。 81 | 82 | ###UDP 83 | 84 | > UDP协议的全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。 85 | 86 | ###uIP 87 | 88 | > uIP 由瑞典计算机科学学院(网络嵌入式系统小组)的Adam Dunkels 开发。其源代码由C 语言编写,并完全公开。 89 | 90 | > uIP 协议栈去掉了完整的 TCP/IP 中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议,设计重点放在了 91 | IP/TCP/ICMP/UDP/ARP 这些网络层和传输层协议上,保证了其代码的通用性和结构的稳定性。 92 | 93 | 94 | ###DTLS 95 | 96 | > DTLS(Datagram Transport Layer Security)即数据包传输层安全性协议。TLS不能用来保证UDP上传输的数据的安全,因此Datagram TLS试图在现存的TLS协议架构上提出扩展,使之支持UDP,即成为TLS的一个支持数据报传输的版本。DTLS 1.0基于TLS 1.1, DTLS 1.2基于TLS 1.2。 97 | 98 | ###NFC 99 | 100 | > NFC近场通信技术是由非接触式射频识别(RFID)及互联互通技术整合演变而来,在单一芯片上结合感应式读卡器、感应式卡片和点对点的功能,能在短距离内与兼容设备进行识别和数据交换。工作频率为13.56MHz.但是使用这种手机支付方案的用户必须更换特制的手机。目前这项技术在日韩被广泛应用。手机用户凭着配置了支付功能的手机就可以行遍全国:他们的手机可以用作机场登机验证、大厦的门禁钥匙、交通一卡通、信用卡、支付卡等等。 101 | 102 | ###WiFi 103 | 104 | > Wi-Fi是一种可以将个人电脑、手持设备(如pad、手机)等终端以无线方式互相连接的技术,事实上它是一个高频无线电信号。无线保真是一个无线网络通信技术的品牌,由Wi-Fi联盟所持有。目的是改善基于IEEE 802.11标准的无线网路产品之间的互通性。有人把使用IEEE 802.11系列协议的局域网就称为无线保真。甚至把无线保真等同于无线网际网路(Wi-Fi是WLAN的重要组成部分) 105 | 106 | ##物联网相关平台 107 | 108 | ###Yeelink 109 | 110 | 主页: [http://www.yeelink.net/](http://www.yeelink.net/) 111 | 112 | ###SiteWhere 113 | 114 | > The Open Platform for the Internet of Things ™ 115 | 116 | > 这个项目提供了一个完整的平台,来管理物联网设备、收集数据并用外部系统进行数据整合。SiteWhere发行版本可以下载或在亚马逊云中使用。它还集成了多个大数据工具,包括MongoDB和ApacheHBase。 117 | 118 | 主页: [http://www.sitewhere.org/](http://www.sitewhere.org/) 119 | 120 | 121 | ###DeviceHive 122 | 123 | > 该项目提供一个支持连接设备到物联网的机器对机器通信框架。它包括支持创建网络易于使用基于web的管理软件、应用安全规则和监控设备。该网站提供内置有DeviceHub的样本项目,而且它也有一个“游乐场”部分,允许用户使用DeviceHub在线去看它是如何工作的。 124 | 125 | 主页: [http://www.devicehive.com/](http://www.devicehive.com/) 126 | 127 | ###Devicehub.net 128 | 129 | > Devicehub.net描述自己为“物联网的开源支柱”。它是一个基于云的服务,存储物联网相关的数据,提供数据的可视化并允许用户在网页上控制物联网设备。开发者使用该服务创建跟踪健康信息的应用程序,监视孩子的位置,自动化家电,跟踪车辆数据,监测天气等等。 130 | > 131 | 主页: [http://devicehub.net/](http://devicehub.net/) 132 | 133 | ###IoT Toolkit 134 | 135 | > 这个项目背后的组织正使用各种工具工作,来集成多个物联网相关的传感器网络和协议。虽然主要的项目时一个智能对象应用程序,但该组织也工作在一个HTTP对Coap的情景下,一个带有嵌入式软件代理的应用程序框架等等。在硅谷,他们也发起了一个“遇见”组织,面向对物联网开发有情趣的人。 136 | 137 | 主页: [http://iot-toolkit.com/](http://iot-toolkit.com/) 138 | 139 | ###Mango(芒果) 140 | 141 | > “芒果”自称是“世界上最流行的开源的机器对机器软件”。基于网络的它支持多个平台。它的主要功能包括支持多协议和数据库、元点、用户自定义事件、导入/导出等等。 142 | 143 | ###Nimbits 144 | 145 | > Nimbits可以存储和处理特定的数据类型,数据可以是时间标记的或地理标记的。作为服务的公用平台是可用的,或者你也可以下载这个软件并部署它到谷歌应用引擎、或亚马逊EC2上的J2EE服务器上、或一个树莓派上。它支持多种编程语言,包括Arduino、JavaScript、HTML或Nimbits.io Java库。 146 | 147 | ###OpenRemote 148 | 149 | > OpenRemote为基于家居的爱好者、集成商、分销商和制造商提供了四种不同的集成工具。它支持十几种不同的现有协议,允许用户创建几乎任何类型的智能设备(他们能够想到和使用任何支持java的设备来控制它)。该平台是开源的,但在设计和产品开发过程中,该公司也出售各种支持、电子书等工具来进行帮助。 150 | 151 | ###ThingSpeak 152 | 153 | > ThingSpeak可以处理HTTP请求,并存储和处理数据。这个开放数据平台的主要功能包括开放应用程序、实时数据收集、地理位置数据、数据处理和可视化、设备状态信息和插件。它可以集成多个硬件和软件平台,包括Arduino、树莓派、ioBridge/RealTime.io、Electic lmp、移动和网络应用、社会网络和MATLAB数据分析。除了开源版本,还提供托管服务。 154 | 155 | ##物联网相关嵌入式操作系统 156 | 157 | > 实时系统(Real-time operating system,RTOS)的正确性不仅依赖系统计算的逻辑结果,还依赖于产生这个结果的时间。实时系统能够在指定或者确定的时间内完成系统功能和外部或内部、同步或异步时间做出响应的系统。因此实时系统应该在事先先定义的时间范围内识别和处理离散事件的能力;系统能够处理和储存控制系统所需要的大量数据。 158 | 159 | ###Contiki 160 | 161 | **相关支持**: ``CoAP``,``TCP/IP网络支持``,``RPL路由``,``6Lowpan 报文压缩``,``Rime无线协议栈`` 162 | 163 | > Contiki是一个适用于有内存的嵌入式系统的开源的、高可移植的、支持网络的多任务操作系统。包括一个多任务核心、TCP/IP 堆栈、程序集以及低能耗的无线通讯堆栈。Contiki 采用 C 语言开发的非常小型的嵌入式操作系统,运行只需要几K的内存。 164 | 165 | Contiki 是一个小型的,开源的,极易移植的多任务电脑操作系统。它专门设计以适用于一系列的内存受限的网络系统,包括从8位电脑到微型控制器的嵌入系统。它的名字来自于托尔·海尔达尔的康提基号。 166 | 167 | Contiki只需几kilobyte的代码和几百字节的内存就能提供多任务环境和内建TCP/IP支持。 168 | 169 | ###LwIP 170 | 171 | > LwIP是Light Weight (轻型)IP协议,有无操作系统的支持都可以运行。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40K左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。 172 | 173 | > lwIP协议栈主要关注的是怎么样减少内存的使用和代码的大小,这样就可以让lwIP适用于资源有限的小型平台例如嵌入式系统。为了简化处理过程和内存要求,lwIP对API进行了裁减,可以不需要复制一些数据。 174 | 175 | ###FREERTOS 176 | 177 | > FreeRTOS是一个迷你操作系统内核的小型嵌入式系统。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。 178 | 179 | > 由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行,其最新版本为8.0.0版。 180 | 181 | ###mbed OS 182 | 183 | ![mbed OS](./images/mbedos.png) 184 | 185 | **相关支持**: ``BLE``,``Celluar``,``WIFI``,``Zigbee``,``6LoWPAN`` 186 | 187 | > 一款基于ARM Cortex-M处理器的设备所设计的免费操作系统,配有安全、通讯和设备管理模块,支持低功率智能蓝牙标准、2G、3G与CDMA通信技术、Thread、Wi-Fi、802.15.4/6LoWPAN、TLS/DTLS、CoAP、HTTP、MQTT以及轻量级的M2M。而只需32-64kbRAM和256 kb闪存的配置,适合在小设备上运行。 188 | 189 | > mbed™ OS is an operating system for IoT devices and is especially well-suited to run in energy constrained environments. The OS includes the connectivity, security and device management functionalities required in every IoT device. 190 | 191 | - Connectivity protocol stack support for Bluetooth® low energy, Cellular, Ethernet, Thread, Wi-fi®, Zigbee IP, Zigbee NAN, 6LoWPAN 192 | - Automation of power management 193 | - Software asset protection and secure firmware updates for device security & management 194 | - Supports a wide range of ARM Cortex-M based hardware platforms from major MCU vendors 195 | - Support for OMA Lightweight M2M protocol for device management 196 | - Updatable and secure devices at the edge capable of additional processing and functionality 197 | - Banking-class end-to-end IP security across the communication channels through TLS & DTLS 198 | - Future proof designs by supporting all the key open standards for connectivity and device management 199 | 200 | ###emOS 201 | 202 | > embOS是一个优先级控制的多任务系统,是专门为各种微控制器应用于实时系统应用的嵌入式操作系统.是一个具有最小RAM和ROM占用的、高速的、多功能的高性能工具。 203 | 204 | > 贯穿embOS的整个开发过程,微控制器有限的资源一直是开发者所顾忌的。五年来,该RTOS的内部结构已经被优化为不同客户的不同应用中,以满足工业需要。对不同微控制器的完全源码,使开发者很方便用实时操作系统构建实时程序。embOS是高度模块化的,只有需要的函数才被调用,占用的ROM非常小。 最小的内存占用:1kb ROM,30字节 RAM;由于提供源码文件,你可以用embOS灵活定制系统以满足实际需求。 205 | 任务之间可以通过旗语、邮箱和事件安全便利地通讯。 206 | 207 | ###Salvo 208 | 209 | > Salvo™ is the first Real-Time Operating System (RTOS) designed expressly for very-low-cost embedded systems with severely limited program and data memory. With Salvo, you can quickly create low-cost, smart and sophisticated embedded products. Pumpkin™ has currently certified Salvo for use with: 210 | 211 | ###μC/OS-II 212 | 213 | > uC/OS II(Micro Control Operation System Two) 是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。 214 | 215 | > 为了提供最好的移植性能,uC/OS II最大程度上使用ANSI C语言进行开发,并且已经移植到近40多种处理器体系上,涵盖了从8位到64位各种CPU(包括DSP)。 uC/OS II可以简单的视为一个多任务调度器,在这个任务调度器之上完善并添加了和多任务操作系统相关的系统服务,如信号量、邮箱等。其主要特点有公开源代码,代码结构清晰、明了,注释详尽,组织有条理,可移植性好,可裁剪,可固化。内核属于抢占式,最多可以管理60个任务。从1992年开始,由于高度可靠性、移植性和安全性,uC/OS II已经广泛使用在从照相机到航空电子产品的各种应用中。 216 | 217 | ###TinyOS 218 | 219 | 协议支持: ``CoAP`` 220 | 221 | [TinyCoAP](http://tinyos.stanford.edu/tinyos-wiki/index.php/CoAP_-13) 222 | 223 | > TinyOS是UC Berkeley(加州大学伯克利分校)开发的开放源代码操作系统,专为嵌入式无线传感网络设计,操作系统基于构件(component-based)的架构使得快速的更新成为可能,而这又减小了受传感网络存储器限制的代码长度。 224 | 225 | > TinyOS的构件包括网络协议、分布式服务器、传感器驱动及数据识别工具。其良好的电源管理源于事件驱动执行模型,该模型也允许时序安排具有灵活性。TinyOS已被应用于多个平台和感应板中。 226 | 227 | ###MQX 228 | 229 | > Freescale MQX™ RTOS a full-featured complimentary real-time operating system including the MQX™ Kernel, TCP/IP stack (RTCS), embedded MS-DOS file system (MFS), USB host/device stack, and more. The MQX™ multitasking kernel provides pre-emptive scheduling, fast interrupt response, extensive inter-process communication and synchronization facilities. MQX RTOS includes its own peripheral drivers. 230 | 231 | ###QNX 232 | 233 | > QNX是由加拿大QSSL公司(QNX Software System Ltd.)开发的分布式实时操作系统。该操作系统既能运行于以Intel X86、Pentium等CPU为核心硬件环境下,也能运行于以PowerPC、MIPS等CPU为核心的硬件环境。QNX操作系统符合POSIX基本标准和实时标准,使其应用可以方便的进行移植。 234 | 235 | 236 | ###openWRT 237 | 238 | > OpenWrt 可以被描述为一个嵌入式的 Linux 发行版,(主流路由器固件有 dd-wrt,tomato,openwrt三类)而不是试图建立一个单一的、静态的系统。OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。 239 | 240 | > 对于开发人员,OpenWrt 是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备。 241 | 242 | ###RIOT 243 | 项目首页: [http://riot-os.org/](http://riot-os.org/) 244 | 平台: ``MSP430``, ``ARM7``, ``Cortex-M0``, ``Cortex-M3``,``Cortex-M4``,``x86`` 245 | > RIOT自称为“友好的物联网操作系统”。RIOT是FeuerWhere项目的分支,首次亮相在2013年。它的目的是既开发者友好又资源友好。它支持多种架构,包括MSP430、ARM7、Cortex-M0、Cortex-M3、Cortex-M4和标准的x86电脑。 246 | 247 | #物联网相关库 248 | 249 | ##CoAP协议 250 | 251 | ###libcoap 252 | 253 | 语言: ``C`` 254 | 255 | 主页: [http://sourceforge.net/projects/libcoap/](http://sourceforge.net/projects/libcoap/) 256 | 257 | > Lightweight application-protocol for devices that are constrained their resources such as computing power, RF range, memory, bandwith, or network packet sizes. This protocol, CoAP, is developed in the IETF working group "CoRE", . 258 | 259 | ###jCoAP 260 | 261 | 语言: ``Java`` 262 | 263 | 主页: [https://code.google.com/p/jcoap/](https://code.google.com/p/jcoap/) 264 | 265 | > jCoAP is a Java Library implementing the Constrained Application Protocol (CoAP) 266 | 267 | 268 | ###Node-CoAP 269 | 270 | 语言: ``Javascript`` (Nodejs) 271 | 272 | 主页: [https://github.com/mcollina/node-coap](https://github.com/mcollina/node-coap) 273 | 274 | > node-coap is a client and server library for CoAP modelled after the http module. 275 | 276 | ###coap 277 | 278 | 语言: ``Python`` 279 | 280 | 主页: [https://github.com/openwsn-berkeley/coap](https://github.com/openwsn-berkeley/coap) 281 | 282 | > A CoAP Python library 283 | 284 | > This package implements the Constrained Application Protocol (CoAP) developed by the IETF CORE working group. 285 | 286 | ###Californium (Cf) CoAP 287 | 288 | 语言: ``Java`` 289 | 290 | 主页: [https://github.com/mkovatsc/Californium](https://github.com/mkovatsc/Californium) 291 | 292 | > Californium (Cf) is an open source implementation of the Constrained Application Protocol (CoAP). It is written in Java and targets unconstrained environments such as back-end service infrastructures (e.g., proxies, resource directories, or management services) and less constrained environments such as embedded devices running Linux (e.g., smart home controllers or vehicle sensors). Californium (Cf) has been running code for the IETF standardization of CoAP and was recently reimplemented to straighten changed design decisions, but also to improve its performance with focus on scalability. The new implementation was successfully tested at the ETSI CoAP#3 and OMA LWM2M Plugtests in November 2013. 293 | 294 | ##REST 295 | 296 | ###cJSON 297 | 298 | 语言: ``C`` 299 | 300 | 主页: [http://sourceforge.net/projects/cjson/](http://sourceforge.net/projects/cjson/) 301 | 302 | > JSON(JavaScriptObject Notation)是一种轻量级的数据交换格式。它基于JavaScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。 303 | 304 | ##其他 305 | 306 | ###cURL 307 | 308 | 语言: ``C`` 309 | 310 | 主页: [http://curl.haxx.se/](http://curl.haxx.se/) 311 | 312 | > curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本。 313 | 314 | ###HiveMQ 315 | 316 | 语言: ``Java`` 317 | 318 | 主页: [http://www.hivemq.com/](http://www.hivemq.com/) 319 | 320 | > HiveMQ 是一个企业级的 MQTT 代理,主要用于企业和新兴的机器到机器M2M通讯和内部传输,最大程度的满足可伸缩性、易管理和安全特性。提供免费的个人版。HiveMQ 提供了开源的插件开发包。 321 | 322 | 323 | ##物联网书籍 324 | 325 | 书名 | 作者 | 日期 | 类型 326 | ------------ | ------------- | ------------ | ------------ 327 | [Learning Internet of Things](https://www.packtpub.com/application-development/learning-internet-things) | Peter Waher | 2015.02 | Book & Ebook| 328 | [一步步搭建物联网系统](http://designiot.phodal.com) | Phodal Fengda & Fortware | 2014.11 | 电子书 | - 329 | [Learning Internet of Things] | - | - | - 330 | 331 | ##物联网相关书籍 332 | 333 | ###WEB 334 | 335 | 书名 | 作者 | 日期 | 类型 336 | ------------ | ------------- | ------------ | ------------ 337 | RESTful Web APIs | Leonard Richardson & Mike Amundsen | 2014.06 | - 338 | REST实战 | 韦伯 & 帕拉斯泰迪斯 | 2011.09. | - 339 | 340 | ###硬件 341 | 342 | 书名 | 作者 | 日期 | 类型 | 343 | ------------ | ------------- | ------------ | ------------ 344 | Arduino从基础到实践 | Michael McRoberts | 2013.03 | - 345 | Arduino Cookbook | Michael Margolis | 2011.04 | - 346 | Raspberry Pi用户指南 | Eben Upton | 2013.08 | - 347 | 348 | ## License 349 | 350 | ![cc](https://i.creativecommons.org/l/by-nc/4.0/88x31.png) 351 | 352 | [Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)](http://creativecommons.org/licenses/by-nc/4.0/) 353 | 354 | © 2014 [Phodal Huang](http://www.phodal.com). 355 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible. 2 | 3 | Using Creative Commons Public Licenses 4 | 5 | Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses. 6 | 7 | Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors. 8 | Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public. 9 | Creative Commons Attribution-NonCommercial 4.0 International Public License 10 | 11 | By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-NonCommercial 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. 12 | 13 | Section 1 – Definitions. 14 | 15 | Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. 16 | Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. 17 | Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. 18 | Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. 19 | Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. 20 | Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. 21 | Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. 22 | Licensor means the individual(s) or entity(ies) granting rights under this Public License. 23 | NonCommercial means not primarily intended for or directed towards commercial advantage or monetary compensation. For purposes of this Public License, the exchange of the Licensed Material for other material subject to Copyright and Similar Rights by digital file-sharing or similar means is NonCommercial provided there is no payment of monetary compensation in connection with the exchange. 24 | Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. 25 | Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. 26 | You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. 27 | Section 2 – Scope. 28 | 29 | License grant. 30 | Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: 31 | reproduce and Share the Licensed Material, in whole or in part, for NonCommercial purposes only; and 32 | produce, reproduce, and Share Adapted Material for NonCommercial purposes only. 33 | Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. 34 | Term. The term of this Public License is specified in Section 6(a). 35 | Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. 36 | Downstream recipients. 37 | Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. 38 | No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. 39 | No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). 40 | Other rights. 41 | 42 | Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. 43 | Patent and trademark rights are not licensed under this Public License. 44 | To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties, including when the Licensed Material is used other than for NonCommercial purposes. 45 | Section 3 – License Conditions. 46 | 47 | Your exercise of the Licensed Rights is expressly made subject to the following conditions. 48 | 49 | Attribution. 50 | 51 | If You Share the Licensed Material (including in modified form), You must: 52 | 53 | retain the following if it is supplied by the Licensor with the Licensed Material: 54 | identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); 55 | a copyright notice; 56 | a notice that refers to this Public License; 57 | a notice that refers to the disclaimer of warranties; 58 | a URI or hyperlink to the Licensed Material to the extent reasonably practicable; 59 | indicate if You modified the Licensed Material and retain an indication of any previous modifications; and 60 | indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. 61 | You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. 62 | If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. 63 | If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License. 64 | Section 4 – Sui Generis Database Rights. 65 | 66 | Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: 67 | 68 | for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database for NonCommercial purposes only; 69 | if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and 70 | You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. 71 | For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. 72 | Section 5 – Disclaimer of Warranties and Limitation of Liability. 73 | 74 | Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. 75 | To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. 76 | The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. 77 | Section 6 – Term and Termination. 78 | 79 | This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. 80 | Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: 81 | 82 | automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or 83 | upon express reinstatement by the Licensor. 84 | For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. 85 | For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. 86 | Sections 1, 5, 6, 7, and 8 survive termination of this Public License. 87 | Section 7 – Other Terms and Conditions. 88 | 89 | The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. 90 | Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. 91 | Section 8 – Interpretation. 92 | 93 | For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. 94 | To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. 95 | No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. 96 | Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. 97 | Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. 98 | 99 | Creative Commons may be contacted at creativecommons.org. -------------------------------------------------------------------------------- /Licence.txt: -------------------------------------------------------------------------------- 1 | Attribution-NonCommercial 4.0 International 2 | 3 | ======================================================================= 4 | 5 | Creative Commons Corporation ("Creative Commons") is not a law firm and 6 | does not provide legal services or legal advice. Distribution of 7 | Creative Commons public licenses does not create a lawyer-client or 8 | other relationship. Creative Commons makes its licenses and related 9 | information available on an "as-is" basis. Creative Commons gives no 10 | warranties regarding its licenses, any material licensed under their 11 | terms and conditions, or any related information. Creative Commons 12 | disclaims all liability for damages resulting from their use to the 13 | fullest extent possible. 14 | 15 | Using Creative Commons Public Licenses 16 | 17 | Creative Commons public licenses provide a standard set of terms and 18 | conditions that creators and other rights holders may use to share 19 | original works of authorship and other material subject to copyright 20 | and certain other rights specified in the public license below. The 21 | following considerations are for informational purposes only, are not 22 | exhaustive, and do not form part of our licenses. 23 | 24 | Considerations for licensors: Our public licenses are 25 | intended for use by those authorized to give the public 26 | permission to use material in ways otherwise restricted by 27 | copyright and certain other rights. Our licenses are 28 | irrevocable. Licensors should read and understand the terms 29 | and conditions of the license they choose before applying it. 30 | Licensors should also secure all rights necessary before 31 | applying our licenses so that the public can reuse the 32 | material as expected. Licensors should clearly mark any 33 | material not subject to the license. This includes other CC- 34 | licensed material, or material used under an exception or 35 | limitation to copyright. More considerations for licensors: 36 | wiki.creativecommons.org/Considerations_for_licensors 37 | 38 | Considerations for the public: By using one of our public 39 | licenses, a licensor grants the public permission to use the 40 | licensed material under specified terms and conditions. If 41 | the licensor's permission is not necessary for any reason--for 42 | example, because of any applicable exception or limitation to 43 | copyright--then that use is not regulated by the license. Our 44 | licenses grant only permissions under copyright and certain 45 | other rights that a licensor has authority to grant. Use of 46 | the licensed material may still be restricted for other 47 | reasons, including because others have copyright or other 48 | rights in the material. A licensor may make special requests, 49 | such as asking that all changes be marked or described. 50 | Although not required by our licenses, you are encouraged to 51 | respect those requests where reasonable. More_considerations 52 | for the public: 53 | wiki.creativecommons.org/Considerations_for_licensees 54 | 55 | ======================================================================= 56 | 57 | Creative Commons Attribution-NonCommercial 4.0 International Public 58 | License 59 | 60 | By exercising the Licensed Rights (defined below), You accept and agree 61 | to be bound by the terms and conditions of this Creative Commons 62 | Attribution-NonCommercial 4.0 International Public License ("Public 63 | License"). To the extent this Public License may be interpreted as a 64 | contract, You are granted the Licensed Rights in consideration of Your 65 | acceptance of these terms and conditions, and the Licensor grants You 66 | such rights in consideration of benefits the Licensor receives from 67 | making the Licensed Material available under these terms and 68 | conditions. 69 | 70 | 71 | Section 1 -- Definitions. 72 | 73 | a. Adapted Material means material subject to Copyright and Similar 74 | Rights that is derived from or based upon the Licensed Material 75 | and in which the Licensed Material is translated, altered, 76 | arranged, transformed, or otherwise modified in a manner requiring 77 | permission under the Copyright and Similar Rights held by the 78 | Licensor. For purposes of this Public License, where the Licensed 79 | Material is a musical work, performance, or sound recording, 80 | Adapted Material is always produced where the Licensed Material is 81 | synched in timed relation with a moving image. 82 | 83 | b. Adapter's License means the license You apply to Your Copyright 84 | and Similar Rights in Your contributions to Adapted Material in 85 | accordance with the terms and conditions of this Public License. 86 | 87 | c. Copyright and Similar Rights means copyright and/or similar rights 88 | closely related to copyright including, without limitation, 89 | performance, broadcast, sound recording, and Sui Generis Database 90 | Rights, without regard to how the rights are labeled or 91 | categorized. For purposes of this Public License, the rights 92 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 93 | Rights. 94 | d. Effective Technological Measures means those measures that, in the 95 | absence of proper authority, may not be circumvented under laws 96 | fulfilling obligations under Article 11 of the WIPO Copyright 97 | Treaty adopted on December 20, 1996, and/or similar international 98 | agreements. 99 | 100 | e. Exceptions and Limitations means fair use, fair dealing, and/or 101 | any other exception or limitation to Copyright and Similar Rights 102 | that applies to Your use of the Licensed Material. 103 | 104 | f. Licensed Material means the artistic or literary work, database, 105 | or other material to which the Licensor applied this Public 106 | License. 107 | 108 | g. Licensed Rights means the rights granted to You subject to the 109 | terms and conditions of this Public License, which are limited to 110 | all Copyright and Similar Rights that apply to Your use of the 111 | Licensed Material and that the Licensor has authority to license. 112 | 113 | h. Licensor means the individual(s) or entity(ies) granting rights 114 | under this Public License. 115 | 116 | i. NonCommercial means not primarily intended for or directed towards 117 | commercial advantage or monetary compensation. For purposes of 118 | this Public License, the exchange of the Licensed Material for 119 | other material subject to Copyright and Similar Rights by digital 120 | file-sharing or similar means is NonCommercial provided there is 121 | no payment of monetary compensation in connection with the 122 | exchange. 123 | 124 | j. Share means to provide material to the public by any means or 125 | process that requires permission under the Licensed Rights, such 126 | as reproduction, public display, public performance, distribution, 127 | dissemination, communication, or importation, and to make material 128 | available to the public including in ways that members of the 129 | public may access the material from a place and at a time 130 | individually chosen by them. 131 | 132 | k. Sui Generis Database Rights means rights other than copyright 133 | resulting from Directive 96/9/EC of the European Parliament and of 134 | the Council of 11 March 1996 on the legal protection of databases, 135 | as amended and/or succeeded, as well as other essentially 136 | equivalent rights anywhere in the world. 137 | 138 | l. You means the individual or entity exercising the Licensed Rights 139 | under this Public License. Your has a corresponding meaning. 140 | 141 | 142 | Section 2 -- Scope. 143 | 144 | a. License grant. 145 | 146 | 1. Subject to the terms and conditions of this Public License, 147 | the Licensor hereby grants You a worldwide, royalty-free, 148 | non-sublicensable, non-exclusive, irrevocable license to 149 | exercise the Licensed Rights in the Licensed Material to: 150 | 151 | a. reproduce and Share the Licensed Material, in whole or 152 | in part, for NonCommercial purposes only; and 153 | 154 | b. produce, reproduce, and Share Adapted Material for 155 | NonCommercial purposes only. 156 | 157 | 2. Exceptions and Limitations. For the avoidance of doubt, where 158 | Exceptions and Limitations apply to Your use, this Public 159 | License does not apply, and You do not need to comply with 160 | its terms and conditions. 161 | 162 | 3. Term. The term of this Public License is specified in Section 163 | 6(a). 164 | 165 | 4. Media and formats; technical modifications allowed. The 166 | Licensor authorizes You to exercise the Licensed Rights in 167 | all media and formats whether now known or hereafter created, 168 | and to make technical modifications necessary to do so. The 169 | Licensor waives and/or agrees not to assert any right or 170 | authority to forbid You from making technical modifications 171 | necessary to exercise the Licensed Rights, including 172 | technical modifications necessary to circumvent Effective 173 | Technological Measures. For purposes of this Public License, 174 | simply making modifications authorized by this Section 2(a) 175 | (4) never produces Adapted Material. 176 | 177 | 5. Downstream recipients. 178 | 179 | a. Offer from the Licensor -- Licensed Material. Every 180 | recipient of the Licensed Material automatically 181 | receives an offer from the Licensor to exercise the 182 | Licensed Rights under the terms and conditions of this 183 | Public License. 184 | 185 | b. No downstream restrictions. You may not offer or impose 186 | any additional or different terms or conditions on, or 187 | apply any Effective Technological Measures to, the 188 | Licensed Material if doing so restricts exercise of the 189 | Licensed Rights by any recipient of the Licensed 190 | Material. 191 | 192 | 6. No endorsement. Nothing in this Public License constitutes or 193 | may be construed as permission to assert or imply that You 194 | are, or that Your use of the Licensed Material is, connected 195 | with, or sponsored, endorsed, or granted official status by, 196 | the Licensor or others designated to receive attribution as 197 | provided in Section 3(a)(1)(A)(i). 198 | 199 | b. Other rights. 200 | 201 | 1. Moral rights, such as the right of integrity, are not 202 | licensed under this Public License, nor are publicity, 203 | privacy, and/or other similar personality rights; however, to 204 | the extent possible, the Licensor waives and/or agrees not to 205 | assert any such rights held by the Licensor to the limited 206 | extent necessary to allow You to exercise the Licensed 207 | Rights, but not otherwise. 208 | 209 | 2. Patent and trademark rights are not licensed under this 210 | Public License. 211 | 212 | 3. To the extent possible, the Licensor waives any right to 213 | collect royalties from You for the exercise of the Licensed 214 | Rights, whether directly or through a collecting society 215 | under any voluntary or waivable statutory or compulsory 216 | licensing scheme. In all other cases the Licensor expressly 217 | reserves any right to collect such royalties, including when 218 | the Licensed Material is used other than for NonCommercial 219 | purposes. 220 | 221 | 222 | Section 3 -- License Conditions. 223 | 224 | Your exercise of the Licensed Rights is expressly made subject to the 225 | following conditions. 226 | 227 | a. Attribution. 228 | 229 | 1. If You Share the Licensed Material (including in modified 230 | form), You must: 231 | 232 | a. retain the following if it is supplied by the Licensor 233 | with the Licensed Material: 234 | 235 | i. identification of the creator(s) of the Licensed 236 | Material and any others designated to receive 237 | attribution, in any reasonable manner requested by 238 | the Licensor (including by pseudonym if 239 | designated); 240 | 241 | ii. a copyright notice; 242 | 243 | iii. a notice that refers to this Public License; 244 | 245 | iv. a notice that refers to the disclaimer of 246 | warranties; 247 | 248 | v. a URI or hyperlink to the Licensed Material to the 249 | extent reasonably practicable; 250 | 251 | b. indicate if You modified the Licensed Material and 252 | retain an indication of any previous modifications; and 253 | 254 | c. indicate the Licensed Material is licensed under this 255 | Public License, and include the text of, or the URI or 256 | hyperlink to, this Public License. 257 | 258 | 2. You may satisfy the conditions in Section 3(a)(1) in any 259 | reasonable manner based on the medium, means, and context in 260 | which You Share the Licensed Material. For example, it may be 261 | reasonable to satisfy the conditions by providing a URI or 262 | hyperlink to a resource that includes the required 263 | information. 264 | 265 | 3. If requested by the Licensor, You must remove any of the 266 | information required by Section 3(a)(1)(A) to the extent 267 | reasonably practicable. 268 | 269 | 4. If You Share Adapted Material You produce, the Adapter's 270 | License You apply must not prevent recipients of the Adapted 271 | Material from complying with this Public License. 272 | 273 | 274 | Section 4 -- Sui Generis Database Rights. 275 | 276 | Where the Licensed Rights include Sui Generis Database Rights that 277 | apply to Your use of the Licensed Material: 278 | 279 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 280 | to extract, reuse, reproduce, and Share all or a substantial 281 | portion of the contents of the database for NonCommercial purposes 282 | only; 283 | 284 | b. if You include all or a substantial portion of the database 285 | contents in a database in which You have Sui Generis Database 286 | Rights, then the database in which You have Sui Generis Database 287 | Rights (but not its individual contents) is Adapted Material; and 288 | 289 | c. You must comply with the conditions in Section 3(a) if You Share 290 | all or a substantial portion of the contents of the database. 291 | 292 | For the avoidance of doubt, this Section 4 supplements and does not 293 | replace Your obligations under this Public License where the Licensed 294 | Rights include other Copyright and Similar Rights. 295 | 296 | 297 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 298 | 299 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 300 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 301 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 302 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 303 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 304 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 305 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 306 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 307 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 308 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 309 | 310 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 311 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 312 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 313 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 314 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 315 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 316 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 317 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 318 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 319 | 320 | c. The disclaimer of warranties and limitation of liability provided 321 | above shall be interpreted in a manner that, to the extent 322 | possible, most closely approximates an absolute disclaimer and 323 | waiver of all liability. 324 | 325 | 326 | Section 6 -- Term and Termination. 327 | 328 | a. This Public License applies for the term of the Copyright and 329 | Similar Rights licensed here. However, if You fail to comply with 330 | this Public License, then Your rights under this Public License 331 | terminate automatically. 332 | 333 | b. Where Your right to use the Licensed Material has terminated under 334 | Section 6(a), it reinstates: 335 | 336 | 1. automatically as of the date the violation is cured, provided 337 | it is cured within 30 days of Your discovery of the 338 | violation; or 339 | 340 | 2. upon express reinstatement by the Licensor. 341 | 342 | For the avoidance of doubt, this Section 6(b) does not affect any 343 | right the Licensor may have to seek remedies for Your violations 344 | of this Public License. 345 | 346 | c. For the avoidance of doubt, the Licensor may also offer the 347 | Licensed Material under separate terms or conditions or stop 348 | distributing the Licensed Material at any time; however, doing so 349 | will not terminate this Public License. 350 | 351 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 352 | License. 353 | 354 | 355 | Section 7 -- Other Terms and Conditions. 356 | 357 | a. The Licensor shall not be bound by any additional or different 358 | terms or conditions communicated by You unless expressly agreed. 359 | 360 | b. Any arrangements, understandings, or agreements regarding the 361 | Licensed Material not stated herein are separate from and 362 | independent of the terms and conditions of this Public License. 363 | 364 | 365 | Section 8 -- Interpretation. 366 | 367 | a. For the avoidance of doubt, this Public License does not, and 368 | shall not be interpreted to, reduce, limit, restrict, or impose 369 | conditions on any use of the Licensed Material that could lawfully 370 | be made without permission under this Public License. 371 | 372 | b. To the extent possible, if any provision of this Public License is 373 | deemed unenforceable, it shall be automatically reformed to the 374 | minimum extent necessary to make it enforceable. If the provision 375 | cannot be reformed, it shall be severed from this Public License 376 | without affecting the enforceability of the remaining terms and 377 | conditions. 378 | 379 | c. No term or condition of this Public License will be waived and no 380 | failure to comply consented to unless expressly agreed to by the 381 | Licensor. 382 | 383 | d. Nothing in this Public License constitutes or may be interpreted 384 | as a limitation upon, or waiver of, any privileges and immunities 385 | that apply to the Licensor or You, including from the legal 386 | processes of any jurisdiction or authority. 387 | 388 | ======================================================================= 389 | 390 | Creative Commons is not a party to its public licenses. 391 | Notwithstanding, Creative Commons may elect to apply one of its public 392 | licenses to material it publishes and in those instances will be 393 | considered the "Licensor." Except for the limited purpose of indicating 394 | that material is shared under a Creative Commons public license or as 395 | otherwise permitted by the Creative Commons policies published at 396 | creativecommons.org/policies, Creative Commons does not authorize the 397 | use of the trademark "Creative Commons" or any other trademark or logo 398 | of Creative Commons without its prior written consent including, 399 | without limitation, in connection with any unauthorized modifications 400 | to any of its public licenses or any other arrangements, 401 | understandings, or agreements concerning use of licensed material. For 402 | the avoidance of doubt, this paragraph does not form part of the public 403 | licenses. 404 | 405 | Creative Commons may be contacted at creativecommons.org. 406 | --------------------------------------------------------------------------------