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
❄️
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