Nexus Pi

NEXUS PROJECT
Raspberry Pi + Arduino Mega projekt

Okos LED
Vezérlőrendszer

Egy teljesen egyedi hardver-szoftver ökoszisztéma, amely valós idejű szenzoradatokat, hangvizualizációt és több mint 20 látványeffektet kezel egy elegáns webes felületről.

🖥 Raspberry Pi ⚙️ Arduino Mega 2560 💡 NeoPixel LED 🌡 Hőmérséklet szenzor 🎵 Hangvizualizáció
Python Flask
Serial UART
WS2812B
I2C LCD
💡
20+
Egyedi LED effekt
5
Csatlakoztatott szenzor
3D
Nyomtatott ház CraftBottal

Hogyan működik együtt?

A Pi és az Arduino folyamatos soros kommunikációban (UART) dolgozik együtt. A Pi adja a parancsokat, az Arduino hajtja végre őket a valós hardveren.

🖥
Raspberry Pi
Python · Flask webszerver
USB · UART · 9600 baud
⚙️
Arduino Mega
Hardver · Szenzorok kezelése
📡 Szenzorok · Bemenetek
🌡
NTC Termisztor
A0 pin
🎤
Mikrofon
A1 pin
☀️
LDR Fény
A2 pin
💡 Kimenetek · Látvány & Hang
💡
NeoPixel
D6 pin
📟
I2C LCD
0x27
🔔
Buzzer
D8 pin

20+ egyedi vizuális effekt

Minden effekt egyedi animációval és hanghatással rendelkezik. Vidd rá az egeret egy effektre az előnézethez!

🧘
ZEN
V23 Exkluzív
⚡
VIHAR
V23 Exkluzív
🚨
RIASZTÓ
V23 Exkluzív
🤖
ROBOT
V23 Exkluzív
📊
VU METER
Audio FX
💓
PULSE
Audio FX
🎯
CENTER
Audio FX
🪩
DISCO
Audio FX
🟩
MATRIX
Retro Game
❄️
HÓ
Retro Game
🧱
TETRIS
Retro Game
👾
PAC-MAN
Retro Game
🏓
BOUNCE
Retro Game
🎰
CASINO
Retro Game
☄️
METEOR
Retro Game
⚛️
REACTOR
Sci-Fi
☢️
NUKE
Sci-Fi
📡
SCANNER
Sci-Fi
🔴
RADAR
Sci-Fi
🚔
POLICE
Party
🔥
TŰZ
Party
💥
STROBE
Party
🎉
PARTY
Party

Flask vezérlőpult

Így néz ki a valódi vezérlőfelület böngészőből. Az alábbi egy interaktív mockup – a gombok animáltak, a szenzor adatok élnek.

http://raspberrypi.local:5000/
↻
⬡ NEXUS CONTROL v2.3
HŐMÉRSÉKLET
23.4°C
NTC · A0 · Live
RENDSZER ÁLLAPOT
CPU38%
RAM61%
DISK24%
LCD ÜZENET
LED GYŰRŰ ELŐNÉZET
— OFF —
ESEMÉNYNAPLÓ
[ — ] Rendszer elindítva
[ — ] Arduino kapcsolódva · /dev/serial0
[ — ] Flask szerver aktív · port 5000
V23 EXKLUZÍV
AUDIO FX
RETRO GAME
SCI-FI & PARTY
ALAP

Hogyan utazik egy parancs?

Válassz egy effektet, és nézd meg élőben ahogy a parancs végighalad a rendszeren – böngészőtől az LED gyűrűig.

Válassz effektet:
🌐
Böngésző
HTTP GET kérés
/set/RAINBOW
🌶
Flask szerver
Python · Raspberry Pi
ser.write(b”RAINBOW „)
⚙️
Arduino Mega
Serial1 · 9600 baud
effectRainbow();
NeoPixel Gyűrű
16× WS2812B · D6
strip.show();
Válassz effektet a szimulációhoz ↑

Kódrészletek

A rendszer kulcsfontosságú kódblokkjai – Python Flask szerver és Arduino firmware.

Python · app.py Flask végpont – effekt indítása böngészőből
# Flask route: effekt beállítása
@app.route("/set/<mode>")
def set_mode(mode):
    global current_mode
    current_mode = mode

    # Parancs küldése az Arduinonak soros porton
    if ser and ser.is_open:
        ser.write((mode + "
").encode("utf-8"))

    # Eredmény visszaadása JSON-ban
    return jsonify({
        "status": "ok",
        "mode": mode
    })

A kód ami összeköti

A rendszer szíve egy Python Flask szerver, amely bármilyen böngészőből elérhető, mobilon is.

🐍
Python 3
Fő programozási nyelv
🌶
Flask
Webes REST API szerver
🔌
PySerial
UART kommunikáció
📊
psutil
Rendszer monitoring
🧵
Threading
Párhuzamos folyamatok
📐
OpenSCAD
3D ház tervezés
🌐
Webes vezérlőpult
A Flask szerver bármely eszközről elérhető a helyi hálózaton – okostelefon, tablet, laptop. Böngésző elegendő, nincs szükség app telepítésre. A felület 15 másodpercenként automatikusan frissül és megjeleníti a szenzor adatokat, a Pi CPU/RAM/disk állapotát és az eseménynaplót.

3D nyomtatott ház

CraftBot Plus · OpenSCAD

Az összes hardver-komponens egy egyedi tervezett, 3D nyomtatott „konzol” dobozba van beépítve. A tervet OpenSCAD parametrikus CAD szoftverrel készítettük, a nyomtatás CraftBot Plus nyomtatón készült. Az eredmény egy tiszta, esztétikus ház ami elrejti a kábeleket, de mutatja a LED gyűrűt és az LCD kijelzőt.

NyomtatóCraftBot Plus
Tervező szoftverOpenSCAD
AnyagPLA filament
LED ablakDiffúzor betét · NeoPixel

Készítette

Ez a projekt két alkotó közös munkájának az eredménye.

👨‍💻
Hardver & Szoftver
Fehér Zsolt Milán
Python szerver, webes felület, Arduino firmware, 3D ház tervezés OpenSCAD-ben.
👨‍🔧
Hardver & Elektronika
Gujka Dominik
Hardver összekötés, szenzor integráció, elektronikai tervezés és kivitelezés.

Alkatrészek részletesen

Minden komponens leírása – mi az, és miért ezt választottuk a projekthez.

ARM A53 WiFi RPi Zero2W
Vezérlő · Egylapos számítógép
Raspberry Pi Zero 2 W
Kis méretű, alacsony fogyasztású Linux számítógép quad-core ARM Cortex-A53 processzorral, beépített Wi-Fi és Bluetooth modullal.
💡 Miért ezt?Elegendő teljesítmény a Python Flask szerver futtatásához, Wi-Fi-n elérhető webes felület – és kis mérete miatt beépíthető a 3D nyomtatott házba.
ATmega 2560
Mikrovezérlő
Arduino Mega 2560
Nagy teljesítményű AVR mikrovezérlő 54 digitális és 16 analóg I/O lábbal. Valós idejű hardvervezérlésre specializált.
💡 Miért ezt?A Pi nem tud közvetlenül NeoPixelt vezérelni pontos időzítéssel. Az Arduino ezt natívan kezeli, és a sok I/O láb elegendő az összes szenzorhoz.
WS2812B 16 LED
LED kimenet
NeoPixel LED Gyűrű (16×)
16 darab WS2812B RGB LED egy gyűrűbe rendezve. Minden LED egyenként, egyetlen adatvonalon programozható – tetszőleges szín és fényerő.
💡 Miért ezt?A WS2812B protokoll megbízható, széles library-támogatással rendelkezik. A gyűrű forma egyedi forgó és radar effekteket tesz lehetővé.
I2C 0x27 VCC GND SDA SCL
Kijelző
16×2 I2C LCD kijelző
Kétsoros, soronként 16 karakteres LCD kijelző I2C-bővítő modullal. Mindössze 4 vezetékkel (VCC, GND, SDA, SCL) csatlakozik.
💡 Miért ezt?Az I2C protokoll miatt csak 2 Arduino lábat foglal el a közvetlen 6–8 helyett, miközben folyamatos visszajelzést ad a rendszer állapotáról.
+ − PASSIVE BUZZER
Hangkimenet
Passzív Piezo Buzzer
Passzív zümmer, amelyet külső PWM jellel kell meghajtani. A frekvencia változtatásával különböző hangmagasságú hangokat és dallamokat lehet lejátszani.
💡 Miért ezt?Az aktív buzzerrel ellentétben a passzív típus tetszőleges hangmagasságot tud megszólaltatni – ezért képes R2D2 dallamokat és Pac-Man jingle-t játszani.
NTC 10kΩ VCC A0
Hőmérséklet szenzor
NTC Termisztor (10kΩ)
Hőmérsékletfüggő ellenállás – melegítésre csökken az ellenállása. Feszültségosztóba kötve az Arduino A0 analóg lábán mérhető.
💡 Miért ezt?Olcsó, egyszerű, nincs szükség speciális library-re. Szoba-hőmérsékletre elegendő pontossággal rendelkezik, direktben köthető az analóg lábra.
MAX 4466 V G OUT
Hangszenzor
MAX4466 Mikrofon modul
Elektret mikrofon beépített erősítővel (MAX4466 IC). Állítható erősítéssel analóg feszültség-kimenetet ad az Arduino A1 analóg bemenetére.
💡 Miért ezt?Analóg amplitúdó-értéket ad vissza, amivel a hangerő intenzitása mérhető – ez szükséges a VU méterhez, Pulse és Disco effektekhez.
LDR Fényfüggő ellenállás
Fényszenzor
LDR (Fényfüggő ellenállás)
Fotorezisztor – megvilágítás hatására csökken az ellenállása. Feszültségosztóba kötve az Arduino A2 lábán méri a környezeti fényszintet.
💡 Miért ezt?Rendkívül egyszerű és olcsó az automatikus éjszakai módhoz. Nincs szükség extra library-re, az analóg értékből meghatározható a sötétség küszöbértéke.
+ −
Összekötő panel
Breadboard (720 pont)
Forrasztás nélküli próbapanel, amelyen az alkatrészek és jumper kábelek egyszerűen csatlakoztathatók. Két tápellátás-sín és egy középső elválasztó csatornával.
💡 Miért ezt?Lehetővé teszi az áramkör gyors, forrasztás nélküli összerakását és módosítását. Prototípus fázisban rugalmasságot biztosít az elrendezés változtatásához.

Raspberry Pi Zero 2 W — Lábkiosztás

A 40-pin GPIO fejlécből 3 láb van bekötve a projektben. Vidd az egeret egy pinre a részletekért.

UART TX/RX
GND (Föld)
Nem használt
RPi Zero 2 W WiFi/BT ARM A53 6 8 10 1 GND · Pin 6 UART TX · Pin 8 UART RX · Pin 10 → Arduino Mega USB soros (9600 baud) 37 pin — nem használt
Pin 6 — GND
Közös föld az Arduinohoz
Pin 8 — GPIO14 (TX)
UART adás → Arduino RX0
Pin 10 — GPIO15 (RX)
UART vétel ← Arduino TX0

Arduino Mega 2560 — Lábkiosztás

Az Arduino Mega 2560 bekötött lábai a projektben. Vidd az egeret egy pinre a részletekért.

UART Serial1 (Pi)
I2C (LCD)
Digitális kimenet
Analóg bemenet
Tápellátás
Föld (GND)
Nem használt
ARDUINO Mega 2560 ATmega 2560 USB-B → Raspberry Pi PWR 6 8 18 19 20 21 Digitális tűk (0 – 53) Analóg tűk (A0 – A15) A0 A1 A2 5V GND GND D6 NeoPixel DI lila D8 Buzzer S sárga TX1 (18) → Pi Pin 10 RX1 (19) ← Pi Pin 8 SDA (20) LCD SDA narancs SCL (21) LCD SCL sárga A0 Hőszenzor S piros 50 nem használt láb
D6 — NeoPixel DI
lila kábel
D8 — Buzzer S
sárga kábel
TX1 (18) → Pi Pin 10
+ feszültségosztó rezisztor
RX1 (19) ← Pi Pin 8
közvetlen kapcsolat
SDA (20) — LCD
narancs kábel
SCL (21) — LCD
sárga kábel
A0 — Hőszenzor
piros kábel
A1 — Mikrofon
zöld kábel
A2 — LDR szenzor
zöld kábel

Bekötési táblázat

Pontosan melyik alkatrész melyik lábra csatlakozik, és milyen színű kábellel.

⚡ Breadboard tápellátás (közös sín)
Arduino 5V → Breadboard piros sín
Arduino GND → Breadboard kék sín
Alkatrész Láb Cél Kábel Megjegyzés
NeoPixel Gyűrű DI → D6 Arduino
Lila
PWM adat
NeoPixel Gyűrű 5V → 5V Arduino
Szürke
Direkt Arduino 5V tápra
NeoPixel Gyűrű GND → GND Arduino
Fehér
DO láb lóg, nincs kötve
I2C LCD VCC → Breadboard piros sín
Piros
5V a breadboardon át
I2C LCD GND → Breadboard kék sín
Zöld
I2C LCD SDA → Pin 20 Arduino
Narancs
I2C cím: 0x27
I2C LCD SCL → Pin 21 Arduino
Sárga
Hőszenzor modul − → Breadboard kék sín
Fekete
Hőszenzor modul S → A0 Arduino
Piros
Analóg jel
Hőszenzor modul 5V → Breadboard piros sín
Piros
Mikrofon modul + → Breadboard piros sín
Lila
5V táp
Mikrofon modul G → Breadboard kék sín
Kék
Mikrofon modul A0 → A1 Arduino
Zöld
Analóg hang jel
LDR szenzor S → A2 Arduino
Zöld
Analóg fény jel
LDR szenzor 5V → Breadboard piros sín
Sárga
LDR szenzor − → Breadboard kék sín
Narancs
Passzív Buzzer S → D8 Arduino
Sárga
PWM jel
Passzív Buzzer 5V → Breadboard piros sín
Narancs
Passzív Buzzer − → Breadboard kék sín
Piros
Raspberry Pi Pin 8 (TXD) → RX1 (19) Arduino
Szürke?
Közvetlen (Pi 3.3V ↔ Arduino 5V – ld. megjegyzés)
Raspberry Pi Pin 10 (RXD) ← TX1 (18) Arduino
—
Breadboardon át + feszültségosztó rezisztor (5V→3.3V)

Raspberry Pi · Arduino Mega · NeoPixel · Flask · OpenSCAD

📡
UART – Soros kommunikáció
Ipari és terepi buszok

Az UART (Universal Asynchronous Receiver-Transmitter) az egyik legelterjedtebb soros adatátviteli protokoll – ezt használjuk a Pi és az Arduino közötti kommunikációhoz.

9600 baud TX → RX Serial1
Tudj meg többet az UART-ról
zsottiftibi.hu · Ipari buszok
→