智能创客,中国最大的极客空间,智能平台,免费教学,视频教程,手把手教你创造儿时梦想!

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3406|回复: 2
打印 上一主题 下一主题

《TCP转发》有感.md

[复制链接]

1

主题

32

帖子

155

积分

注册会员

Rank: 2

积分
155
跳转到指定楼层
楼主
发表于 2016-5-31 22:36:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
###TCP转发有感
##组成
*服务器
*手机、电脑;(网页访问)
*网关
*终端(接在网关下)
##基本原理
服务器可以建立在网络云、VPS上,或者本地,现针对自己想要在本地的路由器(openwrt)建立自己的服务器(消费最低)进行总结,云上与此类似。

###服务器
        本地的刷有openwrt的智能路由器建立TCP server,运行PHP(我们访问对应网址看到的页面和后台运行的服务)以及SQL(将网关上传的传感器信息以及手机电脑端执行的操作记录到对应的数据库各个关系(表)中)。
其中PHP服务一直等待网关的绑定操作,当用户在服务器首页注册之后会得到一个唯一的apikey,用于网关的绑定,说白了就是这个apikey对应确定的网关。就像是每个人的身份证对应一个人一样。这样我们在手机端、电脑端网页上的操作:开灯、关灯等等对应的指令才能发送到我们家中的网关上。同时,网关上传的数据也通过唯一的apikey被服务器识别并存储在数据库当中,供用户访问查看。在路由器上运行服务器之后,可以设置连接到上一级路由上的ip为固定ip地址,设置端口映射外部访问到默认的服务器php首页,之后将上一级的路由器设置端口转发至openwrt路由器。这样的话只要知道我们家中的路由器的ip地址就能连接到我们自己建立的服务器了。但是我们家中的路由器一般都是动态ip,每个一段时间就会变化,我们不知道每时每刻的路由器的公网ip地址。解决方法是外网映射,现在了解到的是可以利用花生壳服务。它的本质是一个动态DNS系统,我们在他的网站上申请一个免费域名(收费的可以自己定义域名),运行花生壳软件,路由器里边设置动态花生壳的动态dns服务,这样的话无论我们在哪里,只要能够了连接互联网就可以访问到我们的服务器了。哈哈。

###网关
        如果利用本地的刷有openwrt的路由器作为服务器的话,网关可以有两种选择,一种是仍然利用服务器作为网关,通过Python编程实现TCP client,访问服务器,另一种是利用能够连上互联网的芯片、模块例如esp8266、enc28j60等单独或者与单片机配合作为网关,来建立TCP client实现与服务器的通信。首先发送含有用户注册后得到的apikey的绑定信息,建立用户和网关的对应关系。接着发送心跳包,保持与服务器的联系(如果是长连接的话则不用发送)。然后将需要不断上传 的传感器数据上传到服务器,服务器存储到数据库供用户访问。同时,网关也接收来自服务器的控制命令(用户在网页端执行的操作),网关接收到命令之后解析后发到不同的终端模块上完成特定的操作。

###终端
        每个终端有不同的nid和sid,来区分不同的模块,例如开关、插座等。终端模块也有两项任务,一是接收来自网关的命令并且执行,如开灯、关灯。二是将挂载的传感器检测到的数据发送到网关上进行处理(上传到服务器)。

##我的方案
       利用刷有openwrt的路由器同时作为服务器和网关,运行花生壳服务实现外网的访问。同时作为网关的路由器通过串口和zigbee协调器想连接,其实相当于路由器和协调器一起作为网关。不同的zigbee终端挂载不同的设备:执行设备或者传感器,无线和协调器通信。这样就实现了远程控制。
            具体流程:手机、电脑端网页 ->花生壳域名->家中路由器 ->openwrt服务器 ->网关 -> zigbee协调器 ->zigbee终端 ->执行单元
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

1

主题

14

帖子

47

积分

新手上路

Rank: 1

积分
47
沙发
发表于 2016-7-5 15:30:02 来自手机 | 只看该作者
make  下班在来
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|手机版|智能创客 ( 桂ICP备14000828号

GMT+8, 2024-11-27 11:35 , Processed in 0.141665 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表