Wi-Fi smart switch

下面您如何以几块钱即可制作一个 Wi-Fi 智能交换机。

在本指南中,您将学习如何使用Itead 的 SONOFF 设备以 5 美元的价格控制任何 110-240V 设备。与 30 美元的 Wi-Fi 智能插头相比,SONOFF 是更大规模地生产智能家居甚至工业物联网项目的绝佳替代方案。此外,它基于流行的ESP8266 Wi-Fi芯片,使其兼容Arduino环境和其他资源,如我们的ESP库在Ubidots

您可能还喜欢:
使用物联网的家庭自动化

SONOFF配备了自己的固件和移动应用程序,但我们认为,它的主要价值实际上在于它的外形和低廉的价格。这就是为什么我们决定做一些黑客,并释放其全部的力量!

SONOFF

概述

小心!连接到 110/240V 交流线路时,请勿操作 SONOFF

SONOFF 包含继电器、ESP8266 Wi-Fi 芯片以及使用电源插座的交流线路为其供电所需的电路。它还有一个不错的包,使它看起来比在家里一个普通的DIY项目更专业。

要求

设置

1. 拆卸 SONOFF 设备,这是为了访问 SONOFF TTL 引脚,我们需要对板载 ESP8266 进行编程。您将需要焊接四个引脚;如下图所示。

2. 将 UARTbee 引脚连接到 SONOFF 引脚,遵循此引脚:

UARTbe pins

乌尔特比 苏诺夫
Vcc Vcc
Tx Rx
Rx Tx

3. 转到 Arduino IDE,单击文件 -> 首选项并输入此 URL 以访问 Arduino 的 ESP8266 库:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

您需要在”其他板管理器 URL”字段中输入该 URL。此字段支持多个 URL,在已键入其他 URL 的情况下,使用逗号分隔它们。

4. 从工具打开主板管理器 – > 板菜单并安装 ESP8266 平台。安装后,从”工具”> 主板菜单中选择 ESP8266 板。

5. 下载 UbidotsESPMQTT 库6. 现在,单击草图 – > 包括库 – > 添加 。邮编库。

7. 选择 。UbidotsESPMQTT 的 ZIP 文件,然后单击”接受”或”选择”。

8. 关闭 Arduino IDE 并再次打开它。

创建乌比点变量

1. 登录您的Ubidots帐户。

2. 转到并单击橙色加符号

3. 设置数据源的名称并检查标签:

4. 为继电器创建一个新变量并检查标签

创建按钮小工具

现在,要控制 SONOFF 设备,您需要在 Ubidots 帐户中创建一个按钮小部件。此小部件会将 RELAY 变量设置为”1″或”0″:

1. 转到仪表板,然后单击橙色加图标

2. 单击控制 -> 切换并选择要之前创建的数据源和变量进行控制。

编码您的 SONOFF

下面是打开/关闭 SONOFF 设备的代码。要使用此代码,不要忘记使用 Ubidots 的帐户令牌更改 TOKEN。使用网络凭据更改 WIFISSID 和密码。

要将代码上载到 SONOFF,您需要:

1. 将 UARTbee 连接到电脑的 USB。

2. 按下 SONOFF 按钮并同时断开 USB 连接。

3. 当仍然按下按钮时,请再次连接到 USB。

这些步骤旨在将 SONOFF 引入编程模式。

准备就绪后,从 Arduino IDE 上传代码:

/****************************************
 * Include Libraries
 ****************************************/
#include "UbidotsESPMQTT.h"

/****************************************
 * Define Constants
 ****************************************/
#define TOKEN "..." // Your Ubidots TOKEN
#define WIFINAME "..." //Your SSID
#define WIFIPASS "..." // Your Wifi Pass
#define MQTTCLIENTNAME "..." // Your MQTT Client Name, it must be unique so we recommend to choose a random ASCCI name

#define RELAY 12
#define LED 13

Ubidots client(TOKEN, MQTTCLIENTNAME);

/****************************************
 * Auxiliar Functions
 ****************************************/

void callback(char* topic, byte* payload, unsigned int length) {
  Serial.print("Message arrived [");
  Serial.print(topic);
  Serial.print("] ");
  for (int i=0;i<length;i++) {
    Serial.print((char)payload[i]);
  }
  Serial.println();

  if ((char)payload[0] == '1') {
      digitalWrite(RELAY, HIGH); //On relay
      digitalWrite(LED, LOW); //On led
  }
  if ((char)payload[0] == '0') {
      digitalWrite(RELAY, LOW); //Off relay
      digitalWrite(LED, HIGH); //Off led
  }
}

/****************************************
 * Main Functions
 ****************************************/

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  client.wifiConnection(WIFINAME, WIFIPASS);
  pinMode(RELAY, OUTPUT);
  pinMode(LED, OUTPUT);
  digitalWrite(LED, HIGH);
  client.begin(callback);
  client.ubidotsSubscribe("relay","sonoff"); //Insert the dataSource and Variable's Labels
  }

void loop() {
  // put your main code here, to run repeatedly:
  if(!client.connected()){
      client.reconnect();
      Serial.println(RELAY);
      client.ubidotsSubscribe("relay","sonoff"); //Insert the dataSource and Variable's Labels
      }
  client.loop();
  }

插入智能开关并开始控制操作

现在,是时候通过添加 SONOFF 来使事情变得”智能”了;控制你的灯,打开或关闭你的车库等。

享受!

进一步阅读

Comments are closed.