Sisukord:

Helista veebis!: 4 sammu
Helista veebis!: 4 sammu

Video: Helista veebis!: 4 sammu

Video: Helista veebis!: 4 sammu
Video: Памяти Андрея Зяблых. Холангиокарцинома 4 стадии 2024, November
Anonim
Image
Image
Nupp Arduino poole
Nupp Arduino poole

Ring the Web on mõeldud veebisaitide mõjutamiseks kohalikest/päris kohtadest.

Rohkem infot selle kohta:

makker.hu/RingTheWeb/

Te vajate:

  • 1 nupp
  • 10k takisti
  • Arduino (mis tahes tüüpi)
  • kaablid
  • väike, väikese energiatarbega arvuti - antud juhul RPi
  • juurdepääs serverile või arvutile, millel on avalik IP koos nod.js -ga
  • veebisait

Sammud:

  1. Nupp arduinole
  2. Arduino vaarikani
  3. Vaarikas serverisse
  4. Veebisait serverisse

Samm: vajutage nuppu Arduino

Kõigepealt vajate Arduinot ja nuppu!

Igasugune neist on võimalik, see on teie enda valida.

Nende ühendamiseks järgige Arduino ametlikku nuppude õpetust.

Siin on Arduino kood:

// Arduino kood digitaalse tihvti lugemiseks ja väärtuse saatmiseks jadaporti

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // jadaporti avamine pinMode (8, INPUT); // ühenda nupp tihvtiga 8} int counter = 0; // midagi kasutatud hiljem void loop () {if (digitalRead (8) == 1) {// kontrollige tihvti 8 olekut Serial.write ("8"); } viivitus (100); loendur ++; if (loendur = 20) {// iga 20x100 = 2000ms -> loendur = 0; Serial.write ("0"); // saadab serverile sõnumi "ma olen olemas"}} // see on kõik!

2. samm: Arduino vaarikasse

Arduino vaarikani
Arduino vaarikani

Nüüd saame Arduino arvutiga ühendada. Sel juhul kasutame vaarikat selle väikese energiatarbimise tõttu.

Ühendage see USB kaudu või otse siin kirjeldatud RX-TX kontaktidega.

Seejärel installige node.js ja npm, nagu siin kirjeldatud. Märksõnad on:

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

ja siis

sudo apt -get install -y nodejs

Npm (Node.js paketihaldur) vajab socket.io-client ja serialport mooduleid, nii et installige need:

npm installige pesa.io-klient

npm installige jadaport

Avage ja salvestage fail midagi.js järgmise koodiga:

// socket.io ühenduse initsialiseerimine:

var pistikupesa; var io = nõuda ('socket.io-client'); pistikupesa = io ("https://yourserver.com:port"); // kui serveriga ühendamine õnnestub: socket.on ('connect', function () {socket.send ("ma olen siin!"); console.log ("serveriga ühendatud");}); // jadapordi kommunikatsiooni initsialiseerimine, NB /dev = ttyACM0 saab muuta: var SerialPort = vaja ('jadaport'); var serialPort = uus SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // Kui midagi pärineb Arduino'st, saadab see serverile erinevaid sõnumeid // vastavalt sellele serialPort.on ('andmed', funktsioon (andmed) {console.log ('Andmed:', data.toString ('ascii')); if (data.indexOf ('8')! ==-1) {socket.send ('/RingTheBell 1');} if (data.indexOf ('0')! ==-1) {socket. saatma ('/klient1 1');}}); // Olemasolevate andmete lugemine - ma arvan, et see pole vajalik serialPort.on ('loetav', function () {console.log ('Andmed:', port.read ());});

Nüüd peaksite seadistama ka serveripoolse koodi node.js, kuni saate skripti käivitada ja testida

sõlm./miskit.js

Kui midagi on valesti, palun andke mulle sellest teada!

Samm: serveripoolne kood

Serveripoolne kood
Serveripoolne kood

Serveri poolel vajame me node.js koos socket.io serveriga.

Nii et lisage see koos:

npm installige pesa-io

Siis vajate teise sammu koodiga sarnast skripti, selle erinevusega, et see ootab ühendusi ja kui need on olemas, edastab see kõik kliendilt saadetud sõnumid kõigile klientidele. juhul veebisaidi kasutajatele …

Niisiis, avage servercript.js järgmiselt.

var http = nõuda ('http'), io = nõuda ('socket.io'); // minimaalse http -serveri avamine. socket.io vajab seda. var server = http.createServer (funktsioon (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('tere');}); // lülitage tcp -pistikupesa sisse - seadistage oma port! server.listen (7004, function () {console.log ("Pordis 7004 töötav TCP -server");}); // analüüsida tcp sõnumeid var socket = io.listen (server); socket.on ('ühendus', funktsioon (klient, rinfo) {klient.broadcast.emit ('süsteem', 'keegi ühendatud …'); client.on ('teade', funktsioon (sündmus) {console.log (sündmus); // edastage mis tahes sõnumeid kõigile ühendatud kasutajatele! socket.emit ('sõnum', sündmus);}); client.on ('kõik', funktsioon (sündmus) {}); client.on ('katkesta ühendus', function () {socket.emit ('sõnum', 'keegi on lahti ühendatud …');});});

Proovige seda testida

sõlm./serverscript.js

Kui ka klient töötab, peaksite nägema nende suhtlust mõlemal konsoolil. Vähemalt need:

Andmed: 0

-teatab perioodiliselt süsteemile, et Arduino-> Vaarika-> serveri side toimib.

ja

Andmed: 8

- ütleb, et nupp on sisse lülitatud.

Samm: konfigureerige veebisait

Veebisaidi seadistamine
Veebisaidi seadistamine

Nüüd oleme 75% valmis!

Lõpetage raske töö, lisades veebisaidi koodi.

See on lihtne.

esiteks lisage socket.io klient:

seejärel looge sõnumianalüsaatori süsteem:

var pistikupesa;

pistikupesa = io ("sinu server server.com"); socket.on ('connect', function () {socket.send ('anonüümne klient - veebisaidi kasutaja - on ühendatud!'); socket.on ('message', function (msg) {// kui soovite näha iga sõnumi puhul jätke see lihtsalt lahti: // console.log (msg); if (msg == "/RingTheBell 1") // siit tuleb kood, mida kasutada nupuvajutuse väljendamiseks: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; if (msg == "/client1 1") {// siia saate midagi paigutada mis reageerib ühendatud kliendi olekule};});

Voilá!

valmis.

Soovitan: