Kazalo:

Arduino Project: Nadzorna elektronika po internetu z uporabo baze podatkov in spletne strani Nodejs + SQL .: 6 korakov
Arduino Project: Nadzorna elektronika po internetu z uporabo baze podatkov in spletne strani Nodejs + SQL .: 6 korakov

Video: Arduino Project: Nadzorna elektronika po internetu z uporabo baze podatkov in spletne strani Nodejs + SQL .: 6 korakov

Video: Arduino Project: Nadzorna elektronika po internetu z uporabo baze podatkov in spletne strani Nodejs + SQL .: 6 korakov
Video: CS50 2013 - Week 9 2024, November
Anonim
Arduino Project: Nadzirajte elektroniko po internetu z uporabo baze podatkov in spletnega mesta Nodejs + SQL
Arduino Project: Nadzirajte elektroniko po internetu z uporabo baze podatkov in spletnega mesta Nodejs + SQL
Arduino Project: Nadzirajte elektroniko po internetu z uporabo baze podatkov in spletnega mesta Nodejs + SQL
Arduino Project: Nadzirajte elektroniko po internetu z uporabo baze podatkov in spletnega mesta Nodejs + SQL
Arduino Project: Nadzirajte elektroniko po internetu z uporabo baze podatkov in spletnega mesta Nodejs + SQL
Arduino Project: Nadzirajte elektroniko po internetu z uporabo baze podatkov in spletnega mesta Nodejs + SQL

Projekt Avtor: Mahmed.tech

Datum izdelave: 14. julij 2017

Stopnja težavnosti: Začetnik z nekaj znanja programiranja.

Strojna zahteva:

- Arduino Uno, Nano, Mega (mislim, da bo večina MCU s serijsko povezavo delovala)

- Enojni LED in upor za omejevanje toka. Če niste prepričani, uporabite ta kalkulator: kalkulator Ohmovega zakona

- 10K potenciometer.

Zahteve glede programske opreme:

- Arduino IDE

- Node. JS (to je programska oprema v računalniku, zelo enostavna za namestitev)

- MySQL Server (najlažji način, ki sem ga našel, je uporaba poceni spletnega gostovanja. Dobite lahko tudi brezplačna imena domen)

Uporabljen programski in skriptni jezik:

Arduino (spremenjen C/C ++), JavaScript (Nodejs), PHP, HTML in CSS

Uvod Ta projekt na kratko: krmiljenje mikrokrmilnika Arduino s spletnega vmesnika. Zato upravljajte katero koli električno napravo od kjer koli z internetom. Želel sem razširiti svoje razumevanje programiranja in spletnega razvoja ter kakšen boljši način za to kot enostaven, a učinkovit projekt. Strojna oprema je minimalna, zato bi se lahko bolj osredotočil na programsko opremo. Zato sem šel s preprosto LED nastavitvijo v loncu. Posoda bo poslala podatke, LED pa bo prejela (svetlost PWM). Z uporabo NodeJS so bili prebrani serijski podatki (vrednost potenciometra) in zapisani (svetlost LED). Težaven del tega projekta je bil pridobivanje vhodnih podatkov z oddaljene lokacije (spletni strežnik)

1. korak: programska logika: sistemska arhitektura

Programska logika: sistemska arhitektura
Programska logika: sistemska arhitektura

Podatki o potenciometru:

To se začne pri Arduinu, vrednost branja je serijski tisk. Vendar bomo tokrat za branje vrednosti uporabili Node. JS. NodeJS bo odprl serijsko komunikacijo do istih vrat, na katera je priključen Arduino, in prebral natisnjeno vrednost pot. NodeJS bo nato naložil podatke v oddaljeno bazo podatkov SQL, to se bo zgodilo vsakič, ko se natisne nova vrednost lonca. Spletna stran se bo povezala z nastavljenim intervalom zbirke podatkov SQL in pridobila vrednost potenciometra. Ta bo nato prikazan na spletni strani.

Led podatki:

Za LED diode bo svetlost PWM nastavil uporabnik na oddaljeni spletni strani, zato se njeno potovanje začne na nasprotnem koncu spektra. Vhodni podatki se shranijo v bazo podatkov SQL, v vsakem nastavljenem intervalu se zbirka podatkov preveri glede spremembe v LED PWM, to naredi NodeJS. Če je vrednost drugačna od prejšnje, bo nova vrednost poslana v Arduino prek serijskega vodila. Arduino spremeni izhodno vrednost PWM LED, da spremeni njeno svetlost.

Kalkulator Ohmovega zakona uporablja formule V = IR in P = IV = I²R = V²/R Za ta projekt bom uporabil modro LED. To je pomembno, ker se s povečanjem frekvence svetlobe povečuje tudi padec napetosti. Ker ima modra svetloba višjo frekvenco v primerjavi z nečim, kot je rdeča LED. To pomeni višjo napetost naprej. Delovno območje se razlikuje glede na znamko, vrsto in velikost. Za namestitev sem uporabil 220 Ω upor zaporedoma, negativen na ozemljitev in pozitiven na pin PWM na Arduinu. Lonec je bil priključen na analogni pin. S 5VCC en konec GND drugega in srednji zatič priključen na analogni pin (v mojem primeru A0).

2. korak: 1. korak: ožičenje strojne opreme

1. korak: ožičenje strojne opreme
1. korak: ožičenje strojne opreme

To je zelo preprosto: samo zaporedno povežite svoj trenutni omejevalni upor z LED -diodo in se prepričajte, da ste pravilno vodeni. Ena točka bo šla na GND, druga pa na Arduino pin. Za nastavitev sem uporabil pin 12 za LED in A7 za Pot. Nimam sheme, ker je njeno zelo preprosto vezje. Vendar sem to našel na spletu (slika)

3. korak: 2. korak: Arduino

Najprej so preverili led in pot, če delujejo po pričakovanjih. To je znižal preprost program, kjer vrednost lončka nadzoruje led. Uporabil sem funkcijo omejevanja, da spremenim obseg lonca od 0 do 1023 na 0 do 255, vendar deluje tudi preprost /4. Vrednost lonca je bila izravnana tako, da smo vzeli povprečno povprečje iz 10 zaporednih odčitkov, to je za odstranitev konic. (Vendar je to glajenje povzročilo težave z NodeJS, zato je bilo to kasneje v projektu odstranjeno - več o tem)

Koda Arduino

Naslednji korak je vnos uporabnika prek oken serijskega monitorja, ki jih ponuja Arduino ide za nastavitev svetlosti. V ta namen se uporablja serial.parseInt (), ki vzame celoštevilčno vrednost in prezre niz. Kodi je dodano tudi preverjanje napak. Veljavno območje vrednosti PWM je 0 - 255, ko uporabnik vnese> 255, potem dodeli vrednost 255, in če uporabnik vnese vrednost ali <+/- 5, sem to naredil, da je branje bolj stabilno, ker je bilo nihanje. Zakaj je to velik problem, povezan s posodabljanjem SQL, več o tem kasneje.

4. korak: 3. korak: NodeJS

Ne bom vam pokazal, kako dobiti ali nastaviti in strežnik SQL. Obstaja ogromno vaj.

Program NodeJS ima tri glavne vidike:

Preberite serijske podatke

Zapišite serijske podatke

Posodobite zbirko podatkov SQL

Za vzpostavitev serijske povezave znotraj NodeJS je treba prenesti modul, imenovan serialport, kar lahko storite z ukazom npm. Odprite CMD v mapi, kjer bo shranjen program NodeJS, namestite tako, da vnesete: npm install serialport Prav tako je treba namestiti modul SQL, da se lahko poveže z bazo podatkov sql: npm install mysql NodeJS - Serijska vrata Moj prvi korak z NodeJS program je prebral natisnjene podatke in poslal svetlost pwm na Arduino. To je bilo storjeno z odpiranjem serijske povezave na istem spletnem mestu in na vratih. Ko je bila povezava vzpostavljena, sem prebral dohodna sporočila in jih natisnil na okno konzole. Težava se je pojavila, ko sem poskušal zapisati vrednost pwm za nadzor svetlosti.

Neprestano je prikazoval napake: vrata niso odprta, moja začetna rešitev je bila, da pokličem funkcijo pisanja, ko so vhodni podatki. Vendar je bila to slaba rešitev in nisem bil zadovoljen z rešitvijo, čeprav je delovala, bi poslala le, ko bi spremenili vrednost lonca. Primer kode za serijski modul ne bi deloval niti z isto napako. Kasneje sem ugotovil, da program poskuša izvesti funkcijo pisanja, ne da bi odprl vrata, kar je povzročilo to napako. To težavo sem odpravil s funkcijo setInterval ()

NodeJS - MySQL Knjižnica MySQL je bila uporabljena (npm install MySQL) za povezavo z bazo podatkov SQL, saj je bil strežnik na oddaljeni lokaciji namesto localhost uporabljen naslov IP strežnika.

var con vsebuje podatke o povezavi v formatu JSON, potem ko je povezava uspešno vzpostavljena, se lahko zbirka podatkov poizveduje. Ustvarjeni sta bili dve funkciji, ena za posodabljanje tabele, druga izbira s parametri ob upoštevanju poizvedbe SQL. Tabela za posodobitev se pokliče, ko prejmemo novo vrednost lonca in se poizvedba za preverjanje svetlosti občasno izvaja.

Povezava NodeJSCode

5. korak: 4. korak: spletni vmesnik

4. korak: spletni vmesnik
4. korak: spletni vmesnik

Spletni vmesnik

Glavna spletna stran je bila napisana v jeziku PHP, saj sem že imel nekaj izkušenj iz svojih baz podatkov CO323 in spletnega modula na univerzi. Tabela & obrazec HTML je bila uporabljena za prikaz podatkov sql.

Koda za dostop PHP SQL: Povezava Pomaknite se do razdelka spletnega vmesnika.

HTML & CSS * Javascript koda spletne strani: Povezava Pomaknite se do dna

Končna spletna stran

Priporočena: