点灯科技实现 “ESP8266-01/01s + 继电器” 远程开关

2023-09-14 15:05:02

教程视频

ESP-01S继电器插座怎么使用?

所需硬件

继电器

ESP-01S继电器插座

WIFI模块

esp8266-01s wifi模块

烧录器

软件准备

Arduino IDE需安装好esp8266扩展

点击下载

下载并安装blinker APP

Android下载:
点击下载 或 在android应用商店搜索“blinker”下载安装

IOS下载:

点击下载 或 在app store中搜索“blinker”下载

安装blinker Arduino库

通过Arduino IDE 菜单>项目>加载库>添加.ZIP库 导入到库,如图:

导入esp8266扩展的.zip库

完整示例程序(从官网Copy过来的)


#define BLINKER_PRINT Serial
#define BLINKER_WIFI

#include <Blinker.h>

char auth[] = "Your Device Secret Key";
char ssid[] = "Your WiFi network SSID or name";
char pswd[] = "Your WiFi network WPA password or WEP key";

// 新建组件对象
BlinkerButton Button1("btn-abc");
BlinkerNumber Number1("num-abc");

int counter = 0;

// 按下按键即会执行该函数
void button1_callback(const String & state) {
    BLINKER_LOG("get button state: ", state);
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); // LED引脚的编号
}

// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);
    counter++;
    Number1.print(counter);
}

void setup() {
    // 初始化串口
    Serial.begin(115200);

    #if defined(BLINKER_PRINT)
        BLINKER_DEBUG.stream(BLINKER_PRINT);
    #endif
    
    // 初始化有LED的IO
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, HIGH); // LED引脚的编号
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    Button1.attach(button1_callback);
}

void loop() {
    Blinker.run();
}

需要更改的地方

更改digitalWrite输出的引脚

因为在上述完整实例代码中默认控制的引脚是LED_BUILTIN

ArduinoBlink程序中,使用LED_BUILTIN而不是具体的引脚编号(如13)是因为Arduino板上的LED灯是内置的,其接口电路已经经过设计。使用LED_BUILTIN函数,无论LED灯连接在哪个具体的引脚上,都能被正确地识别并控制。这就使得程序的可移植性更强,不受具体硬件设计的影响。

如果LED灯是连接在13号引脚上,你当然可以使用13来代替LED_BUILTIN。但在其他板型或者自定义硬件中,LED灯可能连接在其他引脚上,这时使用LED_BUILTIN就会更有优势。


而在ESP8266-01s模块中,0号引脚是GPIO(通用输入输出),我们只需要将LED_BUILTIN全部替换为0即可。

根据ESP8266-01s说明书我们可以看到ESP01s芯片通过GPIO0引脚控制的继电器工作,且是高电平有效。

使用Ctrl+H一键替换

更改点灯秘钥

将秘钥改为自己的秘钥

char auth[] = "Your Device Secret Key";

需要在点科技APP上面添加独立设备选择网络接入,生成出秘钥

更改WIFI名称与密码

char ssid[] = "Your WiFi network SSID or name";
char pswd[] = "Your WiFi network WPA password or WEP key";
  • ssid[] 对应着WIFI的名称
  • pswd[] 对应着WIFI的密码

远程开关控制

之后就可以在点灯APP上面,等设备上线之后,手动添加开关按钮,来进行远程控制

注意

需要注意的是,添加设备按钮的时候,名称需要和代码中一致

参考文章

使用Blinker控制esp01s Relay继电器模块

更多推荐

Android 应用上线注意事项

将Android应用上线到GooglePlay商店需要仔细注意一系列问题,以确保应用的质量、安全性和用户体验。以下是一些在Android应用上线过程中需要注意的关键问题,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。1.开发者账号:确保你拥有有效的GooglePlay开发者账号,可

【ASP.NET Core】应用脱机文件 (app_offline.htm)

文章目录概述锁定的部署文件来源jenkins进行CI失败是可能app_offline.htm不会被自动删除导致ASP.NETCore应用异常,发布成功后则需手动删除该文件概述在很多情况下,需要在对相关组件(如数据库或Web服务)进行更改时使Web应用程序脱机。通常,在IIS和ASP.NET中,可以通过将名为App_of

【深度学习实验】前馈神经网络(四):自定义逻辑回归模型:前向传播、反向传播算法

目录一、实验介绍二、实验环境1.配置虚拟环境2.库版本介绍三、实验内容0.导入必要的工具包1.逻辑回归Logistic类a.构造函数__init__b.__call__(self,x)方法c.前向传播forwardd.反向传播backward2.模型训练3.代码整合一、实验介绍实现逻辑回归模型(Logistic类)实现

动态规划:子序列问题(C++)

动态规划:子序列问题前言子序列问题1.最长递增子序列(中等)2.摆动序列(中等)3.最长递增子序列的个数(中等)4.最长数对链(中等)5.最长定差子序列(中等)6.最长的斐波那契子序列的长度(中等)7.最长等差序列(中等)8.等差数列划分II-子序列(困难)前言动态规划往期文章:动态规划入门:斐波那契数列模型以及多状态

8种结构型设计模式对比

一、适配器模式简介适配器模式是一种结构型设计模式,它用于将不兼容的接口转换为可兼容的接口。适配器模式允许两个不兼容的类能够协同工作,通过将一个类的接口转换为另一个类所期望的接口形式。这样就能够在不修改现有代码的情况下,使两个不兼容的类能够相互协作。使用场景适配器模式通常在以下场景中使用:当需要将现有类的接口转换为其他接

Llama2-Chinese项目:2.1-Atom-7B预训练

虽然Llama2的预训练数据相对于第一代LLaMA扩大了一倍,但是中文预训练数据的比例依然非常少,仅占0.13%,这也导致了原始Llama2的中文能力较弱。为了能够提升模型的中文能力,可以采用微调和预训练两种路径,其中:微调需要的算力资源少,能够快速实现一个中文Llama的雏形。但缺点也显而易见,只能激发基座模型已有的

el-table表格动态设置最大高度 高度根据窗口可视高度大小改变自适应

由于表格内容过多,如果不给高度限制,每页100条数据的情况下,去操作底部的分页或者其他功能都需要划到数据最底部操作,用户体验性较差。解决方法是让表格一屏展示,超出部分滚动展示。1.效果及思路图:思路是:屏幕可视区域-最大盒子的上下内边距-搜索部分-按钮部分-分页部分因为表格是项目公用表格每个项目需求不同根据实际需求去减

推荐一些常用的api接口,包括天气、物流、IP查询等

天气预报查询:支持输入经纬度或者区域编码查询全国以及全球多个城市的天气,包含15天天气预报查询。天气预警:支持输入经纬度或者区域编码,获取指定城市当前生效中的各类天气预警,如寒潮蓝色预警信号,或一次性拉取全国所有生效中的天气预警。空气质量查询:支持输入经纬度或者区域编码查询国内3400+个城市的整点观测,获取指定城市的

C++&QT day7

仿照vector手动实现自己的myVector,最主要实现二倍扩容功能#include<iostream>usingnamespacestd;template<typenameT>classmy_vector{intsize;//可存储的容量大小intnum;//当前存储的元素个数T*data;//存储数据的空间地址p

第74步 时间序列建模实战:多步滚动预测 vol-2(以决策树回归为例)

基于WIN10的64位系统演示一、写在前面上一期,我们讲了多步滚动预测的第一种策略:对于重复的预测值,取平均处理。例如,(1,2,3)预测出3.9和4.5,(2,3,4)预测出5.2和6.3,那么拼起来的结果就是3.9,(4.5+5.2)/2,6.3。这一期,我们来介绍第二种策略:删除一半的输入数据集。例如,4,5由(

【网络八股】TCP八股

网络八股请简述TCP/IP模型中每层的作用,典型协议和典型设备介绍一下三次握手的过程介绍一下四次挥手的过程必须三次握手吗,两次不行吗?为什么ACK数据包消耗TCP的序号吗三次握手中可以携带应用层数据吗四次挥手时,可以携带应用层数据吗?主动断开连接方,为什么要等待2MSL时间?如果服务端不进行accept,那么最多可以完

热文推荐