CrazyModding LogoCrazyModding on Twitch
Twitch.tv/crazymodding

Channelpoint Stroboskop

Als erstes die Anforderungen für dieses Projekt:

  • Twitch Channelpoint System
  • Custom Belohnung
  • NodeRed
  • Twitch Chat Plugin für NodeRed
  • WeMos D1 Mini (Nachbau)
  • Relais Modul
  • 5v Stromversorgung
  • Arduino IDE
  • W-Lan
  • Diverse Kabel
  • Lötkolben und Lötzinn etc.
  • Heißkleber

 

 

 
 

Die Verlötung und das bauen der Hardware wird ganz gut im Video beschrieben.

 

Für die Softwareseite habe ich für den ESP und das Relais folgende Software benutzt:

https://makesmart.net/esp8266-wlan-relais/

Der Arduino Code, der auf den ESP geflasht wird ist folgender:

 

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
ESP8266WebServer server(80);
const char* ssid = "WLAN_SSID";
const char* password = "WLAN_PASSWORD";
//Signal-Pin des Relais: D1
int relay_pin = 5;
void setup()
{
  pinMode(relay_pin, OUTPUT);
  Serial.begin(115200);
  Serial.println("ESP Gestartet");
  WiFi.begin(ssid, password);
  Serial.print("Verbindung wird hergestellt ...");
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.print("Verbunden! IP-Adresse: ");
  Serial.println(WiFi.localIP());
  server.onNotFound([](){
    server.send(404, "text/plain", "Link wurde nicht gefunden!");  
  });
  server.on("/", []() {
    server.send(200, "text/plain", "Startseite");
  });
  server.on("/relay_on", []() {
    server.send(200, "text/plain", "Relais wurde angeschaltet.");
    relay_on();
  });
  server.on("/relay_off", []() {
    server.send(200, "text/plain", "Relais wurde ausgeschalten.");
    relay_off();
  });
  server.on("/state", []() {
    server.send(200, "text/plain", String(digitalRead(relay_pin)));
  });
  server.begin();
  Serial.println("Webserver gestartet.");
}
void loop() {
  server.handleClient();  
}
void relay_on(){
  digitalWrite(relay_pin, HIGH);  
}
void relay_off(){
  digitalWrite(relay_pin, LOW);    
}

 

Man muss hier nur in der Vierten und Fünften Zeile, die W-Lan Zugangsdaten eintragen, und dann auf den ESP Flashen.

 

In NodeRed benötigt man das Modul: node-red-contrib-twitch-chat

 

Dann fügt ihr eine Node Chat hinzu. In der Configuration muss man KEINE Zugangsdaten eintragen, sondern nur den Channel:

 

Dieses Node wirft den Chat in JSON format aus, aber damit NodeRed auch versteht, das der String ein JSON ist, muss man ihm das mit einer Json Node sagen:

 

Das ist die Config der Json Node:

 

Die Rewards MÜSSEN zwingend in twitch mit einem Text hinterlegt werden, sonst werden diese von NodeRed nicht geparst, da sie sonst nicht im Chat auftauchen.

 

Wir brauchen nun einen Reward Parser, hierfür nehmen wir ein Funktions Node:

 

Die Config des Funktionsnodes ist:

Ich trenne hier die Reward ID, sowie die Chatnachricht um die Chatnachricht in einem anderen Reward als TTS Nachricht vorlesen zu lassen. Wichtig für das weitere vorgehen ist, das die msg.reward gesetzt ist uns aus dem JSON die ID des Rewards bekommt.

 

Jetzt bauen wir ein Switch Node dahinter, der dann herausfiltert, ob der korrekte Reward gewählt wurde.

 

In der Config von diesem Switch prüfen wir die Eigenschaft von msg.reward ab, und schauen ob es die korrekte RewardID ist. Die RewardID findet ihr heraus, wenn ihr schaut, was im Chat kommt, ohne das ihr live seid, wenn ihr einen Reward einlöst.

Jetzt braucht es nur noch API Requests auf eueren ESP, der das Relais ein und ausschaltet. Hierfür gibt es http Request Nodes.

Man muss hierzu nur die IP des ESP wissen, und die trägt man dann dort ein.

 

Das Selbe macht man jetzt fürs ausschalten:

Mit der selben Config, die nur relay_off aufruft:

 

Jetzt müssen wir nur noch entscheiden wie lange das Strobo für die Belohnung an seien soll, und installieren ein delay Node:

Dieses Delay Node muss für die zeit gebaut werden, bis der off API call getätigt wird:

 

Dann verbinden wir nun unseren Reward Weg, und der sollte dann so aussehen:

 

 

Und das war es eigentlich von der Software Seite her!

 

Viel spaß beim Nachmachen!