概念

物联网。Ashton最初的定义是: “就是当今的电脑以及互联网几乎完全依赖于人类来提供讯息。互联网上大约有50 petabytes (一个petabyte为1,024 terabytes) 的数据,其中大部分最初由人来获取和创建的,通过打字、录音、照相或扫描条码等方式。传统的互联网蓝图中忽略了为数最多并且最重要的节点——人。 而问题是,人的时间、精力和准确度都是有限的,他们并不适于从真实世界中截获讯息。这是一个大问题。我们生活于一个物质世界中,我们不能把虚拟的讯息当做粮食吃,也不能当做柴火来烧。想法和讯息很重要,但物质世界是更本质的。当今的讯息技术如此依赖于人产生的讯息,以至于我们的电脑更了解思想而不是物质。如果电脑能不借助我们的帮助,就获知物质世界中各种可以被获取的讯息,我们将能够跟踪和计量那些物质,极大地减少浪费、损失和消耗。我们将知晓物品何时需要更换、维修或召回,他们是新的还是过了有效期。物联网有改变世界的潜能,就像互联网一样,甚至更多。”

小米智能插座(zigbee版本需要搭配小米多功能网关)响应还是很快的,3G->home wifi->plug socket都在一秒内。MQTT是IBM在WebSocket上面提出的方案。WebSocket对客户端要求比较高吧?能通过防火墙么?小米插座的拆解可以看出其方案为”Marvell EZ-Connect Wi-Fi 微控制器IoT平台采用强大的Cortex-M3微控制器(88MC200)和一流的802.11n无线射频88W8801”,两个芯片+电源管理卖49¥还是很超值的。但是Cortex-M3如何做到http push呢?如何穿透家里的防火墙?插座主动和小米的云服务器建立的 web socket 连接?里面有很多http网页请求,这个是给谁用的?

MQTT

https://github.com/cesanta/mongoose-os/tree/master/fw/examples/c_mqtt This example demonstrates how to perform remote device control over MQTT protocol. ESP8266.

初识 MQTT英文版,解释了为什么不实用 HTTP:

  • HTTP 是一种同步协议,在 IoT 领域,大量设备以及很可能不可靠或高延迟的网络使得同步通信成为问题,异步消息协议更适合 IoT 应用程序
  • HTTP 是单向的,客户端必须发起连接
  • HTTP 是一种 1-1 协议(不适合广播)
  • HTTP 是一种有许多标头和规则的重量级协议

MQTT 也可以在 WebSocket 上面传输。

Google CLOUD IOT CORE 也是用的 MQTT https://cloud.google.com/iot-core/ 基于 Google 的云平台,但是加了很多设备的管理的东西。具体参考 https://cloud.google.com/iot/docs/concepts/overview Cloud Pub/Sub 可以触发 Cloud Functions,也可以触发自己的代码吧,但这里 serverless 更适合点吧。

支持设备列表 https://cloud.google.com/solutions/iot/kit/ 似乎没有提供 SDK,都是标准 REST,比阿里云不知道高明到哪里去了。

阿里云的物联网方案 不过他们的品牌商接入和模组商接入浓浓的商业气息,不够人性化。SDK - Alink 基于freertos。

对于 IoT 方案,人性化很重要,因为客户端很多,安装部署调试都需要人介入。

https://aws.amazon.com/cn/iot/ 亚马逊的方案

https://github.com/phodal/diaonan

iot

The Eclipse Foundation Releases Open Source Smart Home & IoT Gateway Frameworks, MQTT & oneM2M Implementations http://www.cnx-software.com/2016/06/17/the-eclipse-foundation-releases-open-source-smart-home-iot-gateway-frameworks-mqtt-onem2m-implementations/

https://insights.ubuntu.com/2017/12/14/canonical-shows-edgex-on-arm/ EdgeX (https://www.edgexfoundry.org/) is an IoT framework developed and recently open sourced by Dell.

How to use Sonoff POW with ESPurna Firmware and Domoticz Home Automation System https://www.cnx-software.com/2017/01/21/how-to-use-sonoff-pow-with-espurna-firmware-and-domoticz-home-automation-system/

Contiki 这个是运行在比较低端设备上的

uboot use some code from Contiki http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=150751#lastpost

https://github.com/contiki-os

http://www.contiki-os.org/hardware.html

It can use Cooja to simulate

http://item.taobao.com/item.htm?id=20740127998 OCROBOT HoneyBee 2.0 ATMEGA128RFA1.

mbed from here http://www.cnbeta.com/articles/452393.htm ARM推的IoT平台

Google introduce Brillo.

If Arduino is strong enough, why use mbed? Just because for ARM?

https://developer.mbed.org/platforms/FRDM-K64F/

FRDM-K64F Freescale Platform Kinetis

http://www.nxp.com/files/32bit/doc/errata/FRDMK64F_ERRATA.pdf

http://www.nxp.com/zh-Hans/products/software-and-tools/hardware-development-tools/freedom-development-boards/freedom-development-platform-for-kinetis-k64-k63-and-k24-mcus:FRDM-K64F

https://developer.mbed.org/platforms/FRDM-K64F/ 这个是直接在web IDE上面开发,然后下载编译好的bin文件,拷贝到虚拟disk上面,然后设备会自动download这个新的固件。”云开发”的想法很新颖,但是界面太挫。我发现拷贝后需要手动RESET后上传的代码才会运行。

这个MCU自带1MB flash,很少见。

mbed

https://developer.mbed.org/handbook/Firmware-FRDM-K64F 下载bin文件后没有必要重命名。Mac下必须用命令行模式拷贝文件,文件拖放的方式不能工作。

OpenSDA串行调试适配器 http://www.nxp.com/zh-Hans/products/software-and-tools/run-time-software/kinetis-software-and-tools/ides-for-kinetis-mcus/opensda-serial-and-debug-adapter:OPENSDA

http://usbdm.sourceforge.net/USBDM_V4.12/html/index.html USBDM is a debugger hardware interface for a range of Freescale microcontrollers.

MT7628系列以联发科技的行动Wi-Fi架构为基础,具有高效能及省电的优点,共推出了MT7628K 及MT7628A两个型号。MT7628K专门针对入门级路由器提供了完整解决方案, 包含集成了DRAM, 套用了L型的PCB,使用5V/0.6A电源供应器与eCos软件。MT7628A针对智能路由及物联网网关的应用,可以外挂DRAM, 并且在Linux SDK 及OpenWrt SDK 基础上扩展不同应用的支援与加载。

MT7628具备路由器及物联网网关两种运作模式,可见该平台拥有高性能和多元化应用。物联网网关模式支持SD-XC、eMMC、PWM、 SPI slave、三个 UART及更多 GPIOs;路由器模式可以使用PCIe界面连接至802.11ac芯片组,成为入门型的2x2 802.11ac 双频路由器, 参考设计使用了两层PCB版的精简设计。

新浪手机讯 6月3日下午消息,联发科技今日在2014台北电脑展期间推出两款智能家居系统芯片MT7688及MT7681。MT7688是目前业界功耗最低的系统芯片,采用Linux系统,支持802.11n。而MT7681则适用于灯泡、门锁与插座等小型家电。

MT7688内建MIPS24KEc/580MHz处理器,256MB内存以及AES128/256加密引擎,可处理更为复杂或数据密集型的智能家居设备,比如IP投影机及家庭监控系统。其超低功耗相较于之前产品能耗下降四成,并且支持联发科技发布的Smart Connection智能手机应用程序。

MT7681则主要针对如灯泡、门锁、插座等小型设备,支持802.11n,可轻松为嵌入式设备设计网络服务,整合电源管理单元、低杂讯放大器、射频切换器,所有功能都整合在40针脚的5*5毫米的封装中。

MT7687F ARM Cortex-M4F MCU http://www.cnx-software.com/2016/04/22/20-mediatek-linkit-7687-arduino-compatible-wifi-iot-board-runs-freertos/ running FreeRTOS

MT7697, ARM Cortex M4 192Mhz with FPU, Wi-Fi/Bluetooth,MT7687的后继者,ESP32的竞争者。淘宝上卖的很少。LinkIt 7697 HDK by Seeed Studio

Windwos 10 IOT http://www.cnx-software.com/2015/04/30/windows-10-iot-preview-for-raspberry-pi-2-and-minnowboard-max/

http://wrtnode.cc/html/hardware_2.html MT7688+STM32,OpenWrt+Liteos, 256MB ram.

https://wikidevi.com/wiki/MediaTek

LinkIt Smart 7688 Duo, link, wiki. Openwrt has supported it.

MT7688AN. 128MB DDR2, 32MB flash. ATmega32U4. Jtag port. Use tty to talk with arduion. Compatiable with arduion yun.

PWM https://dev.openwrt.org/changeset/46474 http://blog.csdn.net/qianrushizaixian/article/details/46536005

https://www.hackster.io/colinodell/diy-alarm-control-panel-for-home-assistant-ac1813 A simple touchscreen interface, powered by a Raspberry Pi Zero, which controls the alarm in Home Assistant over MQTT.

ittlevGL is a free and open-source graphics library providing everything you need to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint.

https://www.bnext.com.tw/article/34770/BN-ARTICLE-34770 Beacom 应用,主要用来做室内定位

nRF Nordic nRF52840 Arm Cortex-M4F WiSoC with 1 MB FLASH and 256 kB RAM,但是没有wifi

这个有额外添加 wifi 或者 3G 模块

Makerdiary nRF52840 Micro Development Kit Works with OpenThread, Arm Mbed OS, Zephyr OS, Mynewt

https://www.cnx-software.com/2018/07/08/makerdiary-nrf52840-micro-development-kit-openthread-arm-mbed-os-zephyr-os-mynewt/

OS

LinkIt ONE http://wukcsoft.blogspot.com/2014/10/mediatek-linkit-ubuntu.html has SIM/microSD combo http://labs.mediatek.com/site/global/developer_tools/mediatek_linkit/whatis_linkit/index.gsp

FreeRTOS https://mcuoneclipse.com/2014/11/08/tutorial-freertos-with-the-kinetis-sdk-and-processor-expert/

rtos used is Nucleus http://labs.mediatek.com/forums/posts/list/60.page http://www.mentor.com/embedded-software/nucleus/

Intel Edison http://www.cnx-software.com/2014/09/10/50-intel-edison-board-for-wearables-features-an-soc-with-a-dual-core-atom-processor-and-a-quark-mcu/ It can run on Linux http://www.intel.com/content/www/us/en/do-it-yourself/edison.html

Linux基金会宣布了微内核项目Zephyr。Zephyr微内核将被用于开发针对物联网设备的实时操作系统(RTOS)。Zephyr项目得到了英特尔、 NXP半导体、Synopsys和UbiquiOS等公司的支持,英特尔子公司Wind River向Zephyr项目捐赠了它的Rocket RTOS内核。 https://docs.zephyrproject.org/latest/boards/index.html 支持还挺广泛,甚至包括 RISC-V。

Apache NuttX https://nuttx.apache.org/ https://nuttx.apache.org/docs/latest/platforms/risc-v/esp32c3/index.html

Matter

连接标准联盟、Matter 协议——它们的「前世今生」和「未来」

https://github.com/project-chip/connectedhomeip 已经支持不少平台

https://www.espressif.com/zh-hans/news/Matter_on_ESP32