Halli Hallo... ich bin ganz ganz neu in diesem segment Arduino und Co. Alles bagnn damit das ich sowas im einsatz mit einer WS28B Lichterstripes gesehen habe.....was ich leider noch nicht hinbekommen habe und dann die vielfahlt mit Alexa.....
Alexa wohnt nun bei mir und soll einige dinge schlaten und tut das auch schon gut... leider nur fehlen mir die grundlagen um sowas zu programmieren. Jetzt hoffe ich auf eure Hilfe.
Problem 1: Beim einschalten meines Beamers muss ich die Fernbedienung ca. 4 - 5 sek. gedrückt halten. Ich habe es versucht im Programm einzubinden nur leider ohne erfolg. Kleiner erfolg war das es ein bissel länger gesendet wird wenn ich bei der (Adresse, BIT, +100) diese werte eintrage. Leider ist diese Zeit dennoch zu kurz. wenn der Wert +100 auf +150 oder höher gestellt wird, dann wird nach ausübüng dieses Befehls der Mikrocontroller rebootet.... warum auch immer. Was mache ich hier falsch???
Problem 2: Beim ausschalten meines Beamers brauche ich zwei Tasten. Als erstes "off" danach in einem kleinen abstand die "enter" taste gedrückt werden. Ich habe schon den befehl delay hoch gesetzt und trotzdem gibt es keine pause. Leider erkenne ich auch dort nicht meinen Fehler.
Hardware: Wemos D1 mini
Hier mien Code
/*
Autor: Christian Kronen
Video: https://youtu.be/48RW4JHMXUA , https://youtu.be/9KPloCNosIk
Datum: 25.März 2017
Version: 1.0
Ort: Aachen
Verwendetes Board: NodeMCU.
Weitere Teile: 433 MHZ Funksender und Empfängermodul MX-FM-5V
IR LED mit 940nm
IR Empfänger V38238
1 Widerstand (muss individuell berechnet werden - ca. 150 OHM)
Breadboard und Steckbrücken
Amazon Echo
Ich bin nicht der Autor der verwendeten Bibliotheken:
https://github.com/sui77/rc-switch/archive/master.zip
https://github.com/me-no-dev/ESPAsyncTCP/archive/master.zip
https://github.com/me-no-dev/ESPAsyncUDP/archive/master.zip
https://github.com/me-no-dev/ESPAsyncWebServer/archive/master.zip
https://bitbucket.org/xoseperez/fauxmoesp/downloads
https://github.com/markszabo/IRremoteESP8266 by Ken Shirriff (C)
Treiber für das Board: http://sparks.gogo.co.nz/ch340.html
Ich übernehme keine Gewähr für die Richtigkeit, Vollständigkeit und Aktualität der bereitgestellten Inhalte.
Die Nutzung und das nachmachen der Inhalte aus dem Video& der Beschreibung erfolgt auf eigene Gefahr des Nutzers.
Schaue niemals in die IR LED!
*/
#include <ESP8266WiFi.h>
#include "fauxmoESP.h"
#include <IRremoteESP8266.h> //by Ken Shirriff (C) NEU
#define WIFI_SSID "************"
#define WIFI_PASS "***********"
fauxmoESP alexawifi;
IRsend IRLED(4); // IRLED angeschlossen am D2 Pin (GPIO4) - NEU
void wifiSetup() {
//******************************************************
//**** W-Lan Setup ****
//******************************************************
WiFi.mode(WIFI_STA);
Serial.printf("Verbindungs zu %s wird aufgebaut ", WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED) {
Serial.print("*");
delay(100);
}
Serial.println("");
Serial.printf("Verbunden! SSID: %s, IP Adresse: %s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str());
}
void anfrage(uint8_t device_id, const char * device_name, bool state) {
Serial.print("Gerät: ");
Serial.println(device_name);
Serial.print("Status: ");
//-----------------------------------------------------------------------------------------------------------------------------------------------
//*******************************************************
//**** Geräte EIN Schalten ****
//*******************************************************
if (state) {
if(device_id == 0) { //Beispiel IR Geräte schalten - NEU
Serial.println("AN");
//Samsung
IRLED.sendSAMSUNG(0xE0E040BF, 32); //Samsung Fernseher AN Schalten
delay(50);
}
else if (device_id == 1) {
Serial.println("AN");
//Samsung
IRLED.sendSAMSUNG(0xE0E0E01F, 32); //Samsung Fernseher lauter
delay(50);
}
else if (device_id == 2) {
Serial.println("AN");
//Samsung
IRLED.sendSAMSUNG(0xE0E0D02F, 32); //Samsung Fernseher leiser
delay(50);
}
else if (device_id == 3) {
Serial.println("AN");
//NEC Beamer
IRLED.sendNEC(0x189710EF, 32, +100); //NEC Beamer EIN Schalten
delay(50);
}
else if (device_id == 6) {
Serial.println("AN");
//Harman Kardon
IRLED.sendNEC(0x10E817E, 32); //Receiver Radio
delay(50);
}
}
//*******************************************************
//**** Geräte AUS Schalten ****
//*******************************************************
else {
if(device_id == 0) { //IR Geräte ausschalten
Serial.println("AUS");
//Samsung
IRLED.sendSAMSUNG(0xE0E040BF, 32); // Samsung Fernseher AUS Schalten
delay(50);
}
if(device_id == 3) { //IR Geräte ausschalten
Serial.println("AUS");
//NEC BEamer
IRLED.sendNEC(0x189728D7, 32, +20); // NEC Beamer AUS Schalten
delay(50000);
IRLED.sendNEC(0x1897E817, 32, +50); // NEC Beamer ENTER zum AAUS Schalten
delay(500000);
Serial.println("Enter");
}
if(device_id == 3) { //IR Geräte ausschalten
Serial.println("AUS");
//Harman Kardon Radio
IRLED.sendNEC(0x10EF906, 32, +20); // Harman Kardon Radio
delay(50000);
}
}
}
void setup() {
Serial.begin(115200,SERIAL_8N1,SERIAL_TX_ONLY);
Serial.println("Nach dem Verbinden, sage 'Alexa, schalte <Gerät> an' oder 'aus'");
// mySwitch.enableTransmit(5);
IRLED.begin(); // NEU
wifiSetup();
geraete();
//***************************************************
//**** Geräteliste ****
//***************************************************
}
void geraete() {
alexawifi.addDevice("Fernseher"); //ID 0
alexawifi.addDevice("TV Lauter"); //ID 1
alexawifi.addDevice("TV Leiser"); //ID 2
alexawifi.addDevice("Beamer"); //ID 3
alexawifi.addDevice("Receiver"); //ID 4
alexawifi.onMessage(anfrage);
}
void loop(){
alexawifi.handle();
}
Ich bedanke mich ganz doll für eure Hilfe... p.s.: suche schon benutzt und leider nix passenden gefunden.
Ciao Bluelinux