hhuysqt / SmartHomes

A tiny demo of smart-home functions.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

某大创项目设计简要

目的:远程亮灯、远程监视

设计:网页操作,通过服务器传到模块


上层:服务器、网页

动态网页:按钮s:

  开灯关灯,查看图片

  8个灯;图片隔一段时间自己更新

  外观不要太low

服务器:

  开两个端口:分别给http和tcp,二者隔离

  类似中转站

下层:硬件从略


通讯格式:

·以“数据包”为单位

·一帧数据包 = “包头” + “包身”

·包头8个字节

1     终端号(连同一个服务器端口,有多个终端,分别有一个ID号,最多255个终端)

2     包类型

3~4   包长度(包括包头)

5~8   xx代号,如控制代号、数据包序号,等等

·包身是具体的数据

·不做包尾


·包类型:

控制(-2),仅服务器到终端

数据(-3),仅终端到服务器

回应(-4),仅终端到服务器

请求(-5),仅终端到服务器

·包长度:

包括包头这8个字节

是short int类型(不是字符串)

小端模式

·控制类包:

控制开关灯:灯号(0~255)、开(1)还是关(0)

·简例:

  服务器发给1号终端,控制这个终端的1号灯开:

   0x01  0xfc  0x0c  0x00  0x01  0x00  0x00  0x00  0x01  0x00  0x00  0x00

  |---------------------包头---------------------|----------包身---------|

  |-1号-|-类型-|---长度---|---控制代号(开灯)---|----------灯号---------|

·数据类包:

主要是终端传上去的图片信号,暂时传jpeg格式数据流

由于硬件限制,每个包最大2048字节。。。

·简例:

从1号终端发上去的jpeg流,分n多个包发:前n-1个包“类型”都填0xfe

·第一个包:

   0x01  0xfb  0x00  0x08  0x01  0x00  0x00  0x00  0xff  0xd8    ...

  |---------------------包头----------------------|-----包身---- ...

  |-1号-|-类型-|长度(2048)|---数据包号(第1个)---|----JPEG流--- ...

·第n个包

   0x01  0xfb  0x0a  0x00  0x??  0x??  0x??  0x??  0xff  0xd8    ...

  |---------------------包头----------------------|---包身---|

  |-1号-|-类型-|-长度(10)-|---数据包号(第n个)---|--JPEG流--|

About

A tiny demo of smart-home functions.


Languages

Language:C 78.1%Language:Python 19.2%Language:Assembly 1.4%Language:Objective-C 1.0%Language:Makefile 0.3%