标题: ESP-01S遥控开关 [打印本页]

作者: lwq1947    时间: 2024-1-14 17:03
标题: ESP-01S遥控开关
    ESP-01S体积小价格便宜,用两个ESP-01S就可以制作一个遥控开关。遥控器装在一个直经2.5厘米长12厘米的塑料线管中。平时还可作为小手电筒使用。开关采用成品模块,遥控器电路图与外观图如下。如有需求再将收发程序奉上。

51hei.png (5.08 KB, 下载次数: 88)

51hei.png

51hei2.jpg (205.33 KB, 下载次数: 81)

51hei2.jpg

51hei1.jpg (204.82 KB, 下载次数: 89)

51hei1.jpg

作者: jhczy    时间: 2024-1-15 09:54
热烈欢迎楼主全盘奉献
作者: sunhai1979    时间: 2024-1-15 23:31
好东西。价格便宜又实用
作者: lwq1947    时间: 2024-1-16 07:09
jhczy 发表于 2024-1-15 09:54
热烈欢迎楼主全盘奉献

//发送程序

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

uint8_t broadcastAddress[] = {0x84, 0xCC, 0xA8, 0xA0, 0x2D, 0xCF};//接收ESP-01S的MAC值,可先用MAC程序获取。
typedef struct struct_message {
  char a[32];
  int b;
} 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);
  WiFi.mode(WIFI_STA);

  if (esp_now_init() != 0) {
    Serial.println("Error initializing ESP-NOW");
    return;
  }
pinMode(1,INPUT);
pinMode(3,INPUT);
  
  esp_now_set_self_role(ESP_NOW_ROLE_CONTROLLER);

  esp_now_register_send_cb(OnDataSent);
  
  esp_now_add_peer(broadcastAddress, ESP_NOW_ROLE_SLAVE, 1, NULL, 0);
}

void loop() {
  
if(digitalRead(1)==HIGH) myData.b = 1;
if(digitalRead(3)==HIGH) myData.b = 2;

  esp_now_send(broadcastAddress, (uint8_t *) &myData, sizeof(myData));

  delay(2000);
}


//MAC
#include <ESP8266WiFi.h>
void setup(){
Serial.begin(115200);
Serial.println();
Serial.print("ESP8266 Board MAC Address: ");
Serial.println(WiFi.macAddress());
}

void loop()
{

}


//接收程序
#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, LOW);
pinMode(2,OUTPUT);
digitalWrite(2, LOW);

esp_now_set_self_role(ESP_NOW_ROLE_SLAVE);
esp_now_register_recv_cb(OnDataRecv);
}

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

作者: lwq1947    时间: 2024-1-17 07:04
为何贴子里看不本人的回复?
作者: ly_zhy    时间: 2025-6-20 14:10
新玩法,学习了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1