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

Вэб рүү залгаарай!: 4 алхам
Вэб рүү залгаарай!: 4 алхам

Видео: Вэб рүү залгаарай!: 4 алхам

Видео: Вэб рүү залгаарай!: 4 алхам
Видео: Растяжка на все тело за 20 минут. Стретчинг для начинающих 2024, Арванхоёрдугаар сар
Anonim
Image
Image
Arduino руу түлхэх товч
Arduino руу түлхэх товч

Вэбийг цагираглах нь вэбсайтуудад орон нутгийн/бодит газраас нөлөөлөх зорилготой юм.

Энэ тухай дэлгэрэнгүй мэдээлэл:

makker.hu/RingTheWeb/

Танд хэрэгтэй болно:

  • 1 товчлуур
  • 10к эсэргүүцэл
  • Arduino (ямар ч төрөл)
  • кабель
  • жижиг, бага хүчин чадалтай компьютер - энэ тохиолдолд RPi
  • node.js бүхий нийтийн IP бүхий сервер эсвэл компьютерт хандах
  • вэбсайт

Алхам:

  1. Arduino руу дарна уу
  2. Arduino -аас бөөрөлзгөнө хүртэл
  3. Бөөрөлзгөнө сервер рүү
  4. Вэбсайт сервер рүү

Алхам 1: Arduino руу түлхэх товчлуур

Эхлээд танд Arduino болон товчлуур хэрэгтэй болно!

Тэдгээрийн аль нь ч байж болно, сонгох нь танаас хамаарна.

Тэднийг холбохын тулд Arduino -ийн албан ёсны товчлуурын зааврыг дагана уу.

Энд Arduino код байна:

// Тоон зүүг уншиж, цуваа порт руу утга илгээх Arduino код

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // pinMode (8, INPUT) цуваа портыг нээх; // товчлуурыг Pin 8 руу холбоно уу int counter = 0; // хожим ашигласан ямар нэг зүйл void loop () {if (digitalRead (8) == 1) {// 8 -р зүү 8 -ийн статусыг шалгах Serial.write ("8"); } саатал (100); тоолуур ++; if (counter = 20) {// 20x100 = 2000ms тутамд -> тоолуур = 0; Serial.write ("0"); // серверт "би байгаа" гэсэн мессеж илгээдэг}} // энэ бүгд!

Алхам 2: Arduino -аас Raspberry руу

Arduino -аас бөөрөлзгөнө хүртэл
Arduino -аас бөөрөлзгөнө хүртэл

Одоо бид Arduino -г компьютерт холбох боломжтой боллоо. Энэ тохиолдолд цахилгаан эрчим хүч бага зарцуулдаг тул бид бөөрөлзгөнө хэрэглэдэг.

Үүнийг USB-ээр эсвэл энд тайлбарласан RX-TX зүүгээр холбоно уу.

Дараа нь энд тайлбарласны дагуу node.js болон npm -ийг суулгаарай. Түлхүүр үгс нь:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

Тэгээд

sudo apt -get install -y nodejs

Npm (Node.js-ийн багцын менежер) -д socket.io-client болон serialport модулиуд хэрэгтэй тул тэдгээрийг суулгаарай.

npm socket.io-client суулгах

npm serialport суулгах

Дараах кодыг ашиглан something.js файлыг нээгээд хадгална уу.

// socket.io холболтыг эхлүүлэх:

var сокет; var io = шаардлагатай ('socket.io-клиент'); сокет = io ("https://yourserver.com:port"); // хэрэв сервертэй холболт амжилттай бол: socket.on ('connect', function () {socket.send ("Би энд байна!"); console.log ("серверт холбогдсон");}); // цуваа порт холболтыг эхлүүлэх, NB /dev = ttyACM0 -ийг өөрчилж болно: var SerialPort = шаарддаг ('serialport'); var serialPort = шинэ SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // Хэрэв ямар нэгэн зүйл Arduino -аас гарвал өөр өөр мессежүүдийг // серверийн дагуу илгээдэг serialPort.on ('data', function (data) {console.log ('Data:', data.toString ('ascii'))); if (data.indexOf ('8')! ==-1) {socket.send ('/RingTheBell 1');} if (data.indexOf ('0')! ==-1) {сокет. илгээх ('/client1 1');}}); // Боломжтой өгөгдлийг унших - энэ нь шаардлагагүй гэж би бодож байна serialPort.on ('уншигдах', function () {console.log ('Data:', port.read ());});

Одоо та серверийн node.js кодыг тохируулах ёстой бөгөөд ингэснээр та скриптийг эхлүүлж шалгаж болно

зангилаа./something.js

Хэрэв ямар нэг зүйл буруу болвол надад мэдэгдээрэй!

Алхам 3: Сервер талын код

Сервер талын код
Сервер талын код

Серверийн талд бидэнд socket.io сервертэй node.js хэрэгтэй болно.

Тиймээс үүнийг нэмнэ үү:

npm socket-io суулгана уу

Дараа нь танд 2 -р алхам дээрх кодын ижил төстэй скрипт хэрэгтэй бөгөөд ялгаа нь холболтыг хүлээж байгаа бөгөөд хэрэв тэд байгаа бол үйлчлүүлэгчээс илгээсэн аливаа мессежийг бүх үйлчлүүлэгчдэд дамжуулах болно. тохиолдолд, вэбсайт хэрэглэгчдэд…

Тиймээс дараах зүйлсийг агуулсан serverscript.js -ийг нээнэ үү.

var http = шаарддаг ('http'), io = шаардлагатай ('socket.io'); // хамгийн бага http сервер нээх. socket.io хэрэгтэй байна. var server = http.createServer (функц (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('сайн уу');}); // tcp сокетийг асаана уу - портоо тохируулаарай! server.listen (7004, function () {console.log ("7004 порт дээр ажиллаж байгаа TCP сервер");}); // tcp мессежийг шинжлэх var socket = io.listen (сервер); socket.on ('холболт', функц (үйлчлүүлэгч, rinfo) {client.broadcast.emit ('систем', 'хэн нэгэн холбогдсон…'); client.on ('мессеж', функц (үйл явдал) {console.log (үйл явдал)); // холбогдсон бүх хэрэглэгчдэд ямар ч мессеж дамжуулах! socket.emit ('message', event);}); client.on ('everybody', function (event) {}); client.on ('disconnect', функц () {socket.emit ('зурвас', 'хэн нэгэн салсан …');});});

Үүнийг туршиж үзээрэй

зангилаа./serverscript.js

Хэрэв үйлчлүүлэгч бас ажиллаж байгаа бол та хоёр консол дээр тэдний харилцааг харах ёстой. Наад зах нь эдгээр нь:

Өгөгдөл: 0

-Arduino-> Raspberry-> серверийн харилцаа холбоо ажиллаж байгааг системд үе үе хэлдэг.

ба

Өгөгдөл: 8

- товчлуур асаалттай байгааг хэлнэ.

Алхам 4: Вэбсайтыг тохируулах

Вэбсайтыг тохируулах
Вэбсайтыг тохируулах

Одоо бид 75% бэлэн боллоо!

Вэбсайтын кодыг оруулаарай.

Энэ нь амархан.

Нэгдүгээрт, socket.io клиентийг оруулна уу:

Дараа нь мессеж анализаторын системийг үүсгэнэ үү.

var сокет;

сокет = io ("yourserver.com:port"); socket.on ('холбогдох', функц () {socket.send ('нэргүй үйлчлүүлэгч - вэбсайтын хэрэглэгч холбогдсон байна!'); socket.on ('мессеж', функц (msg) {// хэрэв та үзэхийг хүсвэл Зурвас бүрийг тайлбарлахгүй бол: // console.log (msg); if (msg == "/RingTheBell 1") // товчлуурын үйл явдлыг илэрхийлэхэд ашиглах кодыг энд оруулав: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; if (msg == "/client1 1") {// энд та ямар нэгэн зүйл байрлуулж болно. холбогдсон үйлчлүүлэгчийн статуст хариу үйлдэл үзүүлдэг};});

Воила!

бэлэн

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