Chat

InfraRed IoT Lerende Universele Afstandbediening

In dit artikel zal ik je helpen bij het bouwen van een apparaat dat infraroodberichten van een infraroodafstandsbediening kan vastleggen (leermodus) en de vastgelegde infraroodberichten opnieuw kan verzenden (verzendmodus).
Ik gebruik daarbij de betaalbare en eenvoudig te gebruiken 1of!-Experimenteer bordjes om de hardware te ontwikkelen en te testen.
Voor de documentatie van de schema's zal ik de briljante open source KiCAD EDA gebruiken. Samen bouwen we de complete hardware als een echt 'one of a kind' apparaat.

Daarna zal ik u de stappen tonen om, vanuit de schema's, een ​​Printed Circuit Board (PCB) te maken.

Principe Infrarood communicatie

Infrarood (IR) communicatie is een veel gebruikte, goedkope en makkelijke manier van draadloze communicatie. IR-licht is niet waarneembaar voor het menselijk oog, omdat het een iets langere golflengte (meestal 950 nm) heeft dan normaal licht (380-780 nm) - perfect voor draadloze communicatie. Een IR-afstandsbediening werkt door een LED in een bepaald patroon in- en uit te schakelen. Om interferentie van IR-bronnen zoals zonlicht of andere lampen te voorkomen wordt de LED niet constant aangezet, maar wordt hij aan en uit gezet met een modulatiefrequentie (meestal 36, 38 of 40 kHz).

De tijd dat een gemoduleerd signaal wordt verzonden, wordt een mark genoemd en wanneer de LED uit is, wordt dat een space genoemd. De meeste gebruikte IR-afstandsbedieningen gebruiken een modulatiefrequentie van 38 kHz, wat betekent dat een mark wordt weergegeven door een snelle (38.000 keer / seconde) "aan / uit" schakelen van de IR-LED.

Een typisch IR-bericht Een typisch IR-bericht

 

Een IR-bericht begint met een startpuls die veel langer is dan de andere pulsen. Dan is er een startbit, dan komen de feitelijke gegevens en dan weer een lange puls, om het einde van het IR-bericht aan te geven (niet getoond op bovenstaande afbeelding).

Ontwerp overwegingen

  • een IR-ontvanger-diode om de IR-berichten vast te leggen
  • een IR-zender (IR LED's 950 nm) om IR-berichten te verzenden
  • enige verwerkingskracht
  • opslag voor het opslaan van de vastgelegde IR-berichten
  • twee status-LED's
  • het apparaat moet werken met alle infraroodafstandsbedieningen die het infraroodsignaal moduleren op 38 kHz
  • het moet in staat zijn om 400 puls-lange berichten te ontvangen (ik heb zelf een toepassing waarvoor ik commando's voor mijn Airco / Heater moet  kunnen vastleggen en verzenden).

De voor de hand liggende keuze om te communiceren met het apparaat is door een webserver en restAPI te gebruiken en daarom heeft het apparaat een internetverbinding nodig.
De ESP8266 met ingebouwde WiFi en flash-bestandopslag is de logische processor voor dit project.

Project setup

De beste manier om een ​​project te ontwikkelen, is door het in kleine, logische delen op te splitsen en deze onderdelen één voor één te ontwikkelen en te testen. Voor nu zie ik drie belangrijke delen:

  1. Het IR-ontvangercircuit
  2. Het IR-zendercircuit
  3. De software om alles samen te lijmen

De ontwikkeling zal gebeuren met de 1of!-Bordjes, omdat ze goedkoop en gebruiksvriendelijk zijn. Voor de eerste installatie is het 1of!-Wemos processor bordje de beste keuze, omdat deze gemakkelijk kan worden geprogrammeerd met een USB-kabel en voor de rest van de circulatie wordt een 1of!-Solderless bordje gebruikt. Als ik tevreden ben met het circuit op het 1of!-Solderloss bordje, zal ik de firmware naar een 1of!-ESP12 processor bordje flashen en de schakeling op een 1of!-Proto-bordje bouwen.

De IR-signaalverwerking wordt afgehandeld door een fantastische bibliotheek [v2.6.2 (20190616)] geschreven door Ken Shirriff, David Conran en anderen. Zie de blog van Ken Shirriff voor meer informatie over de werking van de bibliotheek.

Het IR-receiver schema

Voor het ontvangen van IR-codes wordt een IR-ontvanger-diode gebruikt. Ik heb de VS1838B gekozen, een veelgebruikt en beschikbaar onderdeel dat 950nm licht detecteert op 38kHz.
De VS1838B detecteert het 38 kHz gemoduleerde IR-bericht en geeft een logische puls af.

De uitvoer van de VS1838B wordt naar GPIO12 van de ESP8266 gestuurd die het IR-bericht analyseert, decodeert en uiteindelijk ook kan opslaan.

Het schema is eenvoudig Het schema is eenvoudig

Een groene LED (D6) is verbonden met GPIO14 om een ​​visuele indicatie te geven dat het apparaat wacht op het ontvangen van een IR-bericht.

Op het 1of!-Solderless bord ziet het er als volgt uit (let wel: in plaats van een IR LED wordt een normale LED en een 220ohm weerstand gebruikt voor het testen. Het uiteindelijke ontwerp gebruikt IO-14 voor de groene LED):

Je kunt een programma (IR_receiver) om deze opzet te testen vinden op github.

Compileer en flash de sketch van de IR-receiver naar het 1of!-Wemos (of 1of!-ESP12) bordje en open de seriële monitor.

Het IR-sender schema

Om IR-berichten te kunnen verzenden, hebben we één of meer IR-LED's nodig. Het gebruik van een IR-LED verschilt niet van het gebruik van een "normale" LED, behalve dat de IR-LED's voor fatsoenlijk bereik veel meer stroom nodig hebben om hun werk te doen. Omdat de GPIO-pinnen van de ESP8266 niet in staat zijn om deze hoge stromen te leveren, hebben we een stuurcircuit nodig. Het gemakkelijkst is om een ​​opto-coupler te gebruiken zoals de 4N35 of 4N25, die meteen dienst doet als een level-shifter van 3v3 (GPIO04) naar 5 Volt om de Gate van de MOSFET-switch aan te sturen.

De spanningsval over de IR-LED is ~1,6 Volt en de maximale stroomsterkte is 60mA. Omdat we twee IR-LED's parallel gebruiken en de duty-cycle van het gemoduleerde signaal 50% is, is de maximale stroom door R7 60 * 2 * 2 = 240mA.
Daarom is de waarde van R7 (5-1,6) / 240 => ~15 Ohm.

IR-sender schema IR-sender schema

De pulsen komen van GPIO04. Als GPIO04 "hoog" is, zal de led in de optocoupler branden en op zijn beurt de transistor laten geleiden (trekt de emitter naar 5 volt). De 5 volt op de emitter maakt de gate van Q1 "hoog" en de MOSFET geleidt nu ook en trekt de drain naar GND en schakelt zo de twee IR-LED's in (ze gaan branden).
Een "laag" op GPIO04 schakelt de led in de optocoupler "uit". De transistor opent (er loopt geen stroom van de collector naar emitter) en R11 trekt de gate van Q1 naar GND. De MOSFET geleidt nu ook niet meer waardoor er geen stroom door de IR-LED's loopt (ze worden uitgeschakeld).

Zo ziet de schakeling er op een 1of!-Solderless bordje uit Zo ziet de schakeling er op een 1of!-Solderless bordje uit

Je kunt een programma (IR_sender) om deze opstelling te testen vinden op github.

Compileer en flash de IR-sender sketch naar het 1of!-Wemos (of 1of!-ESP12) bordje en open de seriële monitor.

Nu we weten dat het ontwerp werkt, kunnen we het gecombineerde IR-sender en IR-receiver schema op een 1of!-Proto bord solderen.

Soldeer eerst de Led-circuit's en test deze.
Monteer eerst de signaal Leds Monteer eerst de signaal Leds

Na controle dat de signaal-LED knippert kan de rest van het schema opgebouwd worden.

De hele schakeling op een 1of!-Proto bordje De hele schakeling op een 1of!-Proto bordje

Reacties

Nederland
Leuk project,
ik zocht nog zo iets! Ik wil mijn airco automatiseren op basis van sensoren van de omgeving (daarnaast ook de aansturing van een luchtbevochtiger en de automatische radiatorknoppen) om zo het klimaat op mijn kantoor optimaal te houden.
Ik ga er zeker naar kijken!
Geplaatst op 
1



Upload foto's
Foto's toevoegen

Gegevens