Բովանդակություն:

Rանգահարեք համացանցում: 4 քայլ
Rանգահարեք համացանցում: 4 քայլ

Video: Rանգահարեք համացանցում: 4 քայլ

Video: Rանգահարեք համացանցում: 4 քայլ
Video: Fully furnished abandoned DISNEY castle in France - A Walk Through The Past 2024, Նոյեմբեր
Anonim
Image
Image
Pushbutton դեպի Arduino
Pushbutton դեպի Arduino

Համացանցին զանգելը տեղական/իրական վայրերից վեբ կայքերի վրա ազդելու համար է:

Լրացուցիչ տեղեկություններ դրա մասին.

makker.hu/RingTheWeb/

Ձեզ անհրաժեշտ կլինի.

  • 1 կոճակ
  • 10k դիմադրություն
  • Arduino (ցանկացած տեսակի)
  • մալուխներ
  • փոքր, ցածր էներգիայի համակարգիչ `այս դեպքում RPi
  • մուտք դեպի սերվեր կամ համակարգիչ ՝ հանրային IP- ով ՝ node.js- ով
  • կայքը

Քայլեր.

  1. Pushbutton arduino- ին
  2. Արդուինո ազնվամորի
  3. Ազնվամորի սերվերին
  4. Կայքը սերվերին

Քայլ 1. Կտտացրեք Arduino- ին

Նախ անհրաժեշտ է Arduino և սեղմիչ:

Դրանց ցանկացած տեսակ հնարավոր է, ընտրությունը ձեզնից է:

Նրանց միացնելու համար հետևեք Arduino- ի պաշտոնական կոճակների ձեռնարկին:

Ահա Arduino ծածկագիրը.

// Arduino կոդ ՝ թվային փին կարդալու և սերիական պորտին արժեք ուղարկելու համար

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // բացել սերիական պորտի pinMode (8, INPUT); // միացնել կոճակը Pin 8} int հաշվիչ = 0; // ինչ -որ բան օգտագործվեց ավելի ուշ void loop () {if (digitalRead (8) == 1) {// ստուգեք PIN 8 կարգավիճակը Serial.write ("8"); } ուշացում (100); հաշվիչ ++; եթե (հաշվիչ = 20) {// յուրաքանչյուր 20x100 = 2000ms -> հաշվիչ = 0; Serial.write ("0"); // սերվերին ուղարկում է «ես գոյություն ունեմ» հաղորդագրությունը}} // վերջ:

Քայլ 2. 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 տեղադրել սերիալային պորտ

Բացեք և պահեք something.js ֆայլը հետևյալ կոդով.

// սկզբնականացնել socket.io կապը.

var վարդակից; var io = պահանջում ('socket.io-client'); socket = io ("https://yourserver.com:port"); // եթե սերվերի հետ կապը հաջողված է.; // նախաստորագրել սերիական նավահանգստի հաղորդակցությունը, NB /dev = ttyACM0- ը կարող է փոխվել. 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 ('readable', function () {console.log ('Data:', port.read ());});

Այժմ դուք նույնպես պետք է կարգավորեք սերվերի կողմից գտնվող node.js ծածկագիրը, մինչ այդ կարող եք սկսել և փորձարկել սցենարը ըստ

հանգույց./ինչ -որ բան. js

Եթե ինչ -որ բան այն չէ, խնդրում եմ ինձ տեղյակ պահեք:

Քայլ 3: Սերվերի կողային ծածկագիր

Սերվերի կողքի ծածկագիր
Սերվերի կողքի ծածկագիր

Սերվերի կողմից մեզ անհրաժեշտ են node.js socket.io սերվերով:

Այսպիսով, ավելացրեք այն հետևյալով.

npm տեղադրել socket-io

Այնուհետև 2 -րդ քայլի համար ձեզ հարկավոր կլինի ծածկագրի նմանատիպ սցենար, այն տարբերությամբ, որ այն սպասում է միացումներին, և եթե դրանք ներկա են, ապա այն կհեռարձակի հաճախորդից ուղարկված ցանկացած հաղորդագրություն բոլոր հաճախորդներին: դեպքում, կայքի օգտվողներին…

Այսպիսով, բացեք serverscript.js հետևյալը.

var http = պահանջում ('http'), io = պահանջել ('socket.io'); // բացել նվազագույն http սերվեր: socket.io- ին դա պետք է: var server = http.createServer (գործառույթ (պահանջ, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('բարև');}); // միացրեք tcp վարդակից - սահմանեք ձեր նավահանգիստը: server.listen (7004, գործառույթ () {console.log («TCP սերվեր, որն աշխատում է 7004 նավահանգստում»);}); // վերլուծել tcp հաղորդագրությունները var socket = io.listen (սերվեր); socket.on («կապ», գործառույթ (հաճախորդ, rinfo) {client.broadcast.emit («համակարգ», «ինչ -որ մեկը միացված է …»); client.on («հաղորդագրություն», գործառույթ (իրադարձություն) {console.log (իրադարձություն); // ցանկացած հաղորդագրություն հեռարձակել յուրաքանչյուր միացված օգտվողի! socket.emit («հաղորդագրություն», իրադարձություն);}); client.on («բոլորը», գործառույթը (իրադարձություն) {}); գործառույթը () {socket.emit ('հաղորդագրություն', 'ինչ -որ մեկը անջատված է…');});});

Փորձեք փորձարկել այն

հանգույց./serverscript.js

Եթե հաճախորդը նույնպես աշխատում է, դուք պետք է տեսնեք նրանց հաղորդակցությունը երկու վահանակների վրա: Առնվազն սրանք.

Տվյալներ `0

-պարբերաբար պատմում է համակարգին, որ Arduino-> Raspberry-> սերվերային հաղորդակցությունն աշխատում է:

եւ

Տվյալներ `8

- ասում է, որ կոճակը միացված է:

Քայլ 4: Կարգավորեք կայքը

Կարգավորել կայքը
Կարգավորել կայքը

Այժմ մենք պատրաստ ենք 75% -ով:

Ավարտեք քրտնաջան աշխատանքը ՝ ներառելով վեբ կայքի ծածկագիրը:

Հեշտ է:

նախ, ներառեք socket.io հաճախորդը.

ապա ստեղծեք հաղորդագրությունների անալիզատոր համակարգ.

var վարդակից;

socket = io ("yourserver.com:port"); socket.on ('Connect', function () {socket.send ('anonym client - a website user - is connected!'); socket.on ('message', function (msg) {// if you want to see յուրաքանչյուր հաղորդագրություն, պարզապես մեկնաբանություն արեք այն. "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; if (msg == "/client1 1") {// այստեղ կարող եք ինչ -որ բան տեղադրել որն արձագանքում է կապված հաճախորդի կարգավիճակին};});

Voilá!

պատրաստ է:

Խորհուրդ ենք տալիս: