Web IR-afstandsbediening met Esp8266 (NodeMCU): 4 stappen
Web IR-afstandsbediening met Esp8266 (NodeMCU): 4 stappen
Anonim
Web IR-afstandsbediening met Esp8266 (NodeMCU)
Web IR-afstandsbediening met Esp8266 (NodeMCU)

Probleem

Op de woonkamertafel staan drie afstandsbedieningen. Om je favoriete programma te bekijken, moet je een speciale reeks knopdrukken op ten minste twee ervan nauwkeurig volgen. En je kamergenoot, moeder, vriendin herinnert zich die nooit..

Oplossing

Je koopt een Logitech Harmony;-)

Maar als je dit geld niet wilt uitgeven, kun je iets soortgelijks bouwen voor minder dan $ 10. Door een infrarood LED aan te sluiten op een ESP8266 (s.th. zoals een Arduino maar met WiFi aan boord) kunnen we eenvoudig een apparaat bouwen waarmee we kunnen apparaten bedienen met een kleine webpagina vanaf elke computer of mobiele telefoon in uw wifi.

Wat je nodig hebt

  • NodeMCU-ontwikkelbord (ze verzenden vanuit Azië voor < 5 €)
  • IR-sensor (OS-1838B of TSOP38238)
  • IR-LED
  • 100Ω Weerstand
  • NPN-transistor (bijv. 2N2222)
  • klein stukje prototype PCB
  • vierpolige connector die op de NodeMCU past (d.w.z. floppydisk-voedingsadapter)

Als je een oude afstandsbediening hebt, kun je waarschijnlijk de IR-LED en de transistor ervan gebruiken.

Stap 1: De hardware monteren

De hardware monteren
De hardware monteren
De hardware monteren
De hardware monteren
De hardware monteren
De hardware monteren
De hardware monteren
De hardware monteren

Monteer de componenten op een klein stukje op een klein stukje prototype printplaat en sluit de componenten aan zoals weergegeven in het diagram.

Afhankelijk van de LED is de beveiligingsweerstand mogelijk niet nodig. Als je merkt dat je heel goed moet richten of heel dicht bij het apparaat moet zijn, kun je het waarschijnlijk verwijderen.

Ik heb alles aangesloten op een stekker die ik heb verwijderd uit een kapotte pc-voedingsadapter (die voor de diskette).

Stap 2: De applicatie installeren op de NodeMCU

Stel uw omgeving in om programma's voor de esp8266 te compileren met de Arduino IDE: [https://github.com/espressif/arduino-esp32

Kloon of download de broncode van de applicatie uit de github-repository

Installeer in de Arduino IDE de bibliotheek IRremoteESP8266 (Menu: Sketch -> Manage Libraries). Kopieer het bestand config.h.example en noem deze kopie config.h. U moet in de config.h minimaal SSID en Wachtwoord van uw WiFi opgeven om verbinding te kunnen maken met de webserver. De Arduino Sketch zou nu moeten kunnen worden gecompileerd en geüpload. Sluit het door u gemaakte breakout-bord aan op 3V, Ground, D5, D6.

Als alles werkte en je de chip gebruikt die is aangesloten op de Arduino IDE, zou je het IP-adres moeten zien waarop de server draait in de seriële monitor.

Stap 3: De HTML-pagina aanpassen om de NodeMCU te besturen

Het proces in deze stap wordt ook getoond in de video.

In de broncode directory staat ook een 'ir.html'. Indien correct geconfigureerd, zal deze 'praten' met de NodeMCU.

Dus de eerste stap is om het bestand te vertellen onder welk adres het de NodeMCU kan vinden. Open het ir.html-bestand in een teksteditor en zoek naar een regel die er als volgt uitziet:

var host = '192.168.2.121';

Wijzig de waarde tussen de vinkjes zodat deze overeenkomt met het adres dat de webserver na het starten op de seriële monitor heeft afgedrukt.

OpnemenDruk op de opnameknop Richt de afstandsbediening op de sensor en druk op de gewenste knop op de afstandsbediening. Daarna zou onder de opnameknop een lange lijst met nummers moeten verschijnen. Dat zijn de tijdstippen van het signaal voor die knop die u op de afstandsbediening hebt ingedrukt.

Opdrachten instellen

Nu willen we een manier om een signaal te sturen met die timings van de chip zelf. Daarvoor moeten we de timings die we zojuist hebben opgenomen toevoegen aan de lijst met bekende signalen. Kopieer de waarden (inclusief de vierkante haken) die het opnameproces je heeft gegeven en voeg een nieuwe regel met een naam en de waarden in het ir.html-bestand in na de regel die er als volgt uitziet:

var signalen = {

"pgr1 btn": [1, 2, 3], Vervang de 1, 2, 3 door de geregistreerde waarden en vergeet de komma na de omringende haakjes niet. Om daadwerkelijk een knop toe te voegen, moeten we ook een commando toevoegen. Een commando kan uit meerdere signalen bestaan, aangezien we mogelijk meerdere knoppen op de afstandsbediening moeten 'drukken', namelijk 1 en 2 om kanaal 12 op de tv te bereiken. Dit maakt het ook mogelijk om meerdere apparaten met één commando te bedienen. Zoek naar de lijn die er zo uitziet

"Geluid aan/uit": ["mute"], Kopieer die regel en wijzig de tekst "Geluid aan/uit" zodat deze overeenkomt met wat u op de nieuwe knop wilt weergeven. Verander de naam "mute" in de naam van het signaal dat je hebt toegevoegd. Het resultaat zou dus kunnen zijn:

"HBO": ["prg 1 btn"], Als u meerdere signalen wilt uitvoeren, voegt u deze als volgt toe:

"HBO": ["prg 1 btn", "prg 2 btn"],

Stap 4: Gebruik:

Nadat u uw gewenste signaalsequenties in het HTML-bestand hebt ingevoegd, kunt u het kopiëren naar elke computer of mobiel apparaat met een browser en verbonden met dezelfde wifi als de NodeMCU.

Aanbevolen: