Агуулгын хүснэгт:

Arduino төсөл: Nodejs + SQL мэдээллийн бааз, вэбсайтыг ашиглан интернетээр дамжуулан электроникийг хянах: 6 алхам
Arduino төсөл: Nodejs + SQL мэдээллийн бааз, вэбсайтыг ашиглан интернетээр дамжуулан электроникийг хянах: 6 алхам

Видео: Arduino төсөл: Nodejs + SQL мэдээллийн бааз, вэбсайтыг ашиглан интернетээр дамжуулан электроникийг хянах: 6 алхам

Видео: Arduino төсөл: Nodejs + SQL мэдээллийн бааз, вэбсайтыг ашиглан интернетээр дамжуулан электроникийг хянах: 6 алхам
Видео: MKS SGEN L V1.0 - Basics 2024, Арваннэгдүгээр
Anonim
Arduino төсөл: Nodejs + SQL мэдээллийн бааз, вэбсайтыг ашиглан электроникийг интернетээр хянах
Arduino төсөл: Nodejs + SQL мэдээллийн бааз, вэбсайтыг ашиглан электроникийг интернетээр хянах
Arduino төсөл: Nodejs + SQL мэдээллийн бааз, вэбсайтыг ашиглан электроникийг интернетээр хянах
Arduino төсөл: Nodejs + SQL мэдээллийн бааз, вэбсайтыг ашиглан электроникийг интернетээр хянах
Arduino төсөл: Nodejs + SQL мэдээллийн бааз, вэбсайтыг ашиглан электроникийг интернетээр хянах
Arduino төсөл: Nodejs + SQL мэдээллийн бааз, вэбсайтыг ашиглан электроникийг интернетээр хянах

Төсөл зохиогч: Mahmed.tech

Бүтээсэн огноо: 2017 оны 7 -р сарын 14

Хэцүү байдлын түвшин: Програмчлалын мэдлэгтэй эхлэгч.

Тоног төхөөрөмжийн шаардлага:

- Arduino Uno, Nano, Mega (Цуваа холболттой ихэнх MCU ажиллах болно гэж бодож байна)

- Нэг LED ба гүйдэл хязгаарлах эсэргүүцэл. Хэрэв та итгэлгүй байгаа бол энэ тооцоолуурыг ашиглана уу: Ohms Law Calculator

- 10K потенциометр.

Програм хангамжийн шаардлага:

- Arduino IDE

- Node. JS (энэ бол компьютер дээрх програм хангамж бөгөөд суулгахад маш энгийн)

- MySQL сервер (миний олж мэдсэн хамгийн хялбар арга бол хямд вэб хостинг ашиглах явдал юм. Та мөн үнэгүй домэйн нэр авах боломжтой)

Ашигласан програмчлал ба скриптийн хэл:

Arduino (өөрчлөгдсөн C/C ++), JavaScript (Nodejs), PHP, HTML & CSS

Энэхүү төсөл нь товчхондоо: Arduino микроконтроллерыг вэб интерфейсээс удирдах. Тиймээс интернэтээр холбогдсон аливаа цахилгаан хэрэгслийг хаанаас ч хамаагүй хянаж байгаарай. Би програмчлал, вэб хөгжүүлэлтийн талаархи ойлголтоо өргөжүүлэхийг хүсч байсан бөгөөд үүнийг хийх энгийн, гэхдээ үр дүнтэй төсөл хийхээс илүү сайн арга зам байсан. Тоног төхөөрөмжийг хамгийн бага хэмжээнд байлгадаг тул би програм хангамжид илүү их анхаарлаа хандуулж чадна. Тиймээс би энгийн LED, тогооны тохиргоотой болсон. Сав нь өгөгдлийг илгээх бөгөөд удирдагчийг хүлээн авах болно (ХОУХ -ны тод байдал). NodeJS -ийг ашиглан цуваа өгөгдлийг уншиж (потенциометрийн утга) бичиж, (гэрэлтүүлгийн гэрлийг) бичжээ. Энэ төслийн хэцүү хэсэг нь оролтын өгөгдлийг алслагдсан газраас (вэб сервер) авах явдал байв.

Алхам 1: Програм хангамжийн логик: Системийн архитектур

Програм хангамжийн логик: системийн архитектур
Програм хангамжийн логик: системийн архитектур

Потенциометрийн өгөгдөл:

Энэ нь Arduino -аас эхэлдэг, унших савны утга нь цуваа хэвлэгддэг. Гэхдээ энэ удаад бид утгыг уншихын тулд Node. JS -ийг ашиглах болно. NodeJS нь Arduino -ийг холбосон порт руу цуваа холболтыг нээж уншсан савны утгыг унших болно. Дараа нь NodeJS нь өгөгдлийг алсын SQL мэдээллийн санд байршуулах бөгөөд энэ нь шинэ савны утгыг хэвлэх бүрт тохиолддог. Вэб хуудас нь SQL мэдээллийн сангийн интервалтай холбогдож потенциометрийн утгыг авах болно. Дараа нь үүнийг вэб хуудсан дээр харуулах болно.

LED мэдээлэл:

Удирдлагын хувьд ХОУХ -ны гэрэлтүүлгийг хэрэглэгч алсын вэб хуудсан дээр тохируулах тул аялалын спектрийн эсрэг талаас эхэлнэ. Оруулсан өгөгдлийг SQL мэдээллийн санд хадгалдаг бөгөөд тогтоосон интервал бүрт мэдээллийн сан нь удирдсан ХОУХ -ны өөрчлөлтийг шалгадаг бөгөөд үүнийг NodeJS хийдэг. Хэрэв утга нь өмнөх утгаас өөр байвал шинэ утгыг цуваа автобусаар Arduino руу илгээх болно. Arduino нь гэрэлтүүлгийг өөрчлөхийн тулд PWM гаралтын утгыг өөрчилдөг.

Ohms хуулийн тооцоолуур нь V = IR ба P = IV = I²R = V²/R томъёог ашигладаг. Энэ төслийн хувьд би цэнхэр LED ашиглах болно. Гэрлийн давтамж нэмэгдэхийн хэрээр хүчдэлийн уналт нэмэгддэг тул энэ нь чухал юм. Цэнхэр гэрэл нь улаан туяатай төстэй зүйлтэй харьцуулахад өндөр давтамжтай байдаг. Энэ нь илүү өндөр урагшлах хүчдэл гэсэн үг юм. Үйлдвэрлэлийн төрөл, хэмжээ, хэмжээ зэргээс хамааран ажлын хүрээ өөр өөр байх болно. Тохиргоогоо хийхийн тулд би Arduino дээрх ХОУХ -ны зүү эерэг ба газардуулгын хувьд 220 инчийн эсэргүүцлийг цувралаар ашигласан. Савыг аналог зүүтэй холбосон. 5VCC -ийн нэг төгсгөл GND нөгөө төгсгөл ба дунд зүү нь аналог зүүтэй холбогдсон (миний хувьд A0).

Алхам 2: Алхам 1: Тоног төхөөрөмжийн утас

Алхам 1: Тоног төхөөрөмжийн утас
Алхам 1: Тоног төхөөрөмжийн утас

Энэ бол маш энгийн зүйл: Одоогийн хязгаарлах резисторыг LED -тэй холбож залгах нь зөв эсэхийг шалгаарай. Нэг цэг GND рүү, нөгөө төгсгөл нь Arduino pin руу очих болно. Тохиргоог хийхийн тулд би LED -ийн 12 -р зүү, Потын хувьд A7 -ийг ашигласан. Надад схем байхгүй, учир нь энэ нь маш энгийн хэлхээ юм. Гэсэн хэдий ч би үүнийг онлайнаар олсон (зураг)

Алхам 3: Алхам 2: Arduino

Нэгдүгээрт, тугалга ба тогоо нь хүлээгдэж буй байдлаар ажиллаж байгаа эсэхийг шалгасан. Энэ нь тогны утга нь LED -ийг хянадаг энгийн програмаар хийгдсэн юм. Би хязгаарлах функцийг ашиглан 0 -ээс 1023 хүртэлх савыг 0 -ээс 255 болгон өөрчилсөн боловч энгийн /4 нь бас ажилладаг. Савны утгыг 10 дараалсан уншилтын дунджийг авч үзвэл үсрэлтийг арилгах зорилготой байв. (Гэсэн хэдий ч энэхүү тэгшлэх нь NodeJS -т асуудал үүсгэсэн тул үүнийг төслийн дараа устгасан болно.

Ардуино код

Цуваа унших / бичих Дараагийн алхам бол гэрэлтүүлгийг тохируулахын тулд Arduino ide -ийн өгсөн цуваа дэлгэцийн цонхоор дамжуулан хэрэглэгчийн оролтыг авах явдал юм. Үүнийг хийхийн тулд serial.parseInt () -ийг ашигладаг бөгөөд энэ нь бүхэл тоон утгыг авч мөрийг үл тоомсорлодог. Түүнчлэн алдааг шалгах кодыг код дээр нэмж оруулсан болно. ХОУХШ -ийн утгын хүчинтэй хүрээ нь 0 - 255 бөгөөд хэрэглэгч> 255 руу ороход 255 гэсэн утгыг өгдөг бөгөөд хэрэв хэрэглэгч утга оруулах эсвэл <+/- 5 бол би үүнийг хэлбэлзэлээс хойш уншилтыг илүү тогтвортой байлгахын тулд хийсэн.. Яагаад энэ нь SQL -ийг шинэчлэхтэй холбоотой том асуудал юм, дараа нь энэ талаар дэлгэрэнгүй ярих болно.

Алхам 4: Алхам 3: NodeJS

Би SQL серверийг хэрхэн олж авах, тохируулахыг танд үзүүлэхгүй. Тэнд маш олон тооны хичээлүүд байдаг.

NodeJS програмын 3 үндсэн тал бий

Цуваа мэдээллийг уншина уу

Цуваа өгөгдлийг бичих

SQL мэдээллийн санг шинэчлэх

NodeJS дотор цуваа холболт хийхийн тулд serialport нэртэй модулийг татаж авах шаардлагатай бөгөөд үүнийг npm командыг ашиглан хийж болно. NodeJS програмыг хадгалах фолдер дээр CMD -ийг нээгээд дараах байдлаар суулгана уу: npm install serialport Мөн sql мэдээллийн санд холбогдохын тулд SQL модулийг суулгасан байх ёстой: npm mysql -ийг суулгах NodeJS - Цуваа порт NodeJS -тэй хийх миний эхний алхам. Програм нь хэвлэгдсэн өгөгдлийг уншиж, pwm -ийн тод байдлыг Arduino руу илгээх явдал байв. Үүнийг ижил брудрат ба порт дээр цуваа холболтыг нээх замаар хийсэн болно. Холболт хийсний дараа би ирж буй мессежүүдийг уншиж, консолын цонхонд хэвлэв. Гэрэлтүүлгийг хянахын тулд pwm утгыг бичих гэж оролдоход асуудал гарч ирэв.

Энэ нь алдаа гарсаар байв: Порт Нээгдээгүй, миний анхны шийдэл бол ирж буй өгөгдөл байгаа үед бичих функцийг дуудах явдал байв. Гэсэн хэдий ч энэ бол муу засвар байсан бөгөөд би энэ шийдэлд сэтгэл хангалуун бус байсан, гэхдээ энэ нь ажилласан ч гэсэн савны үнэ өөрчлөгдөхөд л илгээдэг. Цуваа модулийн жишээ код нь ижил алдаа гаргахад ажиллахгүй болно. Хөтөлбөр нь портыг нээхгүйгээр бичих функцийг гүйцэтгэхийг оролдож байгааг олж мэдсэн бөгөөд үүний үр дүнд алдаа гарсан. Би setInterval () функцийг ашиглан энэ асуудлыг шийдсэн

MySQL номын сан нь SQL өгөгдлийн санд холбогдохын тулд (npm суулгах MySQL) ашиглагддаг байсан тул алслагдсан байршилд байгаа сервер нь localhost -ийн оронд серверийн IP хаягийг ашигладаг байсан.

var con нь холболтын мэдээллийг JSON форматаар хадгалдаг бөгөөд холболтыг амжилттай хийсний дараа мэдээллийн баазыг асууж болно. Хүснэгтийг шинэчлэх, SQL асуулгад оруулах параметрүүдийг сонгох хоёр функц бий болсон. Шинэ савны утгыг хүлээн авах үед гэрэлтүүлгийн хүснэгтийг дуудаж, гэрэлтүүлгийг шалгах асуулга үе үе хийгддэг.

NodeJSCode холбоос

Алхам 5: Алхам 4: Вэб интерфэйс

Алхам 4: Вэб интерфэйс
Алхам 4: Вэб интерфэйс

Вэб интерфэйс

Би CO323 мэдээллийн бааз болон их сургуулийн вэб модулийн талаар зарим туршлагатай байсан тул үндсэн вэб хуудсыг PHP дээр бичсэн болно. Html хүснэгт, маягтыг sql өгөгдлийг харуулахад ашигласан.

PHP SQL нэвтрэх код: Холбоос Вэб интерфэйс хэсэгт очно уу.

HTML & CSS * Javascript вэб хуудасны код: Холбоосыг доош гүйлгэнэ үү

Эцсийн вэб хуудас

Зөвлөмж болгож буй: