Taula de continguts:
- Pas 1: feu clic a Arduino
- Pas 2: Arduino a Raspberry
- Pas 3: Codi del servidor
- Pas 4: configureu el lloc web
Vídeo: Sona al web: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
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:
- Polsador a arduino
- Arduino a Raspberry
- Raspberry al servidor
- 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
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
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
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:
Un gran altaveu Bluetooth que sona - Reciclat !: 7 passos (amb imatges)
Un gran altaveu Bluetooth que sona | Upcycled !: Fa un temps, el meu amic em va enviar una foto d’una funda d’altaveus vella estesa al terrat. Com podeu veure a la imatge (al següent pas), es troba en un estat horrible. Afortunadament, quan li vaig demanar que me la donés, va acceptar. Jo havia estat planejant construir
Sona un Piezo Buzzer amb Blynk i XinaBox: 9 passos
Emet un sonor piezo amb Blynk i XinaBox: controleu qualsevol element de 5V mitjançant Blynk i xChips. Aquest projecte fa sonar un Piezo Buzzer des del meu telèfon
Reutilitzar un mòdul de càmera web HP WebCam 101 Aka 679257-330 com a càmera web USB genèrica: 5 passos
Reutilitzeu un mòdul de càmera web HP WebCam 101 Aka 679257-330 com a càmera web USB genèrica: vull condimentar el meu Panasonic CF-18 de 14 anys amb una nova càmera web, però Panasonic ja no admet aquesta meravellosa màquina, així que he de utilitzeu la matèria grisa per a alguna cosa més fàcil que b & b (cerveses i hamburgueses). Aquesta és la primera part
Tutorial IO del controlador web amb un lloc web en directe i exemples de treball: 8 passos
Tutorial IO del controlador web utilitzant un lloc web actiu i exemples de treball: Tutorial IO del controlador web utilitzant un lloc web actiu i exemples de treballs Última actualització: 26/07/2015 (torneu a comprovar-ho sovint mentre actualitzo aquest instructable amb més detalls i exemples) Antecedents un desafiament interessant que se’m va presentar. Necessitava
Com iniciar un servidor web / lloc web: 5 passos
Com iniciar un servidor web / lloc web casolà: ho vaig fer durant el cap de setmana perquè m'he avorrit i gaudeix-ne