Sadržaj:

Nazovite web !: 4 koraka
Nazovite web !: 4 koraka

Video: Nazovite web !: 4 koraka

Video: Nazovite web !: 4 koraka
Video: Невероятные приключения итальянцев в России (4К, комедия, реж. Эльдар Рязанов, 1973 г.) 2024, Studeni
Anonim
Image
Image
Pritisnite gumb za Arduino
Pritisnite gumb za Arduino

Ring the Web služi za utjecaj na web stranice s lokalnih/stvarnih mjesta.

Više informacija o tome:

makker.hu/RingTheWeb/

Trebat će vam:

  • 1 gumb
  • 10k otpornik
  • Arduino (bilo koje vrste)
  • kabeli
  • malo računalo male snage - u ovom slučaju RPi
  • pristup poslužitelju ili računalu s javnom IP adresom s node.js
  • web stranica

Koraci:

  1. Pritisnite gumb za arduino
  2. Arduino do maline
  3. Malina na poslužitelj
  4. Web stranica na poslužitelj

Korak 1: Pritisnite gumb za Arduino

Prvo vam je potreban Arduino i gumb!

Bilo koja vrsta je moguća, na vama je da odaberete.

Za njihovo povezivanje slijedite službeni vodič za gumbe Arduina.

Evo Arduino koda:

// Arduino kôd za čitanje digitalnog pina i slanje vrijednosti na serijski port

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // otvaranje pinMode serijskog porta (8, INPUT); // povezivanje tipke na Pin 8} int brojač = 0; // nešto kasnije korišteno void loop () {if (digitalRead (8) == 1) {// provjerite status pin 8 Serial.write ("8"); } kašnjenje (100); brojač ++; if (brojač = 20) {// svakih 20x100 = 2000ms -> brojač = 0; Serial.write ("0"); // šalje poslužitelju poruku "postojeći sam"}} // to je sve!

Korak 2: Arduino do maline

Arduino do maline
Arduino do maline

Sada možemo povezati Arduino s računalom. U ovom slučaju koristimo malinu zbog male potrošnje energije.

Spojite ga putem USB-a ili izravno s ovdje opisanim pinovima RX-TX.

Zatim instalirajte node.js i npm kako je ovdje opisano. Ključne riječi su:

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

i onda

sudo apt -get install -y nodejs

Npm (upravitelj paketa Node.js-a) trebaju module socket.io-klijenta i module serijskog porta, pa ih instalirajte:

npm instalirajte socket.io-klijent

npm install serijski port

Otvorite i spremite datoteku something.js sa sljedećim kodom:

// inicijalizira socket.io vezu:

var utičnica; var io = require ('socket.io-client'); socket = io ("https://yourserver.com:port"); // ako je povezivanje sa poslužiteljem uspješno: socket.on ('connect', function () {socket.send ("ja sam ovdje!"); console.log ("spojen na poslužitelj");}); // inicijalizira komunikaciju serijskog porta, NB /dev = ttyACM0 se može promijeniti: var SerialPort = require ('serialport'); var serialPort = novi SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // Ako nešto dolazi s Arduina, šalje različite poruke // poslužitelju prema njemu 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) {socket. poslati ('/client1 1');}}); // Čitanje dostupnih podataka - mislim da nije potrebno serialPort.on ('čitljivo', function () {console.log ('Podaci:', port.read ());});

Sada biste trebali postaviti i kôd node.js na strani poslužitelja, do tada možete pokrenuti i testirati skriptu do

čvor./something.js

Ako nešto nije u redu, javite mi!

Korak 3: Kôd na strani poslužitelja

Kôd na strani poslužitelja
Kôd na strani poslužitelja

Na strani poslužitelja potreban nam je node.js sa poslužiteljem socket.io.

Zato ga dodajte sa:

npm instalirati socket-io

Tada će vam trebati skripta slična kodu u 2. koraku, s tom razlikom što čeka veze, a ako su prisutne emitirat će svaku poruku poslanu od klijenta svim klijentima, u ovom u slučaju korisnika web stranice …

Dakle, otvorite servercript.js sa sljedećim:

var http = require ('http'), io = require ('socket.io'); // otvoriti minimalni http poslužitelj. socket.io treba. var poslužitelj = http.createServer (funkcija (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('zdravo');}); // uključite tcp utičnicu - postavite port! server.listen (7004, function () {console.log ("TCP poslužitelj radi na portu 7004");}); // analiziramo tcp poruke var socket = io.listen (poslužitelj); socket.on ('veza', funkcija (klijent, rinfo) {client.broadcast.emit ('sustav', 'netko povezan …'); client.on ('poruka', funkcija (događaj) {console.log (događaj); // emitirajte bilo koju poruku svim povezanim korisnicima! socket.emit ('poruka', događaj);}); client.on ('svi', funkcija (događaj) {}); client.on ('prekini vezu', function () {socket.emit ('poruka', 'netko je isključen …');});});

Pokušajte to isprobati

čvor./serverscript.js

Ako i klijent radi, trebali biste vidjeti njihovu komunikaciju na obje konzole. Barem ove:

Podaci: 0

-povremeno govori sustavu da komunikacija Arduino-> Raspberry-> poslužitelj radi.

i

Podaci: 8

- govori da je gumb uključen.

Korak 4: Konfigurirajte web stranicu

Konfigurirajte web stranicu
Konfigurirajte web stranicu

Sada smo spremni sa 75%!

Završite naporan rad uključivanjem koda za web stranicu.

To je lako.

prvo, uključite socket.io klijenta:

zatim stvorite sustav za analizu poruka:

var utičnica;

socket = io ("yourserver.com:port"); socket.on ('connect', function () {socket.send ('anonimni klijent - korisnik web stranice - povezan je!'); socket.on ('message', function (msg) {// ako želite vidjeti svaku poruku, samo je raskomentirajte: // console.log (msg); if (msg == "/RingTheBell 1") // ovdje dolazi kôd za korištenje za izražavanje događaja tipke: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; if (msg == "/client1 1") {// ovdje možete postaviti nešto koji reagira na status povezanog klijenta};});

Voilá!

spreman.

Preporučeni: