Sisällysluettelo:

Soita verkkoon!: 4 vaihetta
Soita verkkoon!: 4 vaihetta

Video: Soita verkkoon!: 4 vaihetta

Video: Soita verkkoon!: 4 vaihetta
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Heinäkuu
Anonim
Image
Image
Painike Arduinolle
Painike Arduinolle

Ring the Web on tarkoitettu vaikuttamaan verkkosivustoihin paikallisista/todellisista paikoista.

Lisätietoja siitä:

makker.hu/RingTheWeb/

Sinä tulet tarvitsemaan:

  • 1 painike
  • 10k vastus
  • Arduino (mikä tahansa)
  • kaapelit
  • pieni, pienitehoinen tietokone - tässä tapauksessa RPi
  • pääsy palvelimelle tai tietokoneelle, jolla on julkinen IP ja node.js
  • verkkosivusto

Askeleet:

  1. Painike arduinoon
  2. Arduinosta vadelmaan
  3. Vadelma palvelimelle
  4. Verkkosivusto palvelimelle

Vaihe 1: Paina painiketta Arduinolle

Ensin tarvitset Arduinon ja painikkeen!

Mikä tahansa niistä on mahdollista, voit valita.

Liitä ne noudattamalla Arduinon virallista painikeopetusta.

Tässä on Arduino -koodi:

// Arduino -koodi digitaalisen nastan lukemiseen ja arvon lähettämiseen sarjaporttiin

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // avaa sarjaportti pinMode (8, INPUT); // liitä painike nastaan 8} int counter = 0; // jotain käytetty myöhemmin void loop () {if (digitalRead (8) == 1) {// tarkista nastan 8 tila Serial.write ("8"); } viive (100); laskuri ++; if (laskuri = 20) {// joka 20x100 = 2000ms -> laskuri = 0; Serial.write ("0"); // lähettää "olen olemassa" -viestin palvelimelle}} // siinä kaikki!

Vaihe 2: Arduino vadelmaan

Arduinosta vadelmaan
Arduinosta vadelmaan

Nyt voimme yhdistää Arduinon tietokoneeseen. Tässä tapauksessa käytämme vadelmaa sen alhaisen virrankulutuksen vuoksi.

Liitä se USB: n kautta tai suoraan tässä kuvattuihin RX-TX-nastoihin.

Asenna sitten node.js ja npm tässä kuvatulla tavalla. Avainsanat ovat:

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

ja sitten

sudo apt -get install -y nodejs

Npm (Node.js: n paketinhallinta) tarvitsee socket.io-client- ja serialport-moduuleja, joten asenna ne:

npm asenna socket.io-client

npm asenna sarjaportti

Avaa ja tallenna jotain.js -tiedosto seuraavalla koodilla:

// alustetaan socket.io -yhteys:

var -pistorasia; var io = vaatia ('socket.io-client'); pistorasia = io ("https://yourserver.com:port"); // jos yhteys palvelimeen onnistuu: socket.on ('connect', function () {socket.send ("olen täällä!"); console.log ("yhdistetty palvelimeen");}); // alustetaan sarjaporttiviestintä, NB /dev = ttyACM0 voidaan muuttaa: var SerialPort = need ('serialport'); var serialPort = uusi SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // Jos jotain tulee Arduinosta, lähettää erilaisia viestejä // palvelimelle sen mukaan serialPort.on ('data', function (data) {console.log ('Data:', data.toString ('ascii')); if (data.indexOf ('8')! ==-1) {socket.send ('/RingTheBell 1');} if (data.indexOf ('0')! ==-1) {socket. lähetä ('/client1 1');}}); // Lue käytettävissä olevat tiedot - mielestäni se ei ole välttämätöntä serialPort.on ('luettavissa', function () {console.log ('Data:', port.read ());});

Nyt sinun on myös määritettävä palvelinpuolen node.js -koodi, kunnes voit aloittaa ja testata komentosarjaa

solmu./jotain.js

Jos jotain on pielessä, kerro siitä minulle!

Vaihe 3: Palvelinpuolen koodi

Palvelinpuolen koodi
Palvelinpuolen koodi

Palvelinpuolella tarvitsemme node.js ja socket.io -palvelin.

Joten lisää se:

npm asenna socket-io

Sitten tarvitset samanlaisen komentosarjan 2. vaiheen koodiin sillä erolla, että se odottaa yhteyksiä ja jos ne ovat läsnä, se lähettää kaikki asiakkaalta lähetetyt viestit kaikille asiakkaille tässä tapaus, sivuston käyttäjille …

Avaa siis servercript.js, jossa on seuraavat tiedot:

var http = vaatia ('http'), io = vaatia ('socket.io'); // avaa minimaalinen http -palvelin. socket.io tarvitsee sitä. var palvelin = http.createServer (function (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('hei');}); // kytke tcp -pistorasia päälle - aseta portti! server.listen (7004, function () {console.log ("TCP -palvelin, joka toimii portissa 7004");}); // analysoi tcp -viestit var socket = io.listen (palvelin); socket.on ('yhteys', toiminto (asiakas, rinfo) {client.broadcast.emit ('järjestelmä', 'joku yhdistetty …')); client.on ('viesti', toiminto (tapahtuma) {console.log (event); // lähettää minkä tahansa viestin kaikille yhdistetyille käyttäjille! socket.emit ('viesti', tapahtuma);}); client.on ('kaikki', toiminto (tapahtuma) {}); client.on ('katkaise yhteys', function () {socket.emit ('viesti', 'joku irrotettu …');});});

Kokeile testata sitä

solmu./serverscript.js

Jos myös asiakas on käynnissä, sinun pitäisi nähdä heidän viestinnänsä molemmilla konsoleilla. Ainakin nämä:

Tiedot: 0

-ilmoittaa järjestelmälle säännöllisesti, että Arduino-> Vadelma-> palvelinyhteys toimii.

ja

Tiedot: 8

- kertoo, että painike on päällä.

Vaihe 4: Määritä verkkosivusto

Määritä verkkosivusto
Määritä verkkosivusto

Nyt olemme valmiita 75%: lla!

Lopeta kova työ sisällyttämällä verkkosivuston koodi.

Se on helppoa.

Sisällytä ensin socket.io -asiakas:

Luo sitten viesti-analysaattorijärjestelmä:

var -pistorasia;

pistorasia = io ("sinun palvelin.com:portti"); socket.on ('connect', function () {socket.send ('anonyymi asiakas - verkkosivuston käyttäjä - on yhdistetty!')); socket.on ('message', function (msg) {// jos haluat nähdä jokainen viesti, vain kommentoi sitä: // console.log (msg); if (msg == "/RingTheBell 1") // tässä tulee koodi, jota käytetään painiketapahtuman ilmaisemiseen: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; if (msg == "/client1 1") {// tähän voit sijoittaa jotain joka reagoi yhdistetyn asiakkaan tilaan};});

Voilá!

valmis.

Suositeltava: