Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Contrôlez votre TV avec Alexa : Configuration Arduino et ESP8266

Composants et fournitures

Arduino UNO × 1
Carte NodeMCU ESP8266 Breakout Board × 1
Émetteur/récepteur IR × 1

Outils et machines nécessaires

Fer à souder (générique)

Applications et services en ligne

Arduino IDE

À propos du projet

Utiliser Alexa pour contrôler votre TV !

Introduction : Ce projet explique comment utiliser Alexa pour envoyer des commandes et contrôler votre TV par la voix. Tout ce que votre télécommande TV peut faire, Alexa peut le faire. Nous allons enregistrer les signaux IR de la télécommande et utiliser Alexa pour les renvoyer sur commande vocale. Voici les étapes ou regardez cette vidéo YouTube.

Étape 1 : Télécharger les bibliothèques prérequises

Téléchargez ces bibliothèques et placez-les dans le dossier libraries de votre IDE Arduino :

Étape 2 : Programmer le NodeMCU (module WiFi)

Ouvrez le sketch ESP8266-Alexa.ino et téléversez-le sur votre NodeMCU (installez les infos de carte via le Gestionnaire de cartes dans l'IDE Arduino). Modifiez uniquement les identifiants WiFi et les noms des dispositifs.

Vous pouvez personnaliser les noms des dispositifs dans ESP8266-Alexa.ino et les signaux émis dans IR-Alexa-Send.ino.

Étape 3 : Lire les signaux IR de la télécommande TV

Téléversez le sketch IR_REMOTE_read.ino sur votre Arduino pour lire les signaux de la télécommande et enregistrer les codes IR reçus pour référence ultérieure.

Étape 4 : Programmer l'Arduino pour envoyer les signaux IR TV via Alexa

Ouvrez IR-Alexa-Send.ino dans l'IDE Arduino et téléversez-le sur votre Arduino Uno (sélectionnez la carte UNO). Câblez l'alimentation des deux modules et les fils de liaison. Assurez-vous que l'émetteur IR est connecté à la broche 3 de l'UNO. Voir le schéma joint.

Étape 5 : Tester le projet avec Alexa

Dans l'application Amazon Alexa (mobile ou PC), allez dans « Maison connectée » et appuyez sur « Ajouter des appareils » pour trouver chaque commande définie dans ESP8266-Alexa.ino. Une fois détectés, testez avec :

Code

ESP8266-Alexa.ino (C/C++)

À écrire sur le NodeMCU pour émuler un dispositif « WEMO » via l'IDE Arduino :

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include "fauxmoESP.h"

// -----------------------------------------------------------------------------
// Identifiants WiFi
// -----------------------------------------------------------------------------
#define WIFI_SSID "linksys"
#define WIFI_PASS ""
#define SERIAL_BAUDRATE 115200

fauxmoESP fauxmo;

// -----------------------------------------------------------------------------
// Configuration WiFi
// -----------------------------------------------------------------------------
void wifiSetup() {
  WiFi.mode(WIFI_STA);
  Serial.printf("[WIFI] Connexion à %s ", WIFI_SSID);
  WiFi.begin(WIFI_SSID, WIFI_PASS);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(100);
  }
  Serial.println();
  Serial.printf("[WIFI] Mode STATION, SSID: %s, IP: %s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str());
}

// -----------------------------------------------------------------------------
// Initialisation broches
// -----------------------------------------------------------------------------
#define RELAY_PIN1 13
#define RELAY_PIN2 2
#define RELAY_PIN3 14
#define RELAY_PIN4 15

void setup() {
  pinMode(RELAY_PIN1, OUTPUT); digitalWrite(RELAY_PIN1, LOW);
  pinMode(RELAY_PIN2, OUTPUT); digitalWrite(RELAY_PIN2, LOW);
  pinMode(RELAY_PIN3, OUTPUT); digitalWrite(RELAY_PIN3, LOW);
  pinMode(RELAY_PIN4, OUTPUT); digitalWrite(RELAY_PIN4, LOW);

  Serial.begin(SERIAL_BAUDRATE);
  Serial.println();
  Serial.println("FauxMo demo sketch");
  Serial.println("Après connexion, demandez à Alexa/Echo 'allume pixels' ou 'éteins pixels' ou 'allume relay' ou 'éteins relay'");

  wifiSetup();

  // -----------------------------------------------------------------------------
  // Noms des dispositifs Alexa
  // -----------------------------------------------------------------------------
  fauxmo.addDevice("TV");
  fauxmo.addDevice("NetflixDeGreg");
  fauxmo.addDevice("Veille");
  fauxmo.addDevice("Bureau");
  fauxmo.onMessage(callback);
}

// -----------------------------------------------------------------------------
// Appels d'opération Alexa
// -----------------------------------------------------------------------------
void callback(uint8_t device_id, const char * device_name, bool state) {
  Serial.printf("[MAIN] %s state: %s\n", device_name, state ? "ON" : "OFF");
  if (strcmp(device_name, "TV") == 0) {
    digitalWrite(RELAY_PIN1, state ? HIGH : HIGH); // Note: les deux branches font HIGH dans l'original
  }
  if (strcmp(device_name, "NetflixDeGreg") == 0) {
    digitalWrite(RELAY_PIN2, state ? HIGH : LOW);
  }
  if (strcmp(device_name, "Veille") == 0) {
    digitalWrite(RELAY_PIN3, state ? HIGH : LOW);
  }
  if (strcmp(device_name, "Bureau") == 0) {
    digitalWrite(RELAY_PIN4, state ? HIGH : LOW);
  }
}

void loop() {
  fauxmo.handle();
  delay(500);
  digitalWrite(RELAY_PIN1, LOW);
  digitalWrite(RELAY_PIN2, LOW);
  digitalWrite(RELAY_PIN3, LOW);
  digitalWrite(RELAY_PIN4, LOW);
}

IR-Alexa-Send.ino (C/C++)

Téléversé sur l'Arduino UNO pour lire les signaux du NodeMCU et envoyer les signaux IR appropriés via la diode émettrice IR :

#include <IRremote.h>
IRsend irsend;
#define a 4
#define b 5
#define c 6
#define d 7

void setup() {
  Serial.begin(9600);
  pinMode(a, INPUT);
  pinMode(b, INPUT);
  pinMode(c, INPUT);
  pinMode(d, INPUT);
}

void loop() {
  if (digitalRead(a) == HIGH) {
    irsend.sendNEC(0x57E3E817, 32); // Code Power
    Serial.println("TV");
    delay(500);
  }
  if (digitalRead(b) == HIGH) {
    irsend.sendNEC(0x57E354AB, 32); // Enter
    delay(2000);
    irsend.sendNEC(0x57E39867, 32); // Up
    delay(1000);
    irsend.sendNEC(0x57E39867, 32); // Up
    delay(1000);
    irsend.sendNEC(0x57E39867, 32); // Up
    delay(1000);
    irsend.sendNEC(0x57E3B44B, 32); // Right
    delay(1000);
    irsend.sendNEC(0x57E354AB, 32); // Enter
    delay(2000);
    irsend.sendNEC(0x57E354AB, 32); // Enter
    Serial.println("The Office");
    delay(500);
  }
  if (digitalRead(c) == HIGH) {
    irsend.sendNEC(0x57E38679, 32); // Options
    delay(1500);
    irsend.sendNEC(0x57E3CC33, 32); // Down
    delay(700);
    irsend.sendNEC(0x57E3CC33, 32); // Down
    delay(700);
    irsend.sendNEC(0x57E3CC33, 32); // Down
    delay(700);
    irsend.sendNEC(0x57E3CC33, 32); // Down
    delay(700);
    irsend.sendNEC(0x57E3B44B, 32); // Right
    delay(700);
    irsend.sendNEC(0x57E3B44B, 32); // Right
    delay(900);
    irsend.sendNEC(0x57E38679, 32); // Options
    Serial.println("Sleep Timer");
    delay(500);
  }
  if (digitalRead(d) == HIGH) {
    irsend.sendNEC(0x57E34AB5, 32); // Code Netflix
    Serial.println("Netflix de Greg");
    delay(500);
  }
}

IR_REMOTE_read.ino (C/C++)

Utilisez ce code sur votre Arduino pour lire les signaux de votre télécommande via le récepteur IR :

// 2017.06.22
#include <IRremote.h>
#include <LiquidCrystal.h>
/* CÂBLAGE LCD (GAUCHE VERS DROITE, BROCHES SUR LE DESSUS)
 * GND - VCC - POT MILIEU - 12 - GND - 11 - NONE - NONE - NONE - NONE - 5 - 4 - 9 - 2 - VCC - GND
 * LE POTENTIOMÈTRE DOIT AVOIR 5V ET GND ET PEUT RÉGLER LE CONTRASTE
 */
LiquidCrystal lcd(12, 11, 5, 4, 9, 2); // 9 au lieu de 3 (NÉCESSAIRE POUR ÉMETTEUR)
int receiverpin = 10;
IRrecv irrecv(receiverpin);
decode_results results;

void setup() {
  lcd.begin(16, 2);
  pinMode(receiverpin, INPUT);
  Serial.begin(9600);
  irrecv.enableIRIn();
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume();
    lcd.clear();
    lcd.print(results.value, HEX);
    delay(150);
  }
}

Schémas

Schéma final connectant l'Arduino au NodeMCU (module WiFi).

Processus de fabrication

  1. La pilule contraceptive : histoire, avantages, risques et production
  2. Transition des systèmes de contrôle industriels vers les réseaux sans fil
  3. Pourquoi les composites thermodurcissables sont le choix idéal pour la fabrication moderne
  4. Réparer ou remplacer votre écran tactile industriel : guide de décision d'expert
  5. Maîtrisez vos réparations auto : Astuces DIY pour fiabilité et économies
  6. Protéger les Systèmes de Contrôle Industriels : Stratégies Éprouvées et Bonnes Pratiques
  7. Guide pro : perçage métal avec votre machine — conseils d'experts
  8. Huit étapes éprouvées pour diagnostiquer et corriger votre système de contrôle de process
  9. Réveiller votre PC à distance avec PLCnext via Wake-on-LAN