Sisukord:
- Samm: vajutage nuppu Arduino
- 2. samm: Arduino vaarikasse
- Samm: serveripoolne kood
- Samm: konfigureerige veebisait
Video: Helista veebis!: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
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:
- Nupp arduinole
- Arduino vaarikani
- Vaarikas serverisse
- 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
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
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
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:
HELISTA nagu auto! Sonari andur: 3 sammu
HELISTA nagu auto! Sonari andur: Mulle ei meeldi palju mürarikas piiks, mida saate tänapäevaste autodega, kui parkimisandur on sisse lülitatud, aga hei … see on üsna kasulik, kas pole?! Kas mul on vaja kaasaskantavat andurit, mis ütleb mulle, kui kaugele ma olen jõudnud? olen takistusest? Tõenäoliselt mitte, vähemalt seni, kuni mu silmad ei tööta
Kuidas ma tegin puuviljakorvi, kasutades veebis rakendust Fusion 360?: 5 sammu
Kuidas tegin puuviljakorvi, kasutades veebis Fusion 360 -s?: Mõni päev tagasi mõistsin, et pole kasutanud " ribisid " Fusion 360 funktsioon. Nii et ma mõtlesin seda selles projektis kasutada. "Ribide" lihtsaim rakendus funktsioon võib olla puuviljakorvi kujul, kas pole? Vaadake, kuidas seda kasutada
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Logige andmed sisse ja joonistage graafik veebis, kasutades NodeMCU, MySQL, PHP ja Chartjs.org: 4 sammu
Logige andmed sisse ja joonistage graafik veebis, kasutades NodeMCU, MySQL, PHP ja Chartjs.org. See juhend sisaldab kirjeldust selle kohta, kuidas saame kasutada Node MCU tahvlit andmete kogumiseks mitmelt andurilt, saata need andmed hostitud PHP -faili, mis seejärel lisab andmed MySQL andmebaas. Seejärel saab andmeid võrgus graafikuna vaadata, kasutades chart.js.A ba
Looge oma veebis surfamise tööriistariba: 5 sammu
Looge oma veebis surfamise tööriistariba: enne oma tööriistariba loomise kõigi sammude läbimist proovige kõigepealt näidata, kuidas tööriistariba töötab. Võite minna sellele saidile ja tööriistariba alla laadida .http: // cosmicconsciousness. ourtoolbar.com/Teel pole reklaamvara, viirust