Sommario:
- Fase 1: Logica del software: architettura del sistema
- Passaggio 2: Passaggio 1: cablaggio hardware
- Passaggio 3: Passaggio 2: Arduino
- Passaggio 4: Passaggio 3: NodeJS
- Passaggio 5: Passaggio 4: l'interfaccia Web
- Passaggio 6: risultato
Video: Progetto Arduino: controllo dell'elettronica su Internet utilizzando Nodejs + database SQL e sito Web.: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Progetto di: Mahmed.tech
Data di realizzazione: 14 luglio 2017
Livello di difficoltà: Principiante con alcune conoscenze di programmazione.
Requisiti hardware:
- Arduino Uno, Nano, Mega (penso che la maggior parte degli MCU con la connessione seriale funzionerà)
- LED singolo e resistore di limitazione di corrente. Usa questa calcolatrice se non sei sicuro: Calcolatrice di legge di Ohm
- Potenziometro 10K.
Requisiti software:
- Arduino IDE
- Node. JS (questo è un software su un computer, molto semplice da installare)
- MySQL Server (il modo più semplice che ho trovato è usare un web hosting economico. Puoi anche ottenere nomi di dominio gratuiti)
Linguaggio di programmazione e scripting utilizzato:
Arduino (C/C++ modificato), JavaScript (Nodejs), PHP, HTML e CSS
IntroduzioneQuesto progetto in poche parole: Controllo di un microcontrollore Arduino da un'interfaccia web. Quindi controlla qualsiasi dispositivo elettrico da qualsiasi luogo con Internet. Volevo ampliare la mia comprensione della programmazione e dello sviluppo web e quale modo migliore per farlo se non realizzare un progetto semplice ma efficace. L'hardware è ridotto al minimo, quindi ho potuto concentrarmi maggiormente sul software. Quindi sono andato con un semplice LED, configurazione del vaso. Il pot invierà i dati e il led riceverà (luminosità PWM). Utilizzando NodeJS sono stati letti i dati seriali (valore potenziometro) e scritti (luminosità led). La parte difficile di questo progetto è stata ottenere dati di input da una posizione remota (server web)
Fase 1: Logica del software: architettura del sistema
Dati del potenziometro:
Questo inizia da Arduino, il valore del piatto di lettura è la stampa seriale. Tuttavia, questa volta utilizzeremo Node. JS per leggere il valore. NodeJS aprirà la comunicazione seriale alla stessa porta a cui è connesso Arduino e leggerà il valore del piatto stampato. NodeJS caricherà quindi i dati su un database SQL remoto, questo accadrà ogni volta che viene stampato un nuovo valore del piatto. Una pagina web si collegherà all'intervallo impostato del database SQL e recupererà il valore del potenziometro. Questo verrà quindi visualizzato sulla pagina web.
Dati principali:
Per il led la luminosità PWM sarà impostata dall'utente su una pagina web remota, quindi il suo viaggio inizia all'estremità opposta dello spettro. I dati di input vengono salvati in un database SQL, ogni intervallo impostato il database viene controllato per un cambiamento nel led PWM, questo viene fatto da NodeJS. Se il valore è diverso dal valore precedente, il nuovo valore verrà inviato ad Arduino tramite un bus seriale. L'Arduino cambia il valore PWM di uscita del led per cambiarne la luminosità.
Il calcolatore della legge di Ohm utilizza la formula V = IR e P = IV = I²R = V²/R Per questo progetto, utilizzerò un led blu. Questo è importante perché all'aumentare della frequenza della luce aumenta anche la caduta di tensione. Poiché la luce blu ha una frequenza più alta rispetto a qualcosa come un led rosso. Ciò significa una tensione diretta più elevata. A seconda della marca, del tipo e delle dimensioni, l'intervallo di lavoro varierà. Per la mia configurazione, ho usato un resistore da 220 in serie, negativo a terra e positivo a un pin PWM su un Arduino. Il potenziometro era collegato a un pin analogico. Con 5VCC un'estremità GND l'altra e il pin centrale collegato a un pin analogico (A0 nel mio caso).
Passaggio 2: Passaggio 1: cablaggio hardware
Questo è molto semplice: basta collegare il resistore di limitazione della corrente in serie con il LED, assicurarsi che il LED sia corretto. Un punto andrà a GND mentre un'altra estremità andrà al pin Arduino. Per la mia configurazione, ho usato il pin 12 per il led e A7 per il Pot. Non ho uno schema poiché il suo circuito molto semplice. Tuttavia, l'ho trovato online (immagine)
Passaggio 3: Passaggio 2: Arduino
Per prima cosa, il led e il piatto sono stati controllati se stavano funzionando come previsto. Questo è stato risolto da un semplice programma in cui il valore del piatto controlla il led. Ho usato la funzione constrain per cambiare l'intervallo di pot da 0 a 1023 a 0 a 255, ma funziona anche un semplice /4. Il valore del piatto è stato livellato prendendo la media di 10 letture consecutive, questo per rimuovere i picchi. (Tuttavia, questo livellamento ha causato problemi con NodeJS, quindi questo è stato rimosso in seguito nel progetto - altro su questo)
Codice Arduino
Lettura/Scrittura seriale Il passaggio successivo consiste nel prendere l'input dell'utente tramite le finestre del monitor seriale fornite dall'ide Arduino per impostare la luminosità. Per fare ciò, viene utilizzato serial.parseInt() che accetta un valore intero e ignora la stringa. Inoltre, al codice viene aggiunto un controllo degli errori. L'intervallo valido di un valore PWM è 0 - 255, quando un utente immette >255, assegna il valore 255 e se l'utente immette un valore o < +/-5 l'ho fatto per rendere la lettura più stabile poiché era una fluttuazione. Perché questo è un grosso problema relativo all'aggiornamento di SQL, ne parleremo più avanti.
Passaggio 4: Passaggio 3: NodeJS
Non ti mostrerò come ottenere o configurare un server SQL. Ci sono tonnellate di tutorial là fuori.
Ci sono 3 aspetti principali del programma NodeJS:
Leggi dati seriali
Scrivi dati seriali
Aggiorna database SQL
Per effettuare una connessione seriale all'interno di NodeJS, è necessario scaricare un modulo chiamato serialport che può essere eseguito utilizzando il comando npm. Aprire CMD sulla cartella in cui verrà conservato il programma NodeJS, installarlo digitando: npm install serialport Anche il modulo SQL deve essere installato per potersi connettere al database sql: npm install mysql NodeJS - Serial Port Il mio primo passo con il NodeJS programma era quello di leggere i dati stampati e inviare la luminosità pwm ad Arduino. Ciò è stato fatto aprendo la connessione seriale alla stessa velocità e porta. Una volta stabilita la connessione, ho letto i messaggi in arrivo e li ho stampati sulla finestra della console. Problema sollevato quando ho provato a scrivere il valore pwm per controllare la luminosità.
Continuava a generare errori: Port Not Open, la mia soluzione iniziale era chiamare la funzione di scrittura quando ci sono dati in arrivo. Tuttavia, questa era una brutta soluzione e non ero abbastanza soddisfatto della soluzione, anche se funzionava, veniva inviata solo quando il valore del piatto veniva modificato. Il codice di esempio per il modulo seriale non funzionerebbe nemmeno generando lo stesso errore. In seguito ho scoperto che il programma stava cercando di eseguire la funzione di scrittura senza aprire la porta, il che ha provocato quell'errore. Ho risolto questo problema usando la funzione setInterval()
NodeJS - MySQLLa libreria MySQL è stata utilizzata (npm install MySQL) per connettersi al database SQL poiché il server in una posizione remota è stato utilizzato l'indirizzo IP del server anziché localhost.
var con contiene le informazioni di connessione in formato JSON, una volta che la connessione è stata effettuata con successo, il database può essere interrogato. Sono state create 2 funzioni una per l'aggiornamento della tabella l'altra selezionando con parametri che prendono in considerazione la query SQL. La tabella di aggiornamento viene chiamata quando viene ricevuto un nuovo valore del potenziometro e la query di controllo della luminosità verrà eseguita periodicamente.
Collegamento NodeJSCode
Passaggio 5: Passaggio 4: l'interfaccia Web
Interfaccia web
La pagina web principale è stata scritta in PHP poiché avevo già un po' di esperienza con i miei database CO323 e il modulo Web all'università. La tabella e il modulo HTML sono stati utilizzati per visualizzare i dati sql.
PHP SQL Access Code: Link Scorrere fino alla sezione dell'interfaccia web.
HTML & CSS * Javascript Codice pagina web: Link Scorri fino in fondo
Pagina web finale
Consigliato:
Come connettere NodeMCU ESP8266 al database MySQL: 7 passaggi
Come connettere NodeMCU ESP8266 al database MySQL: MySQL è un sistema di gestione di database relazionali (RDBMS) ampiamente utilizzato che utilizza un linguaggio di query strutturato (SQL). Ad un certo punto, potresti voler caricare i dati del sensore Arduino/NodeMCU nel database MySQL. In questo Instructable, vedremo come collegare
Crea un software di database Ms Access per preparare lo stipendio nella tua azienda: 6 passaggi
Crea un software di database Ms Access per preparare lo stipendio nella tua azienda: ti darò le brevi istruzioni per creare un sistema di libro paga utilizzando l'accesso MS per generare stipendi mensili e stampare facilmente le buste paga con questo. In questo modo puoi conservare i record dei dettagli dello stipendio di ogni mese nel database e puoi modificare o rivedere in ritardo
Sistema di rilevazione presenze basato su impronte digitali e RFID utilizzando Raspberry Pi e database MySQL: 5 passaggi
Sistema di presenza basato su impronte digitali e RFID utilizzando Raspberry Pi e database MySQL: video di questo progetto
Come progettare database relazionali in Microsoft Access per principianti: 17 passaggi
Come progettare database relazionali in Microsoft Access per principianti: Il seguente set di istruzioni descrive come progettare database relazionali in Microsoft Access. Questa guida mostrerà innanzitutto come collegare correttamente due (2) tabelle. Descriverò quindi in dettaglio come creare un modulo da questa nuova relazione, consentendo all'utente di inserire
NODEMCU LUA ESP8266 Connessione al database MySQL: 6 passaggi
NODEMCU LUA ESP8266 Connetti al database MySQL: questo istruibile non è per i deboli di cuore poiché utilizza XAMPP (Apache, MySQL e PHP), HTML e ovviamente LUA. Se sei sicuro di affrontarli, continua a leggere! Uso XAMPP in quanto può essere configurato su una pen drive o sul tuo disco rigido ed è configurato