Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Ymmärrä järjestelmä
- Vaihe 2: WebSocketServerin kirjoittaminen
- Vaihe 3: Määritä sarjakomentojen protokolla
Video: LightMeUp! a Reaaliaikainen ristialustainen LED-nauhaohjaus: 5 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
LightMeUp! on järjestelmä, jonka keksin RGB-LED-nauhan ohjaamiseen reaaliajassa pitäen kustannukset alhaisina ja suorituskyvyn korkeana.
Palvelin on kirjoitettu Node.js-muodossa ja sen vuoksi cross-platformable.
Esimerkissäni käytän Raspberry Pi 3B: tä pitkäaikaiseen käyttöön, mutta Windows -tietokonettani esittelyn ja virheenkorjauksen vuoksi.
4-napaista nauhaa ohjaa Arduino Nano -tyyppikortti, joka suorittaa sarjaan annetut komennot lähettää PWM-signaaleja kolmelle transistorille, jotka kytkevät +12 VDC: n nauhan vastaavaan värinastaan.
LightMeUp! järjestelmä tarkistaa myös oman lämpötilan, kun se on yli 60 ° C (140 ° F), se käynnistää kaksi koteloon rakennettua 12 VDC: n tietokoneen tuuletinta jäähtyäkseen ja pidentää piirin käyttöikää.
Toinen LightMeUp -ominaisuus! on valaista Bombay-Sapphire Gin -pullo, mutta se ei ole tämän ohjeen painopiste.
Nauti lukemisesta:)
Tarvikkeet
- Arduino Nano (tai mikä tahansa muu ATmega328 / korkeampi mikro-ohjain)
- Raspberry Pi 3 Model B, johon on asennettu Node.js (tai mikä tahansa muu tietokone)
- 12 V RGB 4-nastainen LED-nauha
- 12V 3A virtalähde
- Hyppyjohdot (uros-uros, jos käytät leipälautaa, tietysti)
- Leipälauta (valinnainen)
- 2 12 V DC -tietokoneen tuuletinta (valinnainen)
- 3x TIP120 Darlington -transistori jäähdytyselementillä (4, jos haluat sisällyttää jäähdytyspuhaltimet)
- 2 tilan LEDiä punainen ja vihreä (valinnainen)
- 6, 7K NTC lämpötilapohjainen vastus + 6,7K vastus (valinnainen)
- USB-Mini-USB 2.0 -kaapeli (Raspberry Pi kommunikoi Arduinon kanssa)
- Ulkoisesti toimiva USB-keskitin (valinnainen, vain Raspberry Pi)
Vaihe 1: Ymmärrä järjestelmä
LightMeUp! perustuu hyvin yksinkertaiseen elektroniseen piiriin.
Meillä on jonkinlainen tietokone (tässä tapauksessa Raspberry Pi), joka kommunikoi sarjaan mikrokorttimme kanssa. Tämä kortti suorittaa sitten tiettyjä sarjakomentoja, kuten "RGB (255, 255, 255)", jotka muuttavat LED-nauhan valkoiseksi.
Kun olemme saaneet kolme arvoa PUNAINEN, VIHREÄ ja SININEN, jotka ovat välttämättömiä 4-nastaiselle LED-nauhallemme, suoritamme analogWrite (nasta, arvo) voidaksemme toimittaa TIP120-transistorimme PWM-signaalilla.
Tämän PWM -signaalin avulla transistori voi vaihtaa vastaavan värisen nastan, johon keräilijä on kytketty maahan, tietyssä määrin tai kokonaan päälle / pois. Kyllä, paljon "to" -merkkejä:)
Sekoittamalla kolme transistorilähtöä LED -nauhojen värinappeihin voimme luoda pohjimmiltaan haluamamme värin!
Nyt tämän ymmärryksen avulla voimme hyökätä tämän projektin suurimpaan haasteeseen, websocketserveriin ja sen sarjayhteyteen Arduinoomme.
Vaihe 2: WebSocketServerin kirjoittaminen
Nyt meidän on luotava erityinen verkkopalvelin, jonka avulla voimme siirtää tietoja edestakaisin ilman päivittämistä, jotta voimme saavuttaa reaaliaikaisen LED -nauhaohjauksen.
Huomaa, että reaaliaikainen kommunikointi on tietysti mahdotonta, sillä on aina vähintään muutaman millisekunnin viive, mutta ihmissilmälle se on huomattavaa reaaliajassa.
Tämä voidaan helposti saavuttaa käyttämällä socket.io -kirjastoa, jos käytät Node.js -kirjainta kuten minä. Tietysti voit aina pitää kiinni suosikkiohjelmointikielestäsi.
Käsittelemme verkkoliitäntäyhteyttä, jonka avulla voimme siirtää syöttötietoja, kuten minkä värin haluat asettaa LED-nauhan, tai tilatietoja, kuten "LED ON", kaksisuuntaisesti ilman päivitystä.
Toinen erittäin tärkeä ominaisuus, jonka palvelimella pitäisi olla, mutta ei tarvitse, on yksinkertainen kirjautuminen. Perustin kirjautumiseni pois yksinkertaisesta käyttäjätunnus- ja salasanakentästä. Nämä tiedot lähetetään sitten palvelimen /kirjautumisreitille, joka sitten vertaa käyttäjätunnusta käyttäjäluetteloon (.txt-tiedosto) ja sitä vastaavaan salasanaan SHA256-salatussa muodossa. Et halua naapureidesi sekoittavan LED -nauhaasi, kun nautit suosikkijuomastasi mukavimmalla istuimellasi, eikö?
Nyt tulee palvelimen sydän, sarjaliikenne.
Palvelimesi on voitava kommunikoida sarjassa - Node.js -sivustossa tämä voidaan saavuttaa avaamalla portti "serialport" -kirjaston avulla. Mutta ensin määritä arduino -porttisi nimi tietokoneessa, joka isännöi palvelinta. Käyttöjärjestelmästä riippuen porteilla on eri nimet, esim. Windowsissa nämä portit on nimetty "COMx" -portteiksi, kun taas linuxissa niiden nimi on "/dev/ttyUSBx", missä x on USB -portin numero.
Vaihe 3: Määritä sarjakomentojen protokolla
Yllä olevassa kuvassa näet todellisen Arduino IDE -koodin, joka vastaa RGB -ohjauksesta. Tämän vaiheen tavoitteena on saada itse kirjoittamasi palvelin ja Arduino-kortti puhumaan keskenään onnistuneesti.
Kun olet avannut sarjaporttisi onnistuneesti, sinun on voitava lähettää komentoja taululle, joka huolehtii toiveistasi. Jos esimerkiksi vedämme sormen HTML -verkkosivun värinvalitsimen yläpuolelle, RGB -koodi lähetetään palvelimelle, joka lähettää sen sitten Arduino -laitteellesi, jotta se käsittelee asetetut arvot.
Käytin jscoloria, heillä on loistava toteutus korkealaatuisesta värinvalintaelementistä, joka omistaa "onFineChange" -tapahtuman, jonka avulla värinvalitsimen prosessitiedot saadaan heti, kun niiden arvot muuttuvat.
Suositeltava:
Reaaliaikainen kaivon vesimittari: 6 vaihetta (kuvilla)
Reaaliaikainen kaivojen vedenpinnan mittari: Nämä ohjeet kuvaavat, kuinka rakentaa edullinen, reaaliaikainen vedenpinnan mittari kaivettuja kaivoja varten. Vedenkorkeusmittari on suunniteltu roikkumaan kaivetun kaivon sisällä, mittaamaan vedenpinta kerran päivässä ja lähettämään tiedot WiFi- tai matkapuhelinyhteydellä
Reaaliaikainen kaivon veden lämpötila, johtavuus ja vedenpinnan mittari: 6 vaihetta (kuvilla)
Reaaliaikainen kaivon veden lämpötilan, johtavuuden ja vedenpinnan mittari: Nämä ohjeet kuvaavat kuinka rakentaa edullinen, reaaliaikainen vesimittari lämpötilan, sähkönjohtavuuden (EC) ja vedenpinnan valvontaan kaivetuissa kaivoissa. Mittari on suunniteltu roikkumaan kaivetun kaivon sisään, mittaamaan veden lämpötilaa, EY
Reaaliaikainen MPU-6050/A0-dataloggeri Arduinolla ja Androidilla: 7 vaihetta (kuvilla)
Reaaliaikainen MPU-6050/A0-dataloggeri Arduinolla ja Androidilla: Olen ollut kiinnostunut käyttämään Arduinoa koneoppimiseen. Ensinnäkin haluan rakentaa reaaliaikaisen (tai melko lähellä sitä) datanäytön ja kirjaajan Android -laitteella. Haluan kaapata kiihtyvyysmittarin tiedot MPU-6050: stä, joten suunnittelen
Reaaliaikainen kasvojentunnistus: kokonaisvaltainen projekti: 8 vaihetta (kuvilla)
Reaaliaikainen kasvojentunnistus: kokonaisvaltainen projekti: Viimeisessä OpenCV: tä tutkivassa opetusohjelmassamme opimme AUTOMATIC VISION OBJECT TRACKING. Nyt käytämme PiCam-kameraamme kasvojen tunnistamiseen reaaliajassa, kuten alla näet: Tämä projekti tehtiin tämän upean " Open Source Computer Vision Library & qu
Kryptovaluutan tunnus / reaaliaikainen Youtube -tilaajalaskuri: 6 vaihetta (kuvilla)
Cryptocurrency Ticker / Realtime Youtube Subscriber Counter: Pienikokoinen LED -näyttöyksikkö, joka toimii kryptovaluuttamerkkinä ja toimii reaaliaikaisena YouTube -tilaajalaskurina. luoda reaaliaikainen su