Sadržaj:

Zvonite Webu !: 4 koraka
Zvonite Webu !: 4 koraka

Video: Zvonite Webu !: 4 koraka

Video: Zvonite Webu !: 4 koraka
Video: КРИМИНОЛОГ (1-4) Хрупкая девушка жестко раскалывает преступников - ДЕТЕКТИВ HD | НОВИНКА 2018 2024, Decembar
Anonim
Image
Image
Pritisnite dugme za Arduino
Pritisnite dugme 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 dugme
  • 10k otpornik
  • Arduino (bilo koje vrste)
  • kablovi
  • mali računar male snage - u ovom slučaju RPi
  • pristup serveru ili računaru sa javnom IP adresom sa node.js
  • web stranica

Koraci:

  1. Pritisnite dugme za arduino
  2. Arduino do maline
  3. Malina na server
  4. Veb lokacija na server

Korak 1: Pritisnite dugme za Arduino

Prvo vam trebaju Arduino i dugme!

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

Da biste ih povezali, 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 serijskog porta pinMode (8, INPUT); // povezivanje tastera sa 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); counter ++; 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.

Povežite ga putem USB-a ili direktno sa 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 serialport

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

// inicijalizira socket.io vezu:

var socket; var io = require ('socket.io-client'); socket = io ("https://yourserver.com:port"); // ako je veza sa serverom uspešna: socket.on ('connect', function () {socket.send ("ovde sam!"); console.log ("povezano sa serverom");}); // 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 iz Arduina, šalje različite poruke // serveru 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. send ('/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 servera, do tada možete pokrenuti i testirati skriptu do

node./something.js

Ako nešto nije u redu, javite mi!

Korak 3: Kod na strani servera

Kod na strani servera
Kod na strani servera

Na strani servera potreban nam je node.js sa socket.io serverom.

Zato ga dodajte sa:

npm install socket-io

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

Dakle, otvorite servercript.js sa sljedećim:

var http = require ('http'), io = require ('socket.io'); // otvaranje minimalnog http servera. socket.io treba. var server = 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 server radi na portu 7004");}); // analiziramo tcp poruke var socket = io.listen (server); socket.on ('veza', funkcija (klijent, rinfo) {client.broadcast.emit ('sistem', 'neko povezan …'); client.on ('poruka', funkcija (događaj) {console.log (događaj); // emitira 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', 'neko je isključen …');});});

Pokušajte to isprobati

node./serverscript.js

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

Podaci: 0

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

i

Podaci: 8

- govori da je dugme uključeno.

Korak 4: Konfigurirajte web lokaciju

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 kreirajte sistem za analizu poruka:

var socket;

socket = io ("yourserver.com:port"); socket.on ('connect', function () {socket.send ('anonym client - korisnik web stranice - povezan je!'); socket.on ('message', function (msg) {// ako želite vidjeti svaku poruku, samo raskomentirajte: // console.log (msg); if (msg == "/RingTheBell 1") // ovdje dolazi kôd koji možete koristiti za izražavanje događaja sa tipkom: {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čuje se: