找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 821|回复: 11
打印 上一主题 下一主题
收起左侧

8266遥控电源插座

  [复制链接]
跳转到指定楼层
楼主
ID:997011 发表于 2024-8-11 14:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      8266遥控电源插座的遥控器主芯片采用ESP8266 ESP-12E WIFI模块,电池选用小型3.7V锂电池.电路还装有锂电池TP4056充电模块.遥控器的待机电流非常小仅有2uA.整机装在两节5号的电池盒中,非常小巧.
     电源插座选用成品三开关三位15孔  电源插座改制.加装了一个5V1A的充电头内芯作为插座控制电源.ESP-01S带动三个BTB12双向可控硅来控制三组插座.三个BTB12双向可控硅分别并接在三个开关上.
     大家若有需求,回贴后便将控制程序和电路图一起奉上.

b8ee5277cc5a35f28d77dda18bd5c45c.jpg (209.91 KB, 下载次数: 8)

外观图

外观图

a76999a795c9f189e54af9390c17253f.jpg (259.87 KB, 下载次数: 9)

内部图

内部图

e40dd3cb57779a1cc4d88bba53d15e70.jpg (279.22 KB, 下载次数: 15)

内部图

内部图

评分

参与人数 2黑币 +55 收起 理由
admin + 50 共享资料的黑币奖励!
WFX777888 + 5 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:277550 发表于 2024-8-12 09:47 | 只看该作者
8266实时控制用不了这么小的电池。
回复

使用道具 举报

板凳
ID:997011 发表于 2024-8-12 18:13 | 只看该作者
devcang 发表于 2024-8-12 09:47
8266实时控制用不了这么小的电池。

   遥控器我用的是240MAH的,8266仅当按下按钮时才瞬间通电一下时间不超过一秒。待机2uA电流是锂电池对充电模块产生的。8266平时的电流为零。谢谢你的指导。
回复

使用道具 举报

地板
ID:137005 发表于 2024-8-12 21:19 | 只看该作者
谢谢分享!期待控制程序和电路图。
回复

使用道具 举报

5#
ID:997011 发表于 2024-8-13 07:28 | 只看该作者
molo 发表于 2024-8-12 21:19
谢谢分享!期待控制程序和电路图。

发射程序


#include <ESP8266WiFi.h>
#include <espnow.h>

//接收方MAC地址 根据自己的板子修改
uint8_t broadcastAddress[] = {0x34, 0xAB, 0x95, 0x24, 0xA1, 0x76};

//发送数据的结构体
typedef struct struct_message {
  char a[32];
  int b;
  float c;
  String d;
  bool e;
} struct_message;

//创建一个新的类型变量
struct_message myData;

//这是一个回调函数,将在发送消息时执行。
//在这种情况下,无论是否成功发送该消息,都会简单地打印出来
void OnDataSent(uint8_t *mac_addr, uint8_t sendStatus) {
  Serial.print("Last Packet Send Status: ");
  if (sendStatus == 0){
    Serial.println("Delivery success");
  }
  else{
    Serial.println("Delivery fail");
  }
}

void setup() {
  //初始化串行监视器以进行调试
  Serial.begin(115200);

  //将设备设置为Wi-Fi站点
  WiFi.mode(WIFI_STA);

  //立即初始化ESP
  if (esp_now_init() != 0) {
    Serial.println("Error initializing ESP-NOW");
    return;
  }
pinMode(14,INPUT);
pinMode(12,INPUT);
pinMode(13,INPUT);
pinMode(16,INPUT);
pinMode(5,INPUT);
pinMode(4,INPUT);
  //设置ESP8266角色  ESP_NOW_ROLE_CONTROLLER, ESP_NOW_ROLE_SLAVE,
  //ESP_NOW_ROLE_COMBO, ESP_NOW_ROLE_MAX。
  esp_now_set_self_role(ESP_NOW_ROLE_CONTROLLER);
  //先前创建的功能。
  esp_now_register_send_cb(OnDataSent);
  
  //与另一个ESP-NOW设备配对以发送数据
  esp_now_add_peer(broadcastAddress, ESP_NOW_ROLE_SLAVE, 1, NULL, 0);
}

void loop() {
  //配置要发送的值
if(digitalRead(4)==HIGH) myData.b = 1;
if(digitalRead(5)==HIGH) myData.b = 2;

if(digitalRead(12)==HIGH) myData.b = 3;
if(digitalRead(13)==HIGH) myData.b = 4;

if(digitalRead(14)==HIGH) myData.b = 5;
if(digitalRead(16)==HIGH) myData.b = 6;
  //发送消息
  esp_now_send(broadcastAddress, (uint8_t *) &myData, sizeof(myData));
  //延时两秒
  delay(2000);
}

接收程序

#include <ESP8266WiFi.h>
#include <espnow.h>
int k;

typedef struct struct_message {
char a[32];
int b;
} struct_message;

struct_message myData;

void OnDataRecv(uint8_t * mac, uint8_t *incomingData, uint8_t len) {
memcpy(&myData, incomingData, sizeof(myData));

Serial.print("Int: ");

Serial.println(myData.b);
k=myData.b;
Serial.println();
}

void setup() {

Serial.begin(115200);
WiFi.mode(WIFI_STA);
if (esp_now_init() != 0) {
Serial.println("Error initializing ESP-NOW");
return;
}
pinMode(0,OUTPUT);
digitalWrite(0, HIGH);
pinMode(2,OUTPUT);
digitalWrite(2, HIGH);
pinMode(3,OUTPUT);
digitalWrite(3, HIGH);
esp_now_set_self_role(ESP_NOW_ROLE_SLAVE);
esp_now_register_recv_cb(OnDataRecv);
}

void loop(){
if(k==1) digitalWrite(3, LOW);
if(k==2) digitalWrite(3, HIGH);

if(k==3) digitalWrite(2, LOW);
if(k==4) digitalWrite(2, HIGH);

if(k==5) digitalWrite(0, LOW);
if(k==6) digitalWrite(0, HIGH);

}



无标题.png5.png (29.51 KB, 下载次数: 13)

遥控器

遥控器

无标题.png4.png (32.21 KB, 下载次数: 16)

插座

插座
回复

使用道具 举报

6#
ID:65237 发表于 2024-8-13 09:33 | 只看该作者
谢谢楼主分享,发一下原理图和原程序学习学习
回复

使用道具 举报

7#
ID:997011 发表于 2024-8-13 13:31 | 只看该作者
molo 发表于 2024-8-12 21:19
谢谢分享!期待控制程序和电路图。

    重要更正!!!
    插座电路中双向可控硅画反了,其阳极T1和T2应对掉过来!!!


      双向可控硅触发回路串接的发光二极管的主要作用是抬高G极电位使得ESP-01S输出高电平3.3V时确保双向可控硅关闭。
      遥控器电路补充说明的是二极管作用是降压和隔离使各按钮互不影响,同时在按钮按下时才给ESP-12E降压通电,确保其最高工作电压不超过3.6V。
回复

使用道具 举报

8#
ID:137005 发表于 2024-8-14 08:28 | 只看该作者
lwq1947 发表于 2024-8-13 13:31
重要更正!!!
    插座电路中双向可控硅画反了,其阳极T1和T2应对掉过来!!!

谢谢!
回复

使用道具 举报

9#
ID:137005 发表于 2024-8-14 08:36 | 只看该作者
lwq1947 发表于 2024-8-13 13:31
重要更正!!!
    插座电路中双向可控硅画反了,其阳极T1和T2应对掉过来!!!

有个问题,WIFI连网需要时间且要配置好参数,不像433那种射频模块,按下放开就可以发出信号。发射器的电路是不是漏了什么?
回复

使用道具 举报

10#
ID:1129414 发表于 2024-8-14 09:12 | 只看该作者
控制程序和电路图也有了,感谢楼主分享
回复

使用道具 举报

11#
ID:88256 发表于 2024-8-14 09:44 | 只看该作者
molo 发表于 2024-8-14 08:36
有个问题,WIFI连网需要时间且要配置好参数,不像433那种射频模块,按下放开就可以发出信号。发射器的电 ...

WIFI联网和时间没有关系的,很多例子联网获取时间是因为做时钟用的,楼主这个只是用于遥控,不需要获取时间。
这个程序不是连上家里的WiFi进行遥控,而是利用NOW技术,两片ESP模块进行直连,不需要家里的网络,所以配置的时候需要得知对方的MAC地址,而不是SSID和密码。
回复

使用道具 举报

12#
ID:997011 发表于 2024-8-14 12:33 | 只看该作者
本帖最后由 lwq1947 于 2024-8-14 17:37 编辑
molo 发表于 2024-8-14 08:36
有个问题,WIFI连网需要时间且要配置好参数,不像433那种射频模块,按下放开就可以发出信号。发射器的电 ...
      发射器的电路除了漏标端口为EN外不缺其它器件,楼上已回答了你的疑问我就不多说了.但若你没有获取开发板MAC的程序,下面是我改的获取MAC的程序:
#include <ESP8266WiFi.h>
void setup(){
Serial.begin(115200);
}

void loop()
{Serial.print("ESP8266 Board MAC Address: ");
Serial.println(WiFi.macAddress());
delay(10000);
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表