Taula de continguts:

Sona al web: 4 passos
Sona al web: 4 passos

Vídeo: Sona al web: 4 passos

Vídeo: Sona al web: 4 passos
Vídeo: НОЧЬ В СТРАШНОМ ДОМЕ С ДЕМОНОМ / НЕ СТОИЛО СЮДА ПРИХОДИТЬ 2024, Juliol
Anonim
Image
Image
Polsador a Arduino
Polsador a Arduino

Ring the Web serveix per afectar llocs web des de llocs locals / reals.

Més informació al respecte:

makker.hu/RingTheWeb/

Necessitareu:

  • 1 polsador
  • 10k resistència
  • Arduino (qualsevol tipus)
  • cables
  • ordinador petit i de baixa potència: en aquest cas un RPi
  • accés a un servidor o ordinador amb IP pública amb node.js
  • lloc web

Passos:

  1. Polsador a arduino
  2. Arduino a Raspberry
  3. Raspberry al servidor
  4. Lloc web al servidor

Pas 1: feu clic a Arduino

Primer necessiteu un Arduino i un polsador.

Qualsevol tipus d’ells és possible, és la vostra decisió.

Per connectar-los, seguiu el tutorial oficial de botons d’Arduino.

Aquí teniu el codi Arduino:

// Codi Arduino per llegir un pin digital i enviar valor al port sèrie

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // obriu el port sèrie pinMode (8, INPUT); // connecteu el polsador al Pin 8} comptador int = 0; // alguna cosa usada posteriorment void loop () {if (digitalRead (8) == 1) {// comprova l'estat del pin 8 Serial.write ("8"); } retard (100); comptador ++; if (comptador = 20) {// cada 20x100 = 2000ms -> comptador = 0; Serial.write ("0"); // envia un missatge "estic existent" al servidor}} // això és tot!

Pas 2: Arduino a Raspberry

Arduino a Raspberry
Arduino a Raspberry

Ara podem connectar Arduino a un ordinador. En aquest cas, fem servir un gerd, pel seu baix consum d’energia.

Connecteu-lo per USB o directament amb els pins RX-TX, descrits aquí.

A continuació, instal·leu node.js i npm tal com es descriu aquí. Les paraules clau són:

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

i llavors

sudo apt-get install -y nodejs

Npm (el gestor de paquets de Node.js) necessita mòduls socket.io-client i serialport, així que instal·leu-los:

npm install socket.io-client

npm install serialport

Obriu i deseu un fitxer something.js amb el codi següent:

// inicialitzar la connexió socket.io:

sòcol var; var io = require ('socket.io-client'); socket = io ("https://elvósservidor.com:port"); // si la connexió al servidor és correcta: socket.on ('connect', function () {socket.send ("estic aquí!"); console.log ("connectat al servidor");}); // inicialitzar la comunicació del port sèrie, NB / dev = ttyACM0 es pot canviar: var SerialPort = require ('serialport'); var serialPort = new SerialPort ('/ dev / ttyACM0', {baudRate: 9600}); // Si alguna cosa prové de l'Arduino, envia diferents missatges // al servidor segons serialPort.on ('dades', funció (dades) {console.log ('Dades:', data.toString ('ascii')); if (data.indexOf ('8')! == - 1) {socket.send ('/ RingTheBell 1');} if (data.indexOf ('0')! == - 1) {socket. enviar ('/ client1 1');}}); // Llegiu les dades disponibles - crec que no és necessari serialPort.on ('llegible', funció () {console.log ('Dades:', port.read ());});

Ara també heu de configurar el codi node.js del servidor, fins que pugueu iniciar i provar l'script

node./something.js

Si alguna cosa no funciona, si us plau, aviseu-me.

Pas 3: Codi del servidor

Codi del servidor
Codi del servidor

Pel que fa al servidor, necessitem node.js amb el servidor socket.io.

Afegiu-lo amb:

npm install socket-io

A continuació, necessitareu un script similar al codi del segon pas, amb la diferència que espera les connexions i, si són presents, emetrà qualsevol missatge enviat des del client a tots els clients, en aquest cas, als usuaris del lloc web …

Per tant, obriu un serverscript.js amb el següent:

var http = require ('http'), io = require ('socket.io'); // obriu un servidor http mínim. socket.io ho necessita. var servidor = http.createServer (funció (requ, res) {res.writeHead (200, {'Content-Type': 'text / html'}); res.end ('hola');}); // activeu el socket TCP: configureu el port. server.listen (7004, function () {console.log ("servidor TCP que s'executa al port 7004");}); // analitzar els missatges tcp var socket = io.listen (servidor); socket.on ('connexió', funció (client, rinfo) {client.broadcast.emit ('sistema', 'algú connectat …'); client.on ('missatge', funció (esdeveniment) {console.log (esdeveniment); // emet qualsevol missatge a tots els usuaris connectats! socket.emit ('missatge', esdeveniment);}); client.on ('tothom', funció (esdeveniment) {}); client.on ('desconnectar', function () {socket.emit ('missatge', 'algú desconnectat …');});});

Proveu de provar-ho amb

node./serverscript.js

Si el client també s’executa, hauríeu de veure la seva comunicació a les dues consoles. Almenys aquests:

Dades: 0

- indica periòdicament al sistema que la comunicació del servidor Arduino-> Raspberry-> funciona.

i

Dades: 8

- indica que el botó està activat.

Pas 4: configureu el lloc web

Configureu el lloc web
Configureu el lloc web

Ara estem preparats amb el 75%!

Acabeu el treball dur amb incloure el codi del lloc web.

És fàcil.

primer, inclou el client socket.io:

a continuació, creeu el sistema analitzador de missatges:

sòcol var;

socket = io ("yourserver.com:port"); socket.on ('connect', function () {socket.send ('client anònim - un usuari del lloc web - està connectat!'); socket.on ('message', function (msg) {// if You want to see cada missatge, només cal que el comenteu: // console.log (msg); if (msg == "/ RingTheBell 1") // aquí ve el codi que cal utilitzar per expressar l'esdeveniment del botó: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "# 000";}, 1000);}; if (msg == "/ client1 1") {// aquí podeu col·locar alguna cosa que reacciona a l'estat de client connectat};});

Voilà!

llestos.

Recomanat: