物联网的无线家庭云

我花了很多时间重复别人在智能无线方面的项目。这使我得出一个明显的结论:在第三个或第四个项目之后,您会发现它们都是按照不同的原理,使用不同的技术和方法来执行的,尤其是在您更改或升级了其中一些之后。这意味着您的物联网将变得完全免维护。

换句话说,您必须支持庞大的规范和代码库。并且需要更多时间来应对他们的所有设备。当然,有些人比我更有条理,但很可能,大多数反对熵的斗争收效甚微。没有冒犯。

如何遏制家里机器人的入侵(这在任何情况下都是不可避免的)?..很简单。事情变得容易。云更智能。

概念图

  1. 设备尽可能简单:与私有云进行通信的标准模块。它由无线模块和初始化脚本(在模块中和在服务器上)组成。如果该模块发生故障,请将其丢弃,并用新的标准模块替换它。
  2. 所有逻辑和智能均位于服务器上。一个简单的Linux路由器。


事情变得容易。更智能的云

微型服务器从传感器接收数据,进行存储,然后将命令发送到执行设备。现在,您的设备不再是一堆思索的事情了。它们只是服务器大脑的突触。简单自然。

我的网络上有两种类型的设备:

  • 传感器和控件(输入)和
  • 继电器,阀门等 (周末)

它们都通过wifi模块(来自中国知名商店的ESP8266)与服务器通信。输入将状态信息发送到数据库服务器。输出从服务器接收并执行命令。正如我已经提到的,设备没有理由。

目的是使事情尽可能简单。

所有逻辑都保留在服务器上。在服务器上,所有算法,触发器等。例如,如果某些房间的温度在一定时间内下降到低于特定水平,则服务器决定打开供暖功能。如果土壤水分在一天中的特定时间下降到特定水平,则服务器决定打开温室中的灌溉电磁阀。自然,一个人总是可以干预并掌握自己的控制权或改变逻辑。服务器还通过SMS通知关键事件的所有者。它可以接受来自某些电话的命令。

智能云核心


图片

图片

我使用了带有OpenWRT和扩展内存的小型无线路由器,其中可以包含Web服务器和数据库服务器-Gl-iNet 6416A不超过25美元。

令人惊讶的是,微小的设备为我们提供了:

  1. 用于托管界面页面的Lighttpd Web服务器(预安装)
  2. php,因此它们是交互式的(预装)
  3. 用于存储数据的MySQL数据库服务器(已安装)。有人使用SQlite,但他无法处理同时向Firebox发出的请求。

这是我的私有云。它创建了自己的子网网络(192.168.8.1),它是自己的wifi网络,只有我的东西可以访问。它还具有一个连接到我的常规家用路由器(具有分配的地址192.168.1.100)的外部接口(WAN)。需要从我的家庭wifi网络访问控制面板。

项目中使用的应用软件:

  • WinSCP-用于文件访问的图形FTP客户端
  • HeidiSQL-用于数据库访问的图形SQL客户端
  • PuTTy-用于将命令发送到OpenWRT操作系统的SSH客户端

当前配置存储在GitHub上

是的,是的,我不应该将USB闪存驱动器用作文件存储设备,尽管我不应该将NAND存储器用作成人设备(mySQL要求)。

标准模块


图片

wifi模块(ESP8266)用标准草图调味。简而言之,他读取最后一次访问访问点的参数,尝试连接到该访问点,如果失败,则启动访问点和带有新访问参数形式的页面。如果他设法连接,则可以从服务器下载该模块的脚本并运行它们。模块因MAC地址而异。

在我的云中,每个MAC地址都有一个专用文件夹,该文件夹中的工作脚本位于192.168.8.1:86地址,

因此,最初,该模块只有三个脚本:

AP_config-两行:SSID和密码。

init.lua-使用AP_config中保存的参数连接到接入点。如果不成功,请运行do(“ ap_request.lua”)。如果成功,请下载工作脚本并运行它们。

ap_request.lua-请求新参数以访问访问点,将其写入AP_config文件(以防与预安装的连接失败)。

模块脚本

受管设备


图片

图片

图片

目的是使外围设备尽可能简单。例如,带有两个继电器(照明开关)的模块包括:

  • AC-DC电源
  • 3.3V电源稳定器
  • ESP8266(在这种情况下,ESP-01具有两个受控引脚)
  • 继电器模块
  • 身体

关于一切的一切-7 USD。

传感器(输入)


图片

图片

带有传感器的设备包括:

  • 电源供应
  • 功率调节器
  • Wifi模块(再次为ESP01)
  • DHT11数字温湿度传感器

全部不超过5美元。

它会测量温度和湿度读数,并每3分钟将其发送到服务器,并将其存储在mySQL数据库中。

管理学


图片

图片

图片

图片

图片



服务器上的所有乐趣!


最有趣的是,我没有常规的控制面板。所有接口都是虚拟的。按钮,开关,引擎是虚拟的。当然,您可以使它们真实,而我会做一些。

使用此站点,我们可以观察传感器的历史记录和电流值,还可以控制灯,阀门等。
您始终可以使用简单的HTML和Javascript编码技能将新设备添加到面板。

我使用链接图和在简单程序SweetHome 3D中构建的图像来组织家庭导航。

打开你的想象力


比起控制器(C ++,Lua),还有更多的人知道如何为Web(PHP,Javascript,HTML)编码。使用这种结构,我们可以使用简单的php或js脚本接收,请求,发送数据和命令。我们可以建立一个学习系统,以适应我们的习惯,告知我们有关事件的信息。

Source: https://habr.com/ru/post/zh-CN396755/


All Articles