在本指南中,您将学习如何使用Itead 的 SONOFF 设备以 5 美元的价格控制任何 110-240V 设备。与 30 美元的 Wi-Fi 智能插头相比,SONOFF 是更大规模地生产智能家居甚至工业物联网项目的绝佳替代方案。此外,它基于流行的ESP8266 Wi-Fi芯片,使其兼容Arduino环境和其他资源,如我们的ESP库在Ubidots。
您可能还喜欢:
使用物联网的家庭自动化
SONOFF配备了自己的固件和移动应用程序,但我们认为,它的主要价值实际上在于它的外形和低廉的价格。这就是为什么我们决定做一些黑客,并释放其全部的力量!
概述
小心!连接到 110/240V 交流线路时,请勿操作 SONOFF
SONOFF 包含继电器、ESP8266 Wi-Fi 芯片以及使用电源插座的交流线路为其供电所需的电路。它还有一个不错的包,使它看起来比在家里一个普通的DIY项目更专业。
要求
设置
1. 拆卸 SONOFF 设备,这是为了访问 SONOFF TTL 引脚,我们需要对板载 ESP8266 进行编程。您将需要焊接四个引脚;如下图所示。
2. 将 UARTbee 引脚连接到 SONOFF 引脚,遵循此引脚:
乌尔特比 | 苏诺夫 |
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 板。
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 来使事情变得”智能”了;控制你的灯,打开或关闭你的车库等。
享受!
进一步阅读
com/文章/esp8266-电报-机器人-家庭自动化”rel=”nofollow”_ESP8266和电报机器人:家庭自动化