Përmbajtje:

Ring Web!: 4 hapa
Ring Web!: 4 hapa

Video: Ring Web!: 4 hapa

Video: Ring Web!: 4 hapa
Video: Как проверить крышку расширительного бачка 2024, Korrik
Anonim
Image
Image
Pushbutton në Arduino
Pushbutton në Arduino

Ring Web është për të prekur faqet e internetit nga vendet lokale/reale.

Më shumë informacion në lidhje me të:

makker.hu/RingTheWeb/

Do t'ju duhet:

  • 1 buton
  • Rezistencë 10k
  • Arduino (çdo lloj)
  • kabllot
  • kompjuter i vogël, me fuqi të ulët - në këtë rast një RPi
  • qasje në një server ose kompjuter me IP publike me node.js
  • faqe interneti

Hapat:

  1. Butoni në arduino
  2. Arduino në mjedër
  3. Mjedër në server
  4. Uebfaqe në server

Hapi 1: Butoni në Arduino

Së pari ju duhet një Arduino dhe një buton shtytës!

Çdo lloj i tyre është i mundur, ju takon juve të zgjidhni.

Për t'i lidhur ato, ju lutemi ndiqni tutorialin zyrtar të butonave të Arduino.

Këtu është kodi Arduino:

// Kodi Arduino për leximin e një kodi dixhital dhe dërgimin e vlerës në portin serik

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // hapni portin serik pinMode (8, INPUT); // lidheni butonin me Pin 8} int counter = 0; // diçka e përdorur më vonë void loop () {if (digitalRead (8) == 1) {// kontrolloni statusin e pinit 8 Serial.write ("8"); } vonesë (100); banak ++; if (counter = 20) {// çdo 20x100 = 2000ms -> counter = 0; Serial.write ("0"); // dërgon një mesazh "unë jam ekzistues" në server}} // kjo është e gjitha!

Hapi 2: Arduino në mjedër

Arduino në mjedër
Arduino në mjedër

Tani mund ta lidhim Arduino me një kompjuter. Në këtë rast ne përdorim një mjedër, për shkak të konsumit të ulët të energjisë.

Lidheni atë përmes USB ose drejtpërdrejt me kunjat RX-TX, të përshkruara këtu.

Pastaj instaloni node.js dhe npm siç përshkruhet këtu. Fjalët kyçe janë:

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

dhe pastaj

sudo apt -get install -y nodejs

Npm (menaxheri i paketave të Node.js) ka nevojë për module socket.io-client dhe serialport, kështu që instalojini ato:

npm install socket.io-client

npm instaloni portin serial

Hapni dhe ruani një skedar something.js me kodin e mëposhtëm:

// inicializoni lidhjen socket.io:

fole var; var io = kërkoj ('socket.io-client'); fole = io ("https://yourserver.com:port"); // nëse lidhja me serverin është e suksesshme: socket.on ('Connect', function () {socket.send ("Unë jam këtu!"); console.log ("lidhur me serverin");}); // iniconi komunikimin e portit serik, NB /dev = ttyACM0 mund të ndryshohet: var SerialPort = kërkojnë ('serialport'); var serialPort = SerialPort i ri ('/dev/ttyACM0', {baudRate: 9600}); // Nëse diçka vjen nga Arduino, dërgon mesazhe të ndryshme // në server sipas tij serialPort.on ('të dhëna', funksion (të dhëna) {console.log ('Të dhëna:', data.toString ('ascii')); if (data.indexOf ('8')! ==-1) {socket.send ('/RingTheBell 1');} if (data.indexOf ('0')! ==-1) {fole dërgoni ('/client1 1');}}); // Lexoni të dhënat që janë në dispozicion - mendoj se nuk është e nevojshme serialPort.on ('i lexueshëm', funksioni () {console.log ('Të dhënat:', port.read ());});

Tani Ju duhet të vendosni kodin node.js të serverit gjithashtu, derisa të mund të filloni dhe testoni skriptin duke

nyje./dicka.js

Nëse diçka nuk shkon, ju lutem më tregoni!

Hapi 3: Kodi nga ana e serverit

Kodi nga ana e serverit
Kodi nga ana e serverit

Nga ana e serverit, ne kemi nevojë për node.js me serverin socket.io.

Pra shtojeni me:

npm instaloni socket-io

Atëherë Ju do të keni nevojë për një skenar të ngjashëm me kodin në hapin e 2 -të, me ndryshimin, se ai pret lidhjet, dhe nëse ato janë të pranishme, ai do të transmetojë çdo mesazh të dërguar nga klienti te të gjithë klientët, në këtë rast, për përdoruesit e faqes në internet…

Pra, hapni një serverscript.js me sa vijon:

var http = kërkoj ('http'), io = kërkoj ('socket.io'); // hapni një server minimal http. socket.io ka nevojë për të. var server = http.createServer (funksioni (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('përshëndetje');}); // ndizni prizën tcp - vendosni portën tuaj! server.listen (7004, funksioni () {console.log ("Serveri TCP që funksionon në portën 7004");}); // analizoni mesazhet tcp var socket = io.listen (server); socket.on ('lidhje', funksion (klient, rinfo) {client.broadcast.emit ('sistem', 'dikush i lidhur …'); client.on ('mesazh', funksion (ngjarje) {console.log (ngjarje); // transmetoni çdo mesazh për çdo përdorues të lidhur! funksion () {socket.emit ('mesazh', 'dikush i shkëputur …');});});

Provoni ta provoni me

nyje./serverscript.js

Nëse klienti po funksionon gjithashtu, duhet të shihni komunikimin e tyre në të dy tastierët. Të paktën këto:

Të dhënat: 0

-i tregon periodikisht sistemit që komunikimi i serverit Arduino-> Raspberry-> po funksionon.

dhe

Të dhënat: 8

- tregon se butoni është aktiv.

Hapi 4: Konfiguroni Uebfaqen

Konfiguro faqen e internetit
Konfiguro faqen e internetit

Tani jemi gati me 75%!

Përfundoni punën e vështirë duke përfshirë kodin për faqen e internetit.

Është e lehtë.

së pari, përfshini klientin socket.io:

pastaj krijoni sistemin e analizuesit të mesazheve:

fole var;

fole = io ("Yourerver.com:port"); socket.on ('Connect', function () {socket.send ('klienti anonim - një përdorues i uebfaqes - është i lidhur!'); socket.on ('mesazh', funksioni (msg) {// nëse dëshironi të shihni çdo mesazh, thjesht mos e komentoni: // console.log (msg); nëse (msg == "/RingTheBell 1") // këtu vjen kodi për t'u përdorur për të shprehur ngjarjen e butonit: {document.body.style.background = "#ccc"; setTimeout (funksioni () {document.body.style.background = "#000";}, 1000);}; nëse (msg == "/client1 1") {// këtu mund të vendosni diçka i cili reagon ndaj statusit të klientit të lidhur};});

Voilá!

gati.

Recommended: