Satura rādītājs:

Zvaniet tīmeklī!: 4 soļi
Zvaniet tīmeklī!: 4 soļi

Video: Zvaniet tīmeklī!: 4 soļi

Video: Zvaniet tīmeklī!: 4 soļi
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, Novembris
Anonim
Image
Image
Spiediet pogu Arduino
Spiediet pogu Arduino

Ring the Web ir paredzēts vietņu ietekmēšanai no vietējām/reālām vietām.

Vairāk informācijas par to:

makker.hu/RingTheWeb/

Jums būs nepieciešams:

  • 1 spiedpoga
  • 10k rezistors
  • Arduino (jebkura veida)
  • kabeļi
  • mazs, mazjaudas dators - šajā gadījumā RPi
  • piekļuve serverim vai datoram ar publisku IP ar node.js
  • mājas lapā

Soļi:

  1. Spiediet pogu arduino
  2. Arduino uz aveņu
  3. Aveņu uz serveri
  4. Vietne uz serveri

1. solis: spiediet pogu Arduino

Vispirms jums ir nepieciešams Arduino un spiedpoga!

Jebkurš no tiem ir iespējams, tas ir atkarīgs no jums.

Lai tos savienotu, lūdzu, izpildiet Arduino oficiālo pogu apmācību.

Šeit ir Arduino kods:

// Arduino kods digitālās tapas lasīšanai un vērtības nosūtīšanai uz seriālo portu

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // atvērt seriālo portu pinMode (8, INPUT); // savienot spiedpogu ar Pin 8} int counter = 0; // kaut kas lietots vēlāk void loop () {if (digitalRead (8) == 1) {// pārbaudīt pin 8 statusu Serial.write ("8"); } kavēšanās (100); skaitītājs ++; ja (skaitītājs = 20) {// ik pēc 20x100 = 2000ms -> skaitītājs = 0; Serial.write ("0"); // nosūta serverim ziņojumu "es esmu esošs"}} // tas arī viss!

2. solis: Arduino uz aveņu

Arduino uz aveņu
Arduino uz aveņu

Tagad mēs varam savienot Arduino ar datoru. Šajā gadījumā mēs izmantojam aveņu, jo tai ir zems enerģijas patēriņš.

Pievienojiet to, izmantojot USB vai tieši ar šeit aprakstītajām RX-TX tapām.

Pēc tam instalējiet node.js un npm, kā aprakstīts šeit. Atslēgvārdi ir:

čokurošanās -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

un tad

sudo apt -get install -y nodejs

Npm (Node.js pakotņu pārvaldniekam) ir nepieciešami socket.io-client un serialport moduļi, tāpēc instalējiet tos:

npm instalējiet socket.io-client

npm instalējiet seriālo portu

Atveriet un saglabājiet failu something.js ar šādu kodu:

// inicializējiet socket.io savienojumu:

var ligzda; var io = pieprasīt ('socket.io-client'); ligzda = io ("https://yourserver.com:port"); // ja savienojums ar serveri ir veiksmīgs: socket.on ('connect', function () {socket.send ("es esmu šeit!"); console.log ("savienots ar serveri");}); // inicializēt seriālā porta sakarus, NB /dev = ttyACM0 var mainīt: var SerialPort = need ('serialport'); var serialPort = jauns SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // Ja kaut kas nāk no Arduino, tas nosūta dažādus ziņojumus // uz serveri atbilstoši tam serialPort.on ('dati', funkcija (dati) {console.log ('Dati:', data.toString ('ascii')); if (data.indexOf ('8')! ==-1) {socket.send ('/RingTheBell 1');} if (data.indexOf ('0')! ==-1) {socket. sūtīt ('/client1 1');}}); // Lasīt pieejamos datus - es domāju, ka tas nav nepieciešams serialPort.on ('lasāms', function () {console.log ('Dati:', port.read ());});

Tagad jums jāiestata arī servera puses mezgls node.js, līdz varat sākt un pārbaudīt skriptu

mezgls./ kaut kas.js

Ja kaut kas nav kārtībā, lūdzu, informējiet mani!

3. darbība: servera puses kods

Servera puses kods
Servera puses kods

Servera pusē mums ir nepieciešams node.js ar socket.io serveri.

Tāpēc pievienojiet to:

npm instalējiet socket-io

Tad jums būs nepieciešams līdzīgs skripts kodam otrajā solī, ar atšķirību, ka tas gaida savienojumus, un, ja tie ir klāt, tas pārraidīs visus ziņojumus, kas no klienta nosūtīti visiem klientiem. gadījumā vietnes lietotājiem …

Tātad, atveriet servercript.js ar sekojošo:

var http = prasīt ('http'), io = pieprasīt ('socket.io'); // atvērt minimālu http serveri. socket.io to vajag. var server = http.createServer (funkcija (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('sveiki');}); // ieslēdz tcp ligzdu - iestatiet portu! server.listen (7004, function () {console.log ("TCP serveris, kas darbojas 7004. portā");}); // analizēt tcp ziņojumus var socket = io.listen (serveris); socket.on ('savienojums', funkcija (klients, rinfo) {client.broadcast.emit ('sistēma', 'kāds pievienots …'); client.on ('ziņojums', funkcija (notikums) {console.log (notikums); // pārraidīt jebkuru ziņojumu visiem saistītajiem lietotājiem! socket.emit ('ziņojums', notikums);}); client.on ('ikviens', funkcija (notikums) {}); client.on ('atvienot', function () {socket.emit ('message', 'somebody disconneted …');});});

Mēģiniet to pārbaudīt ar

mezgls./serverscript.js

Ja klients arī darbojas, jums vajadzētu redzēt viņa saziņu abās konsolēs. Vismaz šie:

Dati: 0

-periodiski paziņo sistēmai, ka Arduino-> Raspberry-> servera sakari darbojas.

un

Dati: 8

- norāda, ka poga ir ieslēgta.

4. darbība: konfigurējiet vietni

Konfigurējiet vietni
Konfigurējiet vietni

Tagad mēs esam gatavi ar 75%!

Pabeidziet smago darbu, iekļaujot vietnes kodu.

Tas ir viegli.

vispirms iekļaujiet socket.io klientu:

pēc tam izveidojiet ziņojumu analizatora sistēmu:

var ligzda;

ligzda = io ("yourserver.com:port"); socket.on ('connect', function () {socket.send ('anonīms klients - vietnes lietotājs - ir pievienots!'); socket.on ('message', function (msg) {// ja vēlaties redzēt katru ziņojumu, vienkārši noņemiet komentārus: // console.log (msg); if (msg == "/RingTheBell 1") // šeit ir kods, kas jāizmanto spiedpogu notikuma izpausmei: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; if (msg == "/client1 1") {// šeit jūs varat ievietot kaut ko kas reaģē uz saistītā klienta statusu};});

Voila!

gatavs.

Ieteicams: