Obsah:

Rozsviť mě! Real-time cross-platformed LED Strip Control: 5 kroků (s obrázky)
Rozsviť mě! Real-time cross-platformed LED Strip Control: 5 kroků (s obrázky)

Video: Rozsviť mě! Real-time cross-platformed LED Strip Control: 5 kroků (s obrázky)

Video: Rozsviť mě! Real-time cross-platformed LED Strip Control: 5 kroků (s obrázky)
Video: CÓMO SE CONSTITUYE UNA CELDA SOLAR 2024, Listopad
Anonim
Rozsviť mě! Real-time cross-platformed LED Strip Control
Rozsviť mě! Real-time cross-platformed LED Strip Control
Rozsviť mě! Real-time cross-platformed LED Strip Control
Rozsviť mě! Real-time cross-platformed LED Strip Control
Rozsviť mě! Real-time cross-platformed LED Strip Control
Rozsviť mě! Real-time cross-platformed LED Strip Control

Rozsviť mě! je systém, který jsem vynalezl pro ovládání RGB LED pásku v reálném čase při zachování nízkých nákladů a vysokého výkonu.

Server je napsán v Node.js, a proto je možné jej použít pro různé platformy.

V mém příkladu používám Raspberry Pi 3B pro dlouhodobé použití, ale můj Windows PC kvůli demonstraci a ladění.

4pinový pásek je řízen deskou Arduino Nano, která provádí sériově zadávané příkazy pro odesílání signálů PWM na tři tranzistory přepínající +12VDC na odpovídající barevný kolík pásu.

LightMeUp! systém také kontroluje vlastní teplotu, jakmile je nad 60 ° C (140 ° F), zapne dva počítačové ventilátory 12VDC zabudované v pouzdře, aby se ochladily a prodloužily životnost obvodu.

Další funkce LightMeUp! je rozsvítit láhev Gomb Bombay-Sapphire, ale to není cílem tohoto Instructable.

Užijte si čtení:)

Zásoby

  • Arduino Nano (nebo jakýkoli jiný mikrokontrolér ATmega328 / vyšší)
  • Raspberry Pi 3 Model B s nainstalovaným Node.js (nebo jiným počítačem)
  • 12V RGB 4pinový LED pásek
  • Napájení 12V 3A
  • Propojovací kabely (samec-samec, pokud samozřejmě používáte prkénko)
  • Breadboard (volitelně)
  • 2 počítačové ventilátory 12V DC (volitelně)
  • 3x TIP120 Darlington Transistor s chladičem (4, pokud chcete zahrnout chladicí ventilátory)
  • 2 stavové LED diody červená a zelená (volitelně)
  • 6, 7K NTC teplotní odpor + 6, 7K odpor (volitelně)
  • Datový kabel USB-Mini na USB 2.0 (pro komunikaci Raspberry Pi s Arduino)
  • Externě napájený rozbočovač USB (volitelně, pouze pro Raspberry Pi)

Krok 1: Porozumění systému

Pochopte systém
Pochopte systém

Rozsviť mě! je založen na velmi jednoduchých elektronických obvodech.

Máme nějaký počítač (v tomto případě Raspberry Pi), který sériově komunikuje s naší deskou mikrokontroléru. Tato deska poté provede specifické sériové příkazy, jako je „RGB (255, 255, 255)“, které by změnily naši LED pásku na bílou.

Jakmile získáme tři hodnoty ČERVENÉ, ZELENÉ a MODRÉ potřebné pro náš 4pinový LED pásek, spustíme analogWrite (pin, hodnota), abychom dodali tranzistoru TIP120 signál PWM.

Tento signál PWM umožňuje tranzistoru přepnout odpovídající barevný kolík, ke kterému je kolektor připojen k zemi, do určité míry nebo zcela zapnut / vypnut. Ano, hodně "to" s:)

Smícháním výstupů tří tranzistorů s barevnými piny LED pásků můžeme vytvořit v podstatě libovolnou barvu, kterou chceme!

S tímto porozuměním můžeme zaútočit na největší výzvu tohoto projektu, websocketový server a jeho sériové připojení k našemu Arduinu.

Krok 2: Psaní serveru WebSocketServer

Psaní serveru WebSocketServer
Psaní serveru WebSocketServer

Nyní musíme vytvořit specifický druh webového serveru, který nám umožní přenášet data tam a zpět bez jednoho obnovení, abychom dosáhli ovládání LED pásku v reálném čase.

Vezměte prosím na vědomí, že komunikace v reálném čase samozřejmě není možná, vždy bude existovat minimálně několik milisekund zpoždění, ale pro lidské oko je to v reálném čase značné.

Toho lze snadno dosáhnout pomocí knihovny socket.io, pokud používáte Node.js jako já. Vždy se však můžete samozřejmě držet svého oblíbeného programovacího jazyka.

Budeme se zabývat připojením websocket, které nám umožňuje obousměrně přenášet vstupní data, jako je barva, na kterou chcete nastavit LED pásek, nebo stavová data jako „LED ON“bez obnovení.

Další velmi důležitou funkcí, kterou by server měl mít, ale nemusí, je jednoduché přihlášení. Přihlašování jsem založil na jednoduchém poli uživatelského jména a hesla. Tyto informace jsou poté zaslány na /login trasu serveru, který pak porovná uživatelské jméno se seznamem uživatelů (soubor.txt) a jeho odpovídající heslo v jeho zašifrované podobě SHA256. Nechcete, aby si vaši sousedé pohrávali s LED páskem, zatímco si na svém nejpohodlnějším sedadle vychutnáte svůj oblíbený nápoj, že?

Nyní přichází srdce serveru, sériová komunikace.

Váš server musí být schopen komunikovat sériově - v Node.js toho lze dosáhnout otevřením portu pomocí knihovny „serialport“. Nejprve však určete název portu arduino v počítači hostujícím server. V závislosti na vašem operačním systému budou mít porty různá jména, např. ve Windows jsou tyto porty pojmenovány „COMx“porty, zatímco v Linuxu jsou pojmenovány „/dev/ttyUSBx“, kde x je číslo USB portu.

Krok 3: Vytvořte protokol sériových příkazů

Vytvořte protokol sériových příkazů
Vytvořte protokol sériových příkazů

Na obrázku výše vidíte skutečný kód Arduino IDE zodpovědný za ovládání RGB. Cílem tohoto kroku je, aby si váš server a deska Arduino navzájem úspěšně promluvily.

Jakmile úspěšně otevřete sériový port, musíte být schopni odesílat příkazy na desku, která se stará o vaše přání. Pokud například nakreslíme prst nad výběr barev na webové stránce HTML, kód RGB by měl být odeslán na server, který jej poté odešle vašemu Arduinu, aby zpracoval nastavené hodnoty.

Použil jsem jscolor, mají skvělou implementaci vysoce kvalitního prvku pro výběr barev, který vlastní událost s názvem „onFineChange“, která vám umožní data procesu z nástroje pro výběr barev, jakmile se změní hodnoty.

Doporučuje: