Hallo liebe µC gemeinde.....
Meine Letzte Idee war leider ne schlechte und daher kommt ne neue Idee...
Leider brauche ich Hilfe zum Programmieren da mir die Programmiersprache nicht geläufig ist. Bitte als absoluten Neuling behandeln in sache Code...
Wunsch meines Projektes:
Alexa (Amazon Echo) soll via Wemos D1 mini und RS232-TTl Modul meinen Beamer steuern.
Ich habe schon einen Code wo Alexa via IRLed's meinen Fernseher steuert und darüber würde ich gerne auch den Beamer einschalten und ausschalten. Ich habe eine Liste mit den PC Steuercodes vom Beamer sowie das Kommunikationsprotokoll.
PC-Steuercodes:
POWER ON : 02H 00H 00H 00H 00H 02H
POWER OFF : 02H 01H 00H 00H 00H 03H
Kommunikationsprotokoll:
Baudrate ....................................... 38400 bps
Datenlänge .................................... 8 Bits
Parität .......................................... Keine Parität
Stoppbit ........................................ Ein Bit
X ein/aus ....................................... Keine
Kommunikationsverfahren .................. Vollduplex
das ist mein Funktionierender Code für Alexa sodass, die Sachen als SMARTHOME gerät erfasst werden.
/*
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("Verbindung zu %s wird aufgebaut......Bitte Warten! ", WIFI_SSID);
Serial.println("");
WiFi.begin(WIFI_SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED) {
Serial.print("*");
delay(100);
}
Serial.println("");
Serial.printf("Verbunden mit: %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");
// Hier müsste dann irgendwie die Ausgabe des Steuercodes passieren
//
}
else if (device_id == 4) {
Serial.println("AN");
//AV Receiver Radio
IRLED.sendNEC(0x10E817, 32); //AV Receiver AM/FM
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);
}
else if(device_id == 3) { //IR Geräte ausschalten
Serial.println("AUS");
//NEC BEamer
IRLED.sendNEC(0x189728D7, 32); // NEC Beamer AUS Schalten
delay(50);
}
else if(device_id == 4){
//AV Receiver Radio
IRLED.sendNEC(0x10E03FC, 32); // AV Receiver OFF
delay(50);
}
}
}
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 Wohnzimmer"); //ID 0
alexawifi.addDevice("Fernseher Lauter"); //ID 1
alexawifi.addDevice("Fernseher Leiser"); //ID 2
alexawifi.addDevice("Beamer"); //ID 3
alexawifi.addDevice("Wohnzimmer Radio"); //ID 4
alexawifi.onMessage(anfrage);
}
void loop(){
alexawifi.handle();
}
Kann mir jemand bei diesem Projekt Helfen?