[玩转IOT]未来已来_准备篇
忽如一夜春风来,千树万树梨花开。GXIC大赛之后迷恋上了单片机,从队友那里拿来一套把玩了下,随时把玩的深入,发现IOT已深入到生活的每个角落,并悄悄的改变着我的习惯,影响着我的生活,我也深陷其中无法自拔。
引子
2014年一次偶然的桌球比赛接触到树莓派(图一),拿到派就被他的小巧所吸引,后续出了3代树莓派陆续入手3个,树莓派上可以折腾的NAS,电视盒,LAMP,网盘基本上都玩了一遍(图二),后来玩派遇到性能瓶颈,主要是树莓派上搭建gitlab和Docker受制于内存和系统,基本无法使用,丛淘宝配置了一台E3-1231V3的16G主机作为服务器独立使用,并把整体环境迁移到新的主机上。
玩派的基本多会做电控实验,大学里面没有学单片机课程,当时就是觉得树莓派控制家里的电器成本太高,基本一套下来都要250-300左右,然后就是传统的HTTP协议,虽然可以通过node js在派上实现,但是真心不好用,直到GXIC接触到了ESP8266 单片机(图三),接触到MQTT,接触到NB-IOT和Lora网关,所有的疑惑都一下子解开了。
关于IOT的二三事
其实这真的不是一个新鲜的东西,且听我慢慢说来。马路上的监控摄像头和家里的水表电表就是一个物联网设备,他们都有一个终端能够采集数据并传送到远端。
万物互联:物联网是什么
“物联网”一词最早由 Kevin Ashton 在1999年提出。当时 Kevin 在宝洁公司从事供应链优化工作,他使用了一种新技术 RFID(射频识别),以此建立一个连接物体的无线网络。虽然现代的物联网主要是基于其他技术,Kevin 提出的物联网概念却依然得到广泛地采用,不断深入人心。
根据 BI Intelligence 的定义 ,物联网是 “能够使用嵌入式传感器收集和交换数据的互联网对象网络”。 简单地说,基本上任何通过无线连接到互联网的物理对象都可以被认为是物联网生态系统。
Amazon Dash Button
2015 愚人节前Dash Button正式上市,它可以让用户通过简单的一按就完成商品购买。每一个按钮上面都有厂商的商标,例如Huggies或是Tiede等,使用亚马逊的手机端应用,用户可以选择每次按下之后所购买商品的类别,以及每次购买商品的数量。
我理解的IOT
将物连接到网络,通过内置的传感器,将采集到的数据传送到云端,通过大计算帮助人更好的决策。
这其中设备联网只是万里长征的第一步,联网只是手段,目的是获取数据。数据获取之后通过网络传输到云端,并通过云端提供的大计算能力分析这些数据,基于数据分析能力得出的结论向设备下发指令,使得设备更加智能。基于感知的延伸和数据分析,帮助人更快更高效的做出决策。大计算和云数据是必备条件,这两项能力使得机器具备智能控制的能力,这个过程中获取和产生的数据又将反哺我们,帮助我们提前预判发现问题。
通过以上分析不难得出具备以下特性才可以称之为物联网,缺一不可:
- 基于传感器的感知能力
- 基于新型网络协议的联网能力
- 基于云数据和大计算的综合处理能力
为什么使用单片机而非单片系统
主要是基于成本考虑,物联网时代入网的设备量会非常大,有些是家庭设备具备交流电和WiFi环境,有些设备是在野外基于太阳能供电,不具备WiFi条件。综合从成本,能耗方面更加推荐大家从单片机入手学习,真正的工业级应用也不推荐大家去用Ruff和Espruino开发。
后面会给到大家Arduino下面做Led亮灯的代码,看过之后大家也会有自己的判断了。
|设备|价格(元)|WiFi|GPIO|编程语言|是否商用|社区支持|
|:------|:------|:------|:------|:------|:------|
|ESP 8266 单片机|40|有|有|C|是|强大|
|Ruff 套件|298|有|有|JS|否|刚开始|
|Espruino 套件|400|有|有|JS|否|国内少|
家用中心服务器搭建
百兆带宽入户现在基本都可以达到,家用的路由配合千兆交换机实现数据交换,SS直接路由器配置全局翻墙,路由器进行端口映射实现中心服务器入网,总体成本基本4K搞定。
网络拓扑图
基于6类有线网,配合无线路由实现混合组网,有网口的设备全部接入网件千兆交换机,终端可以访问中心服务器上NAS资源和各种音视频,图片文件,配合网盘可以实现资源共享,只有中心服务器对外提供服务,其它设备一律内网访问。
同时在路由上进行端口映射实现中心服务器透出到公网。
服务器搭建
服务器投资成本在3.5K左右,装Debian系统,实现开机自动定时上报IP到指定邮箱,防止断网重连IP切换的问题。
接下来就是各种开源的软件预装,我的预装清单:
- 下载 aira2、远程迅雷
- 网盘 ownCloud
- NAS samba
- 代码托管 gitlab
- MQTT服务 EMQ
- web服务站 LNAMP
- Java环境 JDK1.8 Tomcat
- Node 实时监控 keymetrics(上手简单,监控直观)
- 服务器监控 netdata(超详细的服务器信息监控)
- 多媒体电视盒 OSMC(Apple TV就是基于这个订制的)
Linux开源的好处就是你可以很容易找到各种你需要的软件,很方便的通过简单的配置就可以架设好你的服务。
经过以上准备,无论是你是用树莓派还是独立主机搭建,我们基本有了一套可以入网的实验环境,这套环境将在我们后续的实验中为我们提供所有的依赖。
下篇协议篇介绍物联网的相关传输协议,基于Debian搭建MQTT服务,尽请期待 : )
最后更新:2017-09-30 23:04:30