Tartalomjegyzék:

Arduino projekt: Elektronika vezérlése az interneten a Nodejs + SQL adatbázis és webhely használatával: 6 lépés
Arduino projekt: Elektronika vezérlése az interneten a Nodejs + SQL adatbázis és webhely használatával: 6 lépés

Videó: Arduino projekt: Elektronika vezérlése az interneten a Nodejs + SQL adatbázis és webhely használatával: 6 lépés

Videó: Arduino projekt: Elektronika vezérlése az interneten a Nodejs + SQL adatbázis és webhely használatával: 6 lépés
Videó: CS50 2013 - Week 9 2024, November
Anonim
Arduino projekt: Elektronika vezérlése az interneten keresztül a Nodejs + SQL adatbázis és webhely használatával
Arduino projekt: Elektronika vezérlése az interneten keresztül a Nodejs + SQL adatbázis és webhely használatával
Arduino projekt: Elektronika vezérlése az interneten keresztül a Nodejs + SQL adatbázis és webhely használatával
Arduino projekt: Elektronika vezérlése az interneten keresztül a Nodejs + SQL adatbázis és webhely használatával
Arduino projekt: Elektronika vezérlése az interneten keresztül a Nodejs + SQL adatbázis és webhely használatával
Arduino projekt: Elektronika vezérlése az interneten keresztül a Nodejs + SQL adatbázis és webhely használatával

Projekt: Mahmed.tech

Készítés dátuma: 2017. július 14

Nehézségi szint: Kezdő némi programozási ismerettel.

Hardverkövetelmény:

- Arduino Uno, Nano, Mega (szerintem a legtöbb MCU soros kapcsolattal működik)

- Egy LED és áramkorlátozó ellenállás. Használja ezt a számológépet, ha nem biztos benne: Ohms Law Calculator

- 10K potenciométer.

Szoftverkövetelmény:

- Arduino IDE

- Node. JS (ez egy szoftver a számítógépen, nagyon egyszerűen telepíthető)

- MySQL szerver (a legegyszerűbb módja az olcsó webtárhely használata. Ingyenes domainneveket is kaphat)

Használt programozási és szkriptnyelv:

Arduino (módosított C/C ++), JavaScript (Nodejs), PHP, HTML és CSS

Ez a projekt dióhéjban: Arduino mikrokontroller vezérlése webes felületről. Ezért vezéreljen minden elektromos eszközt bárhonnan az interneten keresztül. Szerettem volna megérteni a programozást és a webfejlesztést, és mi lenne ennek jobb módja, mint egy egyszerű, de hatékony projekt. A hardver minimális szinten van, így inkább a szoftverekre koncentrálhatok. Ezért egy egyszerű LED, edény beállítással mentem. Az edény adatokat küld, a led pedig fogad (PWM fényerő). A NodeJS használatával a soros adatokat kiolvasták (potenciométer érték) és írták (led fényerő). Ennek a projektnek a bonyolult része a bemeneti adatok beszerzése egy távoli helyről (webszerverről)

1. lépés: Szoftverlogika: Rendszer architektúra

Szoftver logika: Rendszer architektúra
Szoftver logika: Rendszer architektúra

Potenciométer adatok:

Ez az Arduino -nál kezdődik, az olvasási pot értéke soros nyomtatás. Ezúttal azonban a Node. JS -t fogjuk használni az érték olvasásához. A NodeJS megnyitja a soros kommunikációt ugyanahhoz a porthoz, amelyhez az Arduino csatlakozik, és leolvassa a nyomtatott pot értékét. A NodeJS ezután feltölti az adatokat egy távoli SQL adatbázisba, ez történik minden alkalommal, amikor új pot értéket nyomtat. Egy weboldal csatlakozik az SQL adatbázis beállítási intervallumához, és lekéri a potenciométer értékét. Ez akkor megjelenik a weboldalon.

Led adatok:

A ledek esetében a PWM fényerejét a felhasználó egy távoli weboldalon állítja be, így útja a spektrum másik végén kezdődik. A bemeneti adatokat egy SQL adatbázisba menti, minden beállított időközönként ellenőrzi, hogy az adatbázis nem változik -e a led PWM -ben, ezt a NodeJS végzi. Ha az érték eltér az előzőtől, akkor az új értéket soros buszon keresztül elküldi az Arduino -nak. Az Arduino megváltoztatja a led kimeneti PWM értékét, hogy megváltoztassa a fényerőt.

Az Ohms -törvény számológépe a V = IR és P = IV = I²R = V²/R képletet használja ehhez a projekthez kék ledet használok. Ez azért fontos, mert a fényfrekvencia növekedésével a feszültségcsökkenés is növekszik. Mivel a kék fénynek nagyobb a frekvenciája, mint egy piros LED -nek. Ez magasabb előremenő feszültséget jelent. A működési tartomány a gyártótól, típustól és mérettől függően változhat. A beállításhoz 220 Ω -os ellenállást használtam sorba, negatív a földhöz és pozitív az Arduino PWM csapjához. Az edényt analóg tűhöz kötötték. Az 5VCC egyik vége GND, a másik és a középső csap analóg tűhöz van csatlakoztatva (az én esetemben A0).

2. lépés: 1. lépés: Hardvervezetékek

1. lépés: Hardver huzalozása
1. lépés: Hardver huzalozása

Ez nagyon egyszerű: Csatlakoztassa sorban az áramkorlátozó ellenállást a LED -hez, és győződjön meg arról, hogy a megfelelő irányban vezet. Az egyik pont a GND, míg a másik vég az Arduino csap. A beállításhoz a 12 -es tűt használtam a LED -hez és az A7 -et a Pot -hoz. Nincs vázlatom, mert nagyon egyszerű az áramköre. Viszont ezt találtam a neten (kép)

3. lépés: 2. lépés: Arduino

Először a ledet és az edényt ellenőrizték, hogy a várt módon működnek -e. Ezt egy egyszerű program leállította, ahol a pot értéke vezérli a ledet. A constrain függvénnyel módosítottam a pot tartományt 0 -tól 1023 -ig 0 -ról 255 -re, de az egyszerű /4 is működik. A pot értékét úgy simítottuk ki, hogy 10 egymást követő leolvasásból vettük az átlagot, ez a tüskék eltávolítása. (Ez a simítás azonban problémákat okozott a NodeJS -ben, ezért ezt a projekt későbbi szakaszában eltávolítottuk - bővebben erről)

Arduino kód

A következő lépés az, hogy a felhasználó bevigye az Arduino ide által biztosított soros monitor ablakokat a fényerő beállításához. Ehhez a serial.parseInt () értéket kell használni, amely egész értéket vesz fel, és figyelmen kívül hagyja a karakterláncot. Ezenkívül hibakeresést is hozzáadnak a kódhoz. A PWM érték érvényes tartománya 0 - 255, amikor a felhasználó> 255 értéket ír be, akkor a 255 értéket rendeli hozzá, és ha a felhasználó értéket ad meg, vagy <+/- 5, akkor ezt azért tettem, hogy stabilabb legyen az érték, mivel az ingadozás volt. Miért ez nagy probléma az SQL frissítésével kapcsolatban, erről később.

4. lépés: 3. lépés: NodeJS

Nem fogom megmutatni, hogyan kell beszerezni és beállítani az SQL szervert. Rengeteg oktatóanyag létezik.

A NodeJS programnak három fő aspektusa van:

Olvassa el a soros adatokat

Soros adatok írása

Frissítse az SQL adatbázist

A NodeJS -en belüli soros kapcsolat létrehozásához le kell tölteni a serialport nevű modult, amelyet az npm paranccsal lehet megtenni. Nyissa meg a CMD -t azon a mappán, ahol a NodeJS programot tárolni fogja, és írja be a következőt: npm install serialport Az SQL modult is telepíteni kell, hogy csatlakozni tudjon az sql adatbázishoz: npm install mysql NodeJS - Soros port Az első lépés a NodeJS használatával program a kinyomtatott adatok olvasása és a pwm fényerő elküldése az Arduino számára. Ez úgy történt, hogy megnyitotta a soros csatlakozást ugyanazon a braudráton és porton. Miután létrejött a kapcsolat, elolvastam a bejövő üzeneteket, és kinyomtattam a konzol ablakára. Probléma merült fel, amikor megpróbáltam írni a pwm értéket a fényerő szabályozására.

Folyamatosan hibákat dobott: Port nem nyitott, az első megoldásom az volt, hogy meghívom az írási funkciót, amikor bejövő adatok vannak. Ez azonban rossz javítás volt, és nagyon elégedetlen voltam a megoldással, annak ellenére, hogy működött, csak akkor küldött, amikor az edény értékét megváltoztatták. A soros modul példakódja sem működik, ha ugyanazt a hibát okozza. Később megtudtam, hogy a program megpróbálta végrehajtani az írási funkciót a port megnyitása nélkül, ami ezt a hibát eredményezte. Ezt a problémát a setInterval () függvény segítségével oldottam meg

NodeJS - MySQL A MySQL könyvtárat használtuk (npm install MySQL) az SQL adatbázishoz való csatlakozáshoz, mivel a távoli kiszolgáló a szerver IP -címét használta a localhost helyett.

A var con a kapcsolati információkat JSON formátumban tárolja, miután a kapcsolat sikeresen létrejött, az adatbázis lekérdezhető. 2 függvény jött létre, az egyik a táblázat frissítésére, a másik kiválasztása az SQL lekérdezést felvevő paraméterekkel. A frissítési tábla meghívásra kerül, amikor új pot érték érkezik, és a fényerő -ellenőrző lekérdezés rendszeresen fut.

NodeJSCode Link

5. lépés: 4. lépés: a webes felület

4. lépés: A webes felület
4. lépés: A webes felület

Webes felület

A fő weboldal PHP nyelven íródott, mivel már volt néhány tapasztalatom a CO323 adatbázisokból és az egyetemi webmodulból. Az SQL -adatok megjelenítéséhez HTML táblát és űrlapot használtak.

PHP SQL hozzáférési kód: Link Görgessen a webes felület szakaszhoz.

HTML és CSS * Javascript Webapage Code: Link Görgessen lefelé

Végső weboldal

Ajánlott: