Sadržaj:

Arduino projekt: Upravljajte elektronikom putem interneta pomoću Nodejs + SQL baze podataka i web stranice .: 6 koraka
Arduino projekt: Upravljajte elektronikom putem interneta pomoću Nodejs + SQL baze podataka i web stranice .: 6 koraka

Video: Arduino projekt: Upravljajte elektronikom putem interneta pomoću Nodejs + SQL baze podataka i web stranice .: 6 koraka

Video: Arduino projekt: Upravljajte elektronikom putem interneta pomoću Nodejs + SQL baze podataka i web stranice .: 6 koraka
Video: CS50 2013 - Week 9 2024, Novembar
Anonim
Arduino projekt: Upravljajte elektronikom putem interneta pomoću Nodejs + SQL baze podataka i web stranice
Arduino projekt: Upravljajte elektronikom putem interneta pomoću Nodejs + SQL baze podataka i web stranice
Arduino projekt: Upravljajte elektronikom putem interneta pomoću Nodejs + SQL baze podataka i web stranice
Arduino projekt: Upravljajte elektronikom putem interneta pomoću Nodejs + SQL baze podataka i web stranice
Arduino projekt: Upravljajte elektronikom putem interneta pomoću Nodejs + SQL baze podataka i web stranice
Arduino projekt: Upravljajte elektronikom putem interneta pomoću Nodejs + SQL baze podataka i web stranice

Projekat Napisao: Mahmed.tech

Datum nastanka: 14. jul 2017

Nivo teškoće: Početnik sa određenim znanjem programiranja.

Hardverski zahtjevi:

- Arduino Uno, Nano, Mega (mislim da će većina MCU -a sa serijskom vezom raditi)

- Jedan LED i otpornik za ograničavanje struje. Koristite ovaj kalkulator ako niste sigurni: Ohmov kalkulator

- 10K potenciometar.

Softverski zahtjevi:

- Arduino IDE

- Node. JS (ovo je softver na računaru, vrlo jednostavan za instalaciju)

- MySQL Server (najlakši način koji sam otkrio je korištenje jeftinog web hostinga. Također možete dobiti besplatne nazive domena)

Korišteni jezik programiranja i skriptiranja:

Arduino (izmijenjeni C/C ++), JavaScript (Nodejs), PHP, HTML i CSS

Uvod Ovaj projekt ukratko: Upravljanje Arduino mikrokontrolerom s web sučelja. Stoga kontrolirajte bilo koji električni uređaj s bilo kojeg mjesta na internetu. Htio sam proširiti svoje razumijevanje programiranja i web razvoja i koji je bolji način za to od jednostavnog, ali efikasnog projekta. Hardver je sveden na minimum pa bih se mogao više fokusirati na softver. Stoga sam otišao s jednostavnom LED postavkom. Pot će slati podatke, a LED će primati (PWM svjetlina). Pomoću NodeJS -a očitani su serijski podaci (vrijednost potenciometra) i zapisani (svjetlina LED diode). Najteži dio ovog projekta bio je unos ulaznih podataka s udaljene lokacije (web poslužitelj)

Korak 1: Softverska logika: Arhitektura sistema

Softverska logika: Arhitektura sistema
Softverska logika: Arhitektura sistema

Podaci o potenciometru:

Ovo počinje na Arduinu, vrijednost čitanja je serijski ispis. Međutim, ovaj put ćemo koristiti Node. JS za čitanje vrijednosti. NodeJS će otvoriti serijsku komunikaciju na isti port na koji je povezan Arduino i pročitati ispisanu vrijednost pot. NodeJS će zatim prenijeti podatke u udaljenu SQL bazu podataka, to će se dogoditi svaki put kada se ispiše nova vrijednost pot. Web stranica će se spojiti na interval postavljanja SQL baze podataka i dohvatiti vrijednost potenciometra. Ovo će tada biti prikazano na web stranici.

Led podaci:

Za LED diodu svjetlinu PWM -a će postaviti korisnik na udaljenoj web stranici, tako da njeno putovanje počinje na suprotnom kraju spektra. Ulazni podaci se spremaju u SQL bazu podataka, svaki postavljeni interval u bazi se provjerava ima li promjena u LED PWM -u, to radi NodeJS. Ako se vrijednost razlikuje od prethodne, tada će se nova vrijednost poslati na Arduino putem serijske sabirnice. Arduino mijenja izlaznu PWM vrijednost LED -a kako bi promijenio njegovu svjetlinu.

Kalkulator Ohmovog zakona koristi formule V = IR i P = IV = I²R = V²/R Za ovaj projekt ću koristiti plavu LED diodu. To je važno jer s povećanjem frekvencije svjetlosti raste i pad napona. Budući da plavo svjetlo ima veću frekvenciju u odnosu na nešto poput crvenog LED -a. To znači veći napon naprijed. Ovisno o marki, vrsti i veličini, radni raspon će se razlikovati. Za moje postavljanje koristio sam 220 Ω otpornik u seriji, negativan na masu i pozitivan na PWM pin na Arduinu. Pot je spojen na analogni pin. S 5VCC jedan kraj GND drugi i srednji pin spojen na analogni pin (A0 u mom slučaju).

Korak 2: Korak 1: Ožičenje hardvera

Korak 1: Ožičenje hardvera
Korak 1: Ožičenje hardvera

Ovo je vrlo jednostavno: samo spojite svoj trenutni ograničavajući otpornik u seriju sa LED -om kako biste bili sigurni da ste ispravno usmjereni. Jedan bod će pripasti GND -u, a drugi kraj Arduino pin -u. Za moje postavljanje koristio sam pin 12 za LED i A7 za Pot. Nemam shemu jer je njen vrlo jednostavan sklop. Međutim, ovo sam pronašao na internetu (slika)

Korak 3: Korak 2: Arduino

Prvo su provjereni led i pot kako bi radili kako se očekivalo. Ovo je umanjeno jednostavnim programom gdje pot vrijednost kontrolira led. Koristio sam funkciju ograničenja za promjenu raspona pot od 0 do 1023 na 0 do 255, ali funkcionira i jednostavna /4. Vrijednost pot je izglađena uzimanjem srednjeg prosjeka od 10 uzastopnih očitanja, ovo je za uklanjanje šiljaka. (Međutim, ovo zaglađivanje uzrokovalo je probleme s NodeJS -om pa je to kasnije uklonjeno na projektu - više o tome)

Kod Arduino

Čitaj / Piši serijski Sljedeći korak je unos korisničkog unosa preko prozora serijskog monitora koje pruža Arduino ide za postavljanje svjetline. Da biste to učinili, koristi se serial.parseInt () koji uzima cijelu vrijednost i zanemaruje niz. Takođe, kodu se dodaje provjera grešaka. Važeći raspon vrijednosti PWM -a je 0 - 255, kada korisnik unese> 255 tada dodjeljuje vrijednost 255, a ako korisnik unese vrijednost ili <+/- 5, učinio sam to kako bi čitanje bilo stabilnije jer se radilo o fluktuaciji. Zašto je to veliki problem vezan za ažuriranje SQL -a, više o tome kasnije.

Korak 4: Korak 3: NodeJS

Neću vam pokazati kako nabaviti ili postaviti i SQL server. Postoji mnogo tutorijala.

Postoje 3 glavna aspekta programa NodeJS:

Čitajte serijske podatke

Zapišite serijske podatke

Ažurirajte SQL bazu podataka

Da biste uspostavili serijsko povezivanje unutar NodeJS -a, potrebno je preuzeti modul koji se zove serialport, što se može učiniti pomoću naredbe npm. Otvorite CMD u mapi u kojoj će se držati NodeJS program, instalirajte upisivanjem: npm install serialport Također se mora instalirati SQL modul da bi se mogao povezati s sql bazom podataka: npm install mysql NodeJS - Serijski port Moj prvi korak s NodeJS -om program je trebao čitati ispisane podatke i slati pwm svjetlinu na Arduino. To je učinjeno otvaranjem serijskog povezivanja na istoj brzini prijenosa i portu. Nakon što sam uspostavio vezu, pročitao sam dolazne poruke i odštampao ih na prozoru konzole. Problem se pojavio kada sam pokušao napisati pwm vrijednost za kontrolu svjetline.

Stalno je prikazivao greške: Port nije otvoren, moje početno rješenje je bilo pozvati funkciju pisanja kada postoje dolazni podaci. Međutim, ovo je bio loš popravak i bio sam prilično nezadovoljan rješenjem, iako je radilo, slalo bi se samo kad se promijeni vrijednost pot. Primjer koda za serijski modul ne bi funkcionirao niti bi izazvao istu grešku. Kasnije sam saznao da program pokušava izvršiti funkciju pisanja bez otvaranja porta, što je rezultiralo tom greškom. Zaobišao sam ovaj problem koristeći funkciju setInterval ()

NodeJS - MySQLMiblioteka MySQL je korištena (npm install MySQL) za povezivanje sa SQL bazom podataka budući da je poslužitelj na udaljenoj lokaciji umjesto lokalnog hosta korišten IP adresa poslužitelja.

var con sadrži informacije o povezivanju u JSON formatu, nakon što je veza uspješno uspostavljena, baza podataka se može postaviti. 2 funkcije su stvorene jedna za ažuriranje tablice, druga selekcija sa parametrima u SQL upitu. Tablica ažuriranja se poziva kada se primi nova vrijednost potka i upit za provjeru svjetline će se povremeno izvršavati.

NodeJSCode Link

Korak 5: Korak 4: Web sučelje

Korak 4: Web sučelje
Korak 4: Web sučelje

Web interfejs

Glavna web stranica je napisana na PHP -u jer sam već imao iskustva s mojim CO323 bazama podataka i web modulom na univerzitetu. HTML tablica i obrazac korišteni su za prikaz sql podataka.

PHP SQL pristupni kôd: Veza Pomaknite se do odjeljka web sučelja.

HTML & CSS * Javascript kod web stranice: Veza Pomaknite se do dna

Final Webpage

Preporučuje se: