我的HDMI购买地址买了一个5路带红外遥控的
摘掉原有的5个led灯,晚上太亮瞎眼(主要是分压不亮了,我又不会处理

EDA打开,新建工程HDMI.json (120.6 KB)


问题1 :红外发射头用的tx脚,这个烧录的时候就会出现问题了,可以做一个跳帽,用的时候帽上,刷机的时候摘下来;
问题2 :空间有点小最后盖上中间会翘起来,光耦应该放在底层。
问题3:这个红外外接的时候要注意线别焊错地方了,要不然没电压

还有这个红外接收头可以更美观的处理下
还有很多小问题 啥电阻电容啊都不会加

本来用的esphome结果红外有问题解决不了,又学了学arduino
红外码请用这个获取IRrecvDumpV2.zip (3.1 KB) 打开串口调试,按下遥控按钮就会看到红外 记下,等会写在arduino里
#include <Arduino.h>
#include <IRremoteESP8266.h>
#include <IRsend.h>
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
const char* ssid = "@PHICOMM_CD"; //WiFi账号
const char* password = "12345678"; //WiFi密码
const char* mqtt_server = "192.168.123.233"; //mqtt地址
const char* mqtt_user = "mqtt"; //mqtt账号
const char* mqtt_password = "mqtt"; //mqtt密码
const char* TOPIC = "hdmi/cmnd";
const char* TOPIC_state = "hdmi/state";
const char* client_id = "clientId-DF1tgy9Dh"; //标识当前设备的客户端编号
WiFiClient espClient;
PubSubClient client(espClient);
long lastMsg = 0;
int mac_pin = 4; // 苹果电脑io
int sys_pin = 5; // 群晖io
int tv_pin = 12; //电视盒子io
int atv_pin = 13; // 苹果盒子io
int n1_pin = 14; // N1_haio
const uint16_t kIrLed = 3; //红外发射io
IRsend irsend(kIrLed);
void setup() {
pinMode(mac_pin, INPUT);
pinMode(sys_pin, INPUT);
pinMode(tv_pin, INPUT);
pinMode(atv_pin, INPUT);
pinMode(n1_pin, INPUT);
setup_wifi();
WiFi.mode(WIFI_STA);
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
irsend.begin();
}
void setup_wifi() {
delay(10);
WiFi.begin(ssid, password);
}
void reconnect() {
while (!client.connected()) {
if (client.connect(client_id, mqtt_user, mqtt_password)) {
client.subscribe(TOPIC);
} else {
delay(5000);
}
}
}
void callback(char* topic, byte* payload, unsigned int length) { //读取mqtt消息做出判断
payload[length] = '\0';
if (String((char*)payload) == "1") {
irsend.sendNEC(0x1FEA05F); //这里是你学到的红外码
client.publish(TOPIC_state, "N1服务器");
} else if (String((char*)payload) == "2"){
irsend.sendNEC(0x1FEE01F); //这里是你学到的红外码
client.publish(TOPIC_state, "电视盒子");
} else if (String((char*)payload) == "3"){
irsend.sendNEC(0x1FE10EF); //这里是你学到的红外码
client.publish(TOPIC_state, "Apple TV");
} else if (String((char*)payload) == "4"){
irsend.sendNEC(0x1FE906F); //这里是你学到的红外码
client.publish(TOPIC_state, "群晖");
} else if (String((char*)payload) == "5"){
irsend.sendNEC(0x1FED827); //这里是你学到的红外码
client.publish(TOPIC_state, "MAC BOOK");
}
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
long now = millis();
if (now - lastMsg > 3000) { //用作反馈状态用 默认3s,自行修改
lastMsg = now;
int va = digitalRead(mac_pin);
if(va == LOW){
client.publish(TOPIC_state, "MAC BOOK");
}
int vb = digitalRead(sys_pin);
if(vb == LOW){
client.publish(TOPIC_state, "群晖");
}
int vc = digitalRead(tv_pin);
if(vc == LOW){
client.publish(TOPIC_state, "电视盒子");
}
int vd = digitalRead(atv_pin);
if(vd == LOW){
client.publish(TOPIC_state, "Apple TV");
}
int ve = digitalRead(n1_pin);
if(ve == LOW){
client.publish(TOPIC_state, "N1服务器");
}
}
}
代码over
然后是nr的控制流 over
[
{
"id": "1b55fbc9.098694",
"type": "ui_dropdown",
"z": "f1b7e2b9.bfea2",
"name": "",
"label": "",
"tooltip": "",
"place": "切换",
"group": "44264aa6.af1954",
"order": 6,
"width": 0,
"height": 0,
"passthru": false,
"multiple": false,
"options": [
{
"label": "MAC BOOK",
"value": "MAC BOOK",
"type": "str"
},
{
"label": "群晖",
"value": "群晖",
"type": "str"
},
{
"label": "电视盒子",
"value": "电视盒子",
"type": "str"
},
{
"label": "Apple TV",
"value": "Apple TV",
"type": "str"
},
{
"label": "N1服务器",
"value": "N1服务器",
"type": "str"
}
],
"payload": "",
"topic": "",
"x": 300,
"y": 1580,
"wires": [
[
"af67fcf0.e0771"
]
]
},
{
"id": "9366df3.dbccd2",
"type": "mqtt out",
"z": "f1b7e2b9.bfea2",
"name": "",
"topic": "hdmi/cmnd",
"qos": "",
"retain": "",
"broker": "3898d830.2de578",
"x": 570,
"y": 1580,
"wires": []
},
{
"id": "58029022.4eeab",
"type": "mqtt in",
"z": "f1b7e2b9.bfea2",
"name": "",
"topic": "hdmi/state",
"qos": "2",
"datatype": "auto",
"broker": "3898d830.2de578",
"x": 160,
"y": 1580,
"wires": [
[
"1b55fbc9.098694",
"cbb4ee2d.4dbf6"
]
]
},
{
"id": "af67fcf0.e0771",
"type": "function",
"z": "f1b7e2b9.bfea2",
"name": "",
"func": "var a = msg.payload\nif(a == \"N1服务器\"){\n msg.payload = 1\n}else if(a == \"电视盒子\"){\n msg.payload = 2\n}else if(a == \"Apple TV\"){\n msg.payload = 3\n}else if(a == \"群晖\"){\n msg.payload = 4\n}else if(a == \"MAC BOOK\"){\n msg.payload = 5\n}\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 430,
"y": 1580,
"wires": [
[
"9366df3.dbccd2"
]
]
},
{
"id": "44264aa6.af1954",
"type": "ui_group",
"z": "",
"name": "HDMI",
"tab": "4b6ab69.9eea548",
"order": 6,
"disp": true,
"width": "6",
"collapse": false
},
{
"id": "3898d830.2de578",
"type": "mqtt-broker",
"z": "",
"name": "N1",
"broker": "192.168.123.233",
"port": "1883",
"clientid": "",
"usetls": false,
"compatmode": true,
"keepalive": "60",
"cleansession": true,
"birthTopic": "node-red/server/status",
"birthQos": "0",
"birthPayload": "在线",
"closeTopic": "node-red/server/status",
"closeQos": "0",
"closePayload": "关闭",
"willTopic": "node-red/server/status",
"willQos": "0",
"willPayload": "不可用"
},
{
"id": "4b6ab69.9eea548",
"type": "ui_tab",
"z": "",
"name": "设备控制",
"icon": "dashboard",
"order": 1,
"disabled": false,
"hidden": false
}
]