The SKUs and quantities listed below are currently out of stock. They must be sourced from our China warehouse and will ship from China once ready. Choose whether to ship the available items first or wait and ship the entire order together.
M5StickC Plus2 on ESP32-siruun perustuva pieni kehityskortti, jossa on monia tehokkaita toimintoja, kuten Bluetooth, Wi-Fi, OLED-näyttö, kosketusnäyttö ja paljon muuta. Sen avulla voimme helposti toteuttaa kaukosäädintoiminnon muiden laitteiden tai kodinkoneiden ohjaamiseen. Tässä artikkelissa näytetään, kuinka M5StickC Plus2:lla tehdään yksinkertainen kaukosäädin, ja esitellään projektin rakenne sekä koodin toteutus.
LED-toimintojen selitys
M5StickC Plus2:ssa on ohjelmoitava virran LED-merkkivalo, jota voidaan ohjata koodilla yksinkertaisesti päälle ja pois päältä tai vilkkumaan. LED-valoa voidaan käyttää virran tilan ilmaisemiseen sekä yhdessä muiden anturimoduulien kanssa laitteen tilan osoittamiseen. LED-valon ohjelmoitavuus mahdollistaa monenlaisia käyttökohteita älykkäistä muistutuksista yksinkertaisiin hälytysjärjestelmiin.
Vastaavasti StickCP2.Power.setLed(0) sammuttaa LED-valon. Tätä toimintoa käytetään usein tilan ilmaisemiseen, esimerkiksi siihen, onko virransyöttö päällä vai pois päältä, toimiiko laite oikein tai halutaanko antaa yksinkertainen merkkivalosignaali.
void setup() {
// Hakee laitteen määritykset.
auto cfg = M5.config();
// Alustaa M5StickC Plus2:n.
StickCP2.begin(cfg);
// Kääntää näytön
StickCP2.Display.setRotation(1);
// määrittää tekstin väriksi vihreän
StickCP2.Display.setTextColor(GREEN);
// keskittää tekstin
StickCP2.Display.setTextDatum(middle_center);
// käyttää "Orbitron_Light_24"-fonttia
StickCP2.Display.setTextFont(&fonts::Orbitron_Light_24);
StickCP2.Display.setTextSize(1);
// Näyttää viestin "Power LED" näytön keskellä.
StickCP2.Display.drawString("Power LED", StickCP2.Display.width() / 2,
StickCP2.Display.height() / 2);
}
void loop() {
// virran punaisen LED-merkkivalon ohjaus
// Sytyttää virran LED-merkkivalon.
StickCP2.Power.setLed(1);
// Odottaa 1 sekunnin.
delay(1000);
// Sammuttaa LED-valon.
StickCP2.Power.setLed(0);
// Odottaa 1 sekunnin.
delay(1000);
}
Vaihe 1: Kaukosäätimen infrapunasignaalin tunnistus
Tässä menetelmässä M5Stack Plus2 toimii kaukosäätimenä ja lähettää infrapunasignaaleja muihin laitteisiin, kuten televisioihin ja ilmastointilaitteisiin, infrapunalähetysmoduulin (IR-LED) kautta.
Voit asentaa IRremote-kirjaston Arduino IDE:ssä. Tämä kirjasto auttaa tuottamaan standardien mukaisia infrapunasignaaleja.
Avaa Arduino IDE, valitse Tools -> Library Manager, etsi IRremote ja asenna se.
Kirjoita infrapunavastaanottimen koodi
// Määrittää nastan, johon infrapunavastaanottimen anturi on kytketty
const int RECV_PIN = 11;
//Luodaan infrapunavastaanotto-objektit
IRrecv irrecv(RECV_PIN);
// Luo dekoodauksen tulosobjektin
decode_results results;
void setup() {
// Alusta sarjaliikenne
Serial.begin(115200);
// Aloita infrapunasignaalien vastaanotto
irrecv.enableIRIn();
Serial.println("Infrapunavastaanotin valmis");
}
void loop() {
if (irrecv.decode(&results)) {
// Infrapunasignaali havaittu
Serial.print("Vastaanotettu infrapunakoodi: ");
// Tulosta vastaanotettu infrapunasignaali
Serial.println(results.value, HEX);
// Vastaanota seuraava signaali
irrecv.resume();
}
delay(100);
}
✔ Kopioitu!
Valitse Tools -> Port ohjelmoitavaksi.
Valitse Tools -> Serial Monitor seurataksesi infrapunasignaalia.
Vaihe 2: LED-ohjausprojektin selitys
Kun olet tutustunut koodin toimintoihin ja painikeohjeeseen, voimme yhdistää painikkeiden käytön LED-valon ohjaukseen. Logiikka on yksinkertainen:
Paina painiketta A (StickCP2.BtnA.wasPressed()): Sytytä LED käyttämällä koodia StickCP2.Power.setLed(1);.
Paina painiketta B (StickCP2.BtnB.wasPressed()): Sammuta LED käyttämällä koodia StickCP2.Power.setLed(0);.
Toteutamme tämän käyttämällä if-ehtoja havaitsemaan, milloin painiketta A tai B painetaan. Näin LED-valoa voidaan vaihtaa helposti painikkeilla, mikä tekee projektista helpon aloituskohdan.
M5Stack Plus2 tukee kaukosäädintoimintoja
Esimerkkikoodi lähettää infrapunasignaalin infrapunaledin kautta, kun M5Stack Plus2:n painiketta painetaan, ja simuloi kaukosäätimen käyttöä. Voit vaihtaa signaalin numeron kohdassa IrSender.sendNEC() eri laitteiden ohjaamiseksi tarpeen mukaan.
#define DISABLE_CODE_FOR_RECEIVER
#define SEND_PWM_BY_TIMER
#define IR_TX_PIN 19
#include "M5StickCPlus2.h"
#include
void setup() {
auto cfg = M5.config();
//Voit tutustua begin()-alustuksen taustalla olevaan logiikkaan riippuvaisesta kirjastosta.
StickCP2.begin(cfg);
//Näytön kiertosuunnat
StickCP2.Display.setRotation(1);
// Näytöllä näkyvän tekstin väri.
StickCP2.Display.setTextColor(GREEN);
//Tekstin kohdistus: middle_center kohdistaa tekstin keskipisteen määritettyihin koordinaatteihin.
StickCP2.Display.setTextDatum(middle_center);
//Fontin tyylit
StickCP2.Display.setTextFont(&fonts::Orbitron_Light_24);
//Fontin koko
StickCP2.Display.setTextSize(1);
IrSender.begin(DISABLE_LED_FEEDBACK); // Aloita käyttäen lähetysnastana IR_SEND_PIN-nastaa
IrSender.setSendPin(IR_TX_PIN);//Infrapunasignaalin lähetysnastan asetukset
}
void loop() {
if (StickCP2.BtnA.wasPressed()) {
// Lähetä infrapunakoodi virtapainikkeelle
IrSender.sendNEC(0x25AE7EE3, 32); // Esimerkki television NEC-koodista (korvaa oikealla koodilla)
StickCP2.Display.clear();
StickCP2.Display.drawString("Virtasignaali lähetetty", StickCP2.Display.width() / 2,
StickCP2.Display.height() / 2 - 40);
delay(5000); // Lähetetään 5 sekunnin välein
}
if (StickCP2.BtnB.wasPressed()) {
// Lähetä infrapunakoodi äänenvoimakkuuden lisäyspainikkeelle
//IrSender.sendNEC(25AE7EE3, 32); // Lähetä äänenvoimakkuuden lisäyssignaali
StickCP2.Display.clear();
StickCP2.Display.drawString("Äänenvoimakkuuden lisäys lähetetty", StickCP2.Display.width() / 2,
StickCP2.Display.height() / 2 - 40);
delay(5000); // Lähetetään 5 sekunnin välein
}
StickCP2.update(); // Päivitä painikkeen tila
}