Cuprins:

Buton codificator rotativ: 6 pași
Buton codificator rotativ: 6 pași

Video: Buton codificator rotativ: 6 pași

Video: Buton codificator rotativ: 6 pași
Video: Codificator rotativ #6 FLProg și LCD I2C | ESP32 NodeMCU | Programare încorporată vizuală Arduino 2024, Noiembrie
Anonim
Buton codificator rotativ
Buton codificator rotativ

Aceasta este o telecomandă rotativă bazată pe un codificator rotativ. Are următoarele caracteristici.

  • Baterie acționată cu un consum foarte redus de curent atunci când este activată
  • Activare automată când comanda este rotită
  • Somn automat după o perioadă de inactivitate
  • Acțiuni configurabile atunci când controlul este modificat

    • Acces web simplu cu poziția raportată
    • Raportarea MQTT
    • Controlul regulatorului de lumină Lighwaverf
  • Dimensiune foarte mică
  • Cost scăzut
  • Actualizare software prin wifi
  • Gestionarea accesului la rețeaua wifi

Pasul 1: Componente și instrumente necesare

Componente și instrumente necesare
Componente și instrumente necesare
Componente și instrumente necesare
Componente și instrumente necesare
Componente și instrumente necesare
Componente și instrumente necesare

Sunt necesare următoarele componente

Carcasă - Carcasă imprimată 3D disponibilă la

www.thingiverse.com/thing:3173779

  • Modul ESP-12F ESP8266
  • Controlul codificatorului rotativ (EC11) + Buton
  • Comutator de glisare On / Off
  • Priză cu 3 pini
  • Baterie LIPO 400mAh 802030
  • Refulator de tensiune de 3,3 V (xc6203)
  • Condensator 220uF
  • Rezistoare 1M, 4K7 (2)
  • Diodă Schottky 1N5819 (2)
  • MOSFET canal P (AO3401)
  • Sârmă emailată (lipibilă)
  • Conectați sârmă

Sunt necesare următoarele instrumente

Fier de lipit cu punct fin

Pasul 2: Electronică

Electronică
Electronică

Electronica se bazează pe un modul ESP-12F. O cantitate mică de suport electronic este utilizată pentru a regla bateria și pentru a asigura pornirea și oprirea automată.

Controlul puterii se face prin semnalul EN de pe ESP-12F, care trebuie să fie ridicat pentru ca modulul să se alimenteze. Acest lucru este menținut scăzut de rezistorul de 1M, dar poate fi tras de sus de tranzistorul MOSFET. Condensatorul 4u7 oferă minimum câteva secunde de activare chiar și după oprirea MOSFET.

Tranzistorul MOSFET este pornit inițial de unul dintre comutatoarele de codificare rotative care este împământat pe măsură ce se întoarce. Apoi poate fi păstrat de un semnal GPIO pe măsură ce pornește codul ESP8266.

MOSFET se oprește atunci când semnalul GPIO este eliberat după detectarea inactivității pentru o perioadă de expirare.

Pasul 3: Asamblare

Asamblare
Asamblare
Asamblare
Asamblare

Am făcut următorii pași de asamblare.

  • Imprimă carcasă 3D
  • Montați comutatorul de pornire / oprire și punctul de încărcare cu 3 pini. Folosiți rășina pentru a fixa la loc și tăiați etichetele interne la lungimea minimă
  • Prindeți picioarele pe comanda rotativă, astfel încât acestea să fie la nivelul bazei pentru a minimiza înălțimea
  • Atașați 4 fire de control. O parte a butonului este conectată la conectorul central al comutatoarelor de codare.
  • Atașați codificatorul în caz și fixați-l cu piulița sa de montare. Adăugați butonul
  • Montați regulatorul pe condensator și atașați firele de acesta la pinii de alimentare de pe modulul ESP-12F
  • Lipiți alte componente electronice pe partea din spate a modulului ESP-12F. Am folosit sârmă de cupru smalț pentru a le conecta. Pe știftul EN a fost utilizat un butuc scurt de sârmă, deoarece acesta are atașate mai multe componente.
  • Lipiți cablul la comutatorul de pornire / oprire
  • Lipirea bateriei duce la punctul de încărcare și se alimentează de la comutatorul de pornire / oprire
  • Lipire pe fir de la comutatorul de pornire / oprire la intrarea regulatorului.
  • Atașați cele 4 fire de la codificator la placa.

Rețineți că am folosit componente smd pe tot parcursul pentru a menține dimensiunea cât mai mică posibil. Dacă utilizați componente mai mari, atunci va trebui probabil să măriți înălțimea carcasei 3d. La fel dacă utilizați o baterie de dimensiuni diferite. Dimensiunile sunt ușor de reglat în fișierul SCAD.

Pasul 4: Software

Software-ul pentru acest proiect este disponibil la

Este un proiect bazat pe Arduino, deci configurați un mediu de dezvoltare Arduino esp8266. Poate doriți să setați parolele pentru WifiManager și actualizarea software-ului în fișierul ino la ceva mai sensibil.

Ar trebui să fie compilat în Arduino ESP8266 IDE și încărcat în serie în modul.

Prima utilizare va începe un punct de acces la care ar trebui să fie conectat un telefon sau o tabletă. Consultați codul pentru parolă. Browser-ul de pe telefon sau tabletă ar trebui să fie apoi utilizat pentru a accesa 192.168.4.1, ceea ce va permite selectarea SSD-ului local și a parolei. Acest lucru trebuie făcut numai o dată sau dacă se schimbă rețeaua wifi. De atunci modulul se va conecta la rețeaua WiFi locală, dacă este necesar.

Unele fișiere de asistență ar trebui, de asemenea, să fie încărcate. Acestea se află în folderul de date al git-ului. Acestea pot fi încărcate accesând ip / upload. Odată ce acestea au fost încărcate, atunci ip / edit poate fi folosit pentru a face încărcări ulterioare într-un mod mai ușor.

Pasul 5: Configurare

Configurarea este conținută în fișierul rotaryEncoderConfig.txt

Acesta are doi parametri de bază (numele gazdei și expirarea timpului de inactivitate în milisecunde, plus configurarea a până la 3 codificatoare rotative.

Deși această versiune folosește doar 1 codificator, biblioteca utilizată permite până la 3.

Fiecare codificator are o linie în fișierul de configurare cu un număr de parametri.

  • pin1, pin2, buton pinii GPIO
  • valoarea minima a codificatorului
  • valoarea maximă a codificatorului
  • valoarea poziției de pornire (ultima valoare este, de asemenea, amintită când este activată.
  • tip de acțiune de realizat 0 = Niciuna, 1 = GET web, 2 = UDP / Lightwave, 3 = MQTT
  • intervalul este durata minimă în ms între acțiuni
  • șablonul de acțiune este un șablon de bază pentru acțiune
  • par1, par2, par3, par4, par5 sunt parametri suplimentari

Șablonul de acțiune are variabile care se substituie înainte de utilizare

  • $ p Poziția rotativă
  • $ d Direcția rotativă
  • $ e numărul codificatorului (0 este primul)
  • $ l face o funcție lightwave
  • $ x, $ y, $ z, $ u, $ v substiute par1 - par5
  • $ t înlocuiește contorul de schimbare
  • $ c virgulă înlocuitoare

Pasul 6: Operațiune

După ce wifi este configurat, atunci controlul este activat făcând clic pe el într-un singur pas. Aceasta nu schimbă poziția și nu declanșează o acțiune.

De atunci, orice rotație va declanșa acțiunea configurată. Intervalul minim de acțiune va limita potențial acțiunile efectuate pe măsură ce controlul este rotit. De exemplu, dacă intervalul minim este de 2000mS, atunci o rotație rapidă poate trimite doar prima și ultima modificare. Ultima poziție va declanșa întotdeauna o acțiune, astfel încât, dacă un regulator de intensitate este controlat, valoarea acesteia va reflecta poziția finală, chiar dacă unele etape intermediare sunt ratate.

Funcționare LightwaveRF

Un exemplu este prezentat în fișierul de configurare furnizat. Acțiunea de bază este UDP către legătura Lightwaverf. IP-ul gazdei și numărul portului sunt puse în par1 și par2. Șirul Room / Device este pus în par3.

Link-ul trebuie mai întâi asociat cu link-ul pentru a-i permite să accepte comenzi de la adresa Mac a esp8266. Pentru a face acest lucru, plasați un fișier numit initLink, txt în sistemul de înregistrare și apoi trimiteți o comandă prin rotirea controlului un pas (după activare). Aceasta va trimite o comandă de asociere către link, care trebuie confirmată prin apăsarea unui buton de pe link. Fișierul initLink este șters automat.

întreținere

Dispozitivul poate fi pus într-un mod de întreținere în care nu se va opri automat, pornind cu butonul rotativ apăsat. Pentru a-l scoate din acest mod, pur și simplu opriți și reporniți din nou.

Recomandat: