Cuprins:
- Pasul 1: Apăsați butonul către Arduino
- Pasul 2: Arduino la Zmeură
- Pasul 3: Cod partea serverului
- Pasul 4: Configurați site-ul web
Video: Sună pe web !: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Ring the Web este destinat afectării site-urilor web din locuri locale / reale.
Mai multe informații despre asta:
makker.hu/RingTheWeb/
O să ai nevoie:
- 1 buton
- Rezistor de 10k
- Arduino (orice tip)
- cabluri
- computer mic, de mică putere - în acest caz un RPi
- acces la un server sau computer cu IP public cu node.js
- site-ul web
Pași:
- Buton pentru arduino
- Arduino la Zmeură
- Raspberry la server
- Site-ul către server
Pasul 1: Apăsați butonul către Arduino
Mai întâi ai nevoie de un Arduino și de un buton!
Orice tip de ele este posibil, depinde de dvs. să alegeți.
Pentru a le conecta, urmați tutorialul oficial al butonului Arduino.
Iată codul Arduino:
// Cod Arduino pentru citirea unui pin digital și trimiterea valorii către portul serial
// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // deschideți portul serial pinMode (8, INPUT); // conectați butonul la Pinul 8} contor int = 0; // ceva folosit ulterior void loop () {if (digitalRead (8) == 1) {// verificați starea pinului 8 Serial.write ("8"); } întârziere (100); contor ++; if (contor = 20) {// fiecare 20x100 = 2000ms -> contor = 0; Serial.write („0”); // trimite un mesaj „exist” la server}} // atât!
Pasul 2: Arduino la Zmeură
Acum putem conecta Arduino la un computer. În acest caz, folosim un Raspberry, datorită consumului său redus de energie.
Conectați-l prin USB sau direct cu pinii RX-TX, descriși aici.
Apoi instalați node.js și npm așa cum este descris aici. Cuvintele cheie sunt:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
și apoi
sudo apt-get install -y nodejs
Npm (managerul de pachete Node.js) are nevoie de module socket.io-client și serialport, deci instalați-le:
npm instalați socket.io-client
npm instala serialport
Deschideți și salvați un fișier something.js cu următorul cod:
// inițializați conexiunea socket.io:
var soclu; var io = require ('socket.io-client'); socket = io ("https://yourserver.com:port"); // dacă conexiunea la server are succes: socket.on ('connect', function () {socket.send ("sunt aici!"); console.log ("conectat la server");}); // inițializați comunicația portului serial, NB / dev = ttyACM0 poate fi modificat: var SerialPort = require ('serialport'); var serialPort = new SerialPort ('/ dev / ttyACM0', {baudRate: 9600}); // Dacă ceva vine de la Arduino, trimite mesaje diferite // către server în conformitate cu serialPort.on ('date', funcție (date) {console.log ('Date:', data.toString ('ascii')); if (data.indexOf ('8')! == - 1) {socket.send ('/ RingTheBell 1');} if (data.indexOf ('0')! == - 1) {socket. send ('/ client1 1');}}); // Citiți datele disponibile - cred că nu este necesar serialPort.on ('lizibil', funcție () {console.log ('Date:', port.read ());});
Acum ar trebui să configurați și codul server node.js, până când puteți începe și testa scriptul până la
nod./ceva.js
Dacă ceva nu este în regulă, vă rog să-mi spuneți!
Pasul 3: Cod partea serverului
Pe partea de server, avem nevoie de node.js cu server socket.io.
Deci, adăugați-l cu:
npm instalați socket-io
Apoi, veți avea nevoie de un script similar cu codul din pasul 2, cu diferența, că așteaptă conexiunile și, dacă acestea sunt prezente, va transmite orice mesaj trimis de la client tuturor clienților, în acest caz, utilizatorilor site-ului …
Deci, deschideți un serverscript.js cu următoarele:
var http = require ('http'), io = require ('socket.io'); // deschideți un server http minim. socket.io are nevoie de el. var server = http.createServer (funcție (req, res) {res.writeHead (200, {'Content-Type': 'text / html'}); res.end ('hello');}); // pornește soclul tcp - setează-ți portul! server.listen (7004, function () {console.log ("Server TCP care rulează pe portul 7004");}); // analizează mesajele tcp var socket = io.listen (server); socket.on ('conexiune', funcție (client, rinfo) {client.broadcast.emit ('sistem', 'cineva conectat …'); client.on ('mesaj', funcție (eveniment)) {console.log (eveniment); // difuzați orice mesaj către fiecare utilizator conectat! socket.emit („mesaj”, eveniment);}); client.on („toată lumea”, funcție (eveniment) {}); client.on („deconectați” function () {socket.emit ('mesaj', 'cineva deconectat …');});});
Încercați să-l testați cu
nod./serverscript.js
Dacă și clientul rulează, ar trebui să vedeți comunicarea lor pe ambele console. Cel puțin acestea:
Date: 0
- spune periodic sistemului că comunicarea Arduino-> Raspberry-> server funcționează.
și
Date: 8
- spune că butonul este pornit.
Pasul 4: Configurați site-ul web
Acum suntem gata cu 75%!
Finalizați munca grea cu includerea codului pentru site-ul web.
Este ușor.
mai întâi, includeți clientul socket.io:
apoi creați sistemul de analiză a mesajelor:
soclu var;
socket = io ("yourserver.com:port"); socket.on ('connect', function () {socket.send ('client anonim - un utilizator al site-ului web - este conectat!'); socket.on ('message', function (msg) {// if You want to see fiecare mesaj, pur și simplu decomentați-l: // console.log (msg); if (msg == "/ RingTheBell 1") // aici vine codul de utilizat pentru exprimarea evenimentului pushbutton: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "# 000";}, 1000);}; if (msg == "/ client1 1") {// aici puteți plasa ceva care reacționează la starea clientului conectat};});
Voilá!
gata.
Recomandat:
Telefonul vechi sună din nou: 4 pași
Sună din nou vechiul telefon: Bună, numele meu este Lazar și acesta este primul meu instructabil. Aici voi arăta și explica cum am reușit să conectez telefonul vechi cu firele de copac care ies din acesta la un nou sistem cu doar două fire. Acest lucru a fost destul de ușor de rezolvat și va fi scurt și inteligent
Sună un buzzer piezo cu Blynk și XinaBox: 9 pași
Sună un buzzer piezo cu Blynk și XinaBox: controlează orice element de 5V folosind Blynk și xChips. Acest proiect sună un Piezo Buzzer de pe telefonul meu
Reutilizați un modul de cameră Web HP WebCam 101 Aka 679257-330 ca o cameră Web USB generică: 5 pași
Reutilizați un modul de cameră Web HP WebCam 101 Aka 679257-330 ca o cameră web USB generică: vreau să condimentez Panasonic CF-18 de 14 ani cu o cameră web nouă, dar Panasonic nu mai suportă această mașină minunată, așa că trebuie să folosiți materia cenușie pentru ceva mai ușor decât b & b (beri și burgeri). Aceasta este prima parte
Home Automation: Sună o alarmă și afișează pe ecranul LCD când temperatura depășește valoarea pragului: 5 pași
Home Automation: Sună o alarmă și afișează-te pe ecranul LCD când temperatura este peste valoarea pragului: Acest blog va demonstra cum să faci un sistem Home Automation care va începe să sune o alarmă ori de câte ori temperatura depășește valoarea pragului programat. Se va afișa în continuare temperatura curentă a camerei pe ecranul LCD și nevoia de acțiune
Utilizarea Parallax Basic Stamp II pentru a suna la o sonerie de la distanță: 4 pași (cu imagini)
Utilizarea Parallax Basic Stamp II pentru a suna de la distanță la o sonerie: Problema? Un câine care se excită mult când sună soneria. Soluția? Sunați la sonerie la momente aleatorii când nimeni nu este acolo și nimeni nu răspunde la ea, astfel încât să contracondiționeze câinele - pentru a rupe asocierea pe care o sună la ușă