Talaan ng mga Nilalaman:

I-ring ang Web !: 4 Mga Hakbang
I-ring ang Web !: 4 Mga Hakbang

Video: I-ring ang Web !: 4 Mga Hakbang

Video: I-ring ang Web !: 4 Mga Hakbang
Video: Pagsasanay sa pagbasa ng mga pangungusap | Filipino Kinder | Grade 1 & 2 | Practice Reading 2024, Nobyembre
Anonim
Image
Image
Pushbutton kay Arduino
Pushbutton kay Arduino

Ang Ring the Web ay para sa nakakaapekto sa mga website mula sa mga lokal / tunay na lugar.

Higit pang impormasyon tungkol dito:

makker.hu/RingTheWeb/

Kakailanganin mo:

  • 1 pushbutton
  • 10k risistor
  • Arduino (anumang uri)
  • mga kable
  • maliit, mababang-kapangyarihan na computer - sa kasong ito isang RPi
  • pag-access sa isang server o computer na may pampublikong IP na may node.js
  • website

Mga Hakbang:

  1. Pushbutton sa arduino
  2. Arduino sa Raspberry
  3. Raspberry sa server
  4. Website sa server

Hakbang 1: Pushbutton sa Arduino

Una Kailangan mo ng isang Arduino at isang pushbutton!

Ang anumang uri ng mga ito ay posible, nasa sa Iyo ang pumili.

Para sa pagkonekta sa kanila, mangyaring sundin ang opisyal na tutorial na pindutan ng Arduino.

Narito ang Arduino code:

// Arduino code para sa pagbabasa ng isang digital pin at magpadala ng halaga sa serial port

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // buksan ang serial port pinMode (8, INPUT); // ikonekta ang pushbutton sa Pin 8} int counter = 0; // something used later void loop () {if (digitalRead (8) == 1) {// check pin 8 status Serial.write ("8"); } pagkaantala (100); counter ++; kung (counter = 20) {// tuwing 20x100 = 2000ms -> counter = 0; Serial.write ("0"); // nagpapadala ng isang "mayroon na" akong mensahe sa server}} // iyon lang!

Hakbang 2: Arduino sa Raspberry

Arduino sa Raspberry
Arduino sa Raspberry

Ngayon ay maaari naming ikonekta ang Arduino sa isang computer. Sa kasong ito gumagamit kami ng isang Raspberry, dahil sa mababang paggamit ng kuryente.

Ikonekta ito sa pamamagitan ng USB o direkta sa mga pin ng RX-TX, na inilarawan dito.

Pagkatapos i-install ang node.js at npm tulad ng inilarawan dito. Ang mga keyword ay:

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

at pagkatapos

sudo apt-get install -y nodejs

Ang Npm (manager ng package ng Node.js) ay nangangailangan ng socket.io-client at serialport modules, kaya i-install ang mga ito:

npm i-install ang socket.io-client

Nag-install ng serialport

Buksan at i-save ang isang file na something.js na may sumusunod na code:

// ipasimuno ang koneksyon ng socket.io:

var socket; var io = nangangailangan ('socket.io-client'); socket = io ("https://yourserver.com:port"); // kung matagumpay ang koneksyon sa server: socket.on ('connect', function () {socket.send ("nandito ako!"); console.log ("konektado sa server");}); // initialize the serial port komunikasyon, NB / dev = ttyACM0 maaaring mabago: var SerialPort = nangangailangan ('serialport'); var serialPort = bagong SerialPort ('/ dev / ttyACM0', {baudRate: 9600}); // Kung may nagmula sa Arduino, nagpapadala ng iba't ibang mga mensahe // sa server ayon dito serialPort.on ('data', function (data) {console.log ('Data:', data.toString ('ascii')); if (data.indexOf ('8')! == - 1) {socket.send ('/ RingTheBell 1');} kung (data.indexOf ('0')! == - 1) {socket. ipadala ('/ client1 1');}}); // Basahin ang data na magagamit - sa palagay ko hindi kinakailangan serialPort.on ('nababasa', pagpapaandar () {console.log ('Data:', port.read ());});

Ngayon Dapat mong i-set up ang server side node.js code din, hanggang sa Maaari mong simulan at subukan ang script sa pamamagitan ng

node./something.js

Kung may mali, mangyaring ipaalam sa akin!

Hakbang 3: Code sa panig ng Server

Code sa panig ng server
Code sa panig ng server

Sa panig ng server, kailangan namin ng node.js na may socket.io server.

Kaya idagdag ito sa:

Nag-install ng socket-io

Pagkatapos Kakailanganin mo ang isang katulad na script sa code sa ika-2 hakbang, na may pagkakaiba, na naghihintay ito para sa mga koneksyon, at kung mayroon sila, mai-broadcast nito ang anumang mensahe na ipinadala mula sa kliyente sa lahat ng mga kliyente, dito kaso, sa mga gumagamit ng website…

Kaya, buksan ang isang servercript.js kasama ang mga sumusunod:

var http = nangangailangan ('http'), io = nangangailangan ('socket.io'); // buksan ang isang minimal http server. kailangan ito ng socket.io. var server = http.createServer (function (req, res) {res.writeHead (200, {'Content-Type': 'text / html'}); res.end ('hello');}); // turn on tcp socket on - itakda ang iyong port! server.listen (7004, function () {console.log ("TCP server na tumatakbo sa port 7004");}); // pag-aralan ang mga tcp message var socket = io.listen (server); socket.on ('koneksyon', pagpapaandar (client, rinfo) {client.broadcast.emit ('system', 'somebody connected…'); client.on ('message', function (event) {console.log (event); // broadcast anumang mensahe sa bawat konektadong mga gumagamit! socket.emit ('mensahe', kaganapan);}); client.on ('lahat', pag-andar (kaganapan) {}); client.on ('idiskonekta', function () {socket.emit ('message', 'somebody disconneted…');});});

Subukan upang subukan ito sa

node./serverscript.js

Kung tumatakbo din ang kliyente, Dapat mong makita ang kanilang komunikasyon sa parehong mga console. Hindi bababa sa mga ito:

Data: 0

- pana-panahon na sinasabi sa system na gumagana ang komunikasyon ng Arduino-> Raspberry-> server.

at

Data: 8

- Sinasabi na ang pindutan ay nakabukas.

Hakbang 4: I-configure ang Website

I-configure ang Website
I-configure ang Website

Ngayon handa na kami sa 75%!

Tapusin ang pagsusumikap kasama ang isama ang code para sa website.

Madali lang.

una, isama ang socket.io client:

pagkatapos ay likhain ang system ng pagsusuri sa mensahe:

var socket;

socket = io ("yourserver.com:port"); socket.on ('kumonekta', pagpapaandar () {socket.send ('anonym client - isang gumagamit ng website - ay konektado!'); socket.on ('mensahe', pagpapaandar (msg) {// kung nais mong makita bawat mensahe, i-compress lang ito: // console.log (msg); kung (msg == "/ RingTheBell 1") // narito ang code na gagamitin para sa pagpapahayag ng pushbutton event: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "# 000";}, 1000);}; kung (msg == "/ client1 1") {// dito maaari kang maglagay ng isang bagay na tumutugon sa konektadong katayuan ng client};});

Voilá!

handa na

Inirerekumendang: