Мазмұны:

Интернетке қоңырау шалыңыз!: 4 қадам
Интернетке қоңырау шалыңыз!: 4 қадам

Бейне: Интернетке қоңырау шалыңыз!: 4 қадам

Бейне: Интернетке қоңырау шалыңыз!: 4 қадам
Бейне: Басқа тышты деген осы 😡 2024, Шілде
Anonim
Image
Image
Ардуиноға батырмалар
Ардуиноға батырмалар

Интернетке қоңырау шалу веб -сайттарға жергілікті/нақты жерлерден әсер етуге арналған.

Бұл туралы қосымша ақпарат:

makker.hu/RingTheWeb/

Сізге қажет:

  • 1 түйме
  • 10 к резистор
  • Arduino (кез келген түрі)
  • кабельдер
  • шағын, қуаты аз компьютер - бұл жағдайда RPi
  • node.js бар жалпы IP бар серверге немесе компьютерге кіру
  • веб -сайт

Қадамдар:

  1. Ардуиноға батырмалар
  2. Arduino - таңқурай
  3. Таңқурай серверге
  4. Веб -сайт серверге

1 -қадам: Arduino түймесін басыңыз

Алдымен сізге Arduino мен түйме қажет!

Олардың кез келген түрі мүмкін, таңдау сізге байланысты.

Оларды қосу үшін Arduino -ның ресми батырмалық нұсқаулығын орындаңыз.

Міне Arduino коды:

// Сандық түйреуішті оқуға және мәнді сериялық портқа жіберуге арналған Arduino коды

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // pinMode сериялық портын ашу (8, INPUT); // түймені түйреуішке жалғау 8} int counter = 0; // кейінірек қолданылған нәрсе void loop () {if (digitalRead (8) == 1) {// 8 -түйреуішті тексеру Serial.write («8»); } кешіктіру (100); есептегіш ++; if (counter = 20) {// әрбір 20x100 = 2000ms -> санауыш = 0; Serial.write («0»); // серверге «мен бармын» хабарын жібереді}} // бұл ғана!

2 -қадам: Arduino - таңқурай

Arduino - таңқурай
Arduino - таңқурай

Енді біз Arduino -ны компьютерге қосамыз. Бұл жағдайда біз таңқурай қолданамыз, себебі оның қуаты аз.

Оны USB арқылы немесе осы жерде сипатталған RX-TX түйреуіштерімен тікелей қосыңыз.

Содан кейін мұнда сипатталғандай node.js және npm орнатыңыз. Кілт сөздер:

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

содан соң

sudo apt -get install -y nodejs

Npm (Node.js пакет менеджері) socket.io-client және serialport модульдерін қажет етеді, сондықтан оларды орнатыңыз:

npm socket.io-клиентті орнатыңыз

npm сериялық портты орнатыңыз

Something.js файлын келесі кодпен ашыңыз және сақтаңыз:

// socket.io байланысын баптаңыз:

var розеткасы; var io = қажет ('socket.io-клиент'); розетка = io («https://yourserver.com:port»); // егер серверге қосылу сәтті болса: socket.on ('connect', function () {socket.send («мен осындамын!»); console.log («серверге қосылған»);}); // сериялық порт байланысын инициализациялаңыз, NB /dev = ttyACM0 өзгертуге болады: var SerialPort = қажет ('serialport'); var serialPort = жаңа SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // Егер бірдеңе Arduino -дан келсе, әр түрлі хабарларды // серверге сәйкес жібереді 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. жіберу ('/client1 1');}}); // Қол жетімді деректерді оқу - менің ойымша, бұл қажет емес serialPort.on ('readable', function () {console.log ('Data:', port.read ());});

Енді сіз node.js серверлік кодын орнатуыңыз керек, оған дейін сіз сценарийді бастауға және тексеруге болады

түйін./something.js

Егер бірдеңе дұрыс болмаса, маған хабарлаңыз!

3-қадам: серверлік код

Серверлік код
Серверлік код

Сервер жағында бізге socket.io сервері бар node.js қажет.

Сондықтан оны қосыңыз:

npm socket-io орнатыңыз

Содан кейін сізге 2 -қадамдағы кодқа ұқсас сценарий қажет болады, айырмашылығы - ол қосылуды күтеді, ал егер олар бар болса, ол клиенттен жіберілген кез келген хабарды барлық клиенттерге жібереді. жағдайда, сайт қолданушыларына …

Сонымен, serverscript.js файлын ашыңыз:

var http = талап етіңіз ('http'), io = қажет ('socket.io'); // ең аз http серверін ашыңыз. socket.io қажет. var server = http.createServer (функция (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('сәлем');}); // tcp розеткасын қосыңыз - портыңызды орнатыңыз! server.listen (7004, function () {console.log («TCP сервері 7004 портында жұмыс істейді»);}); // tcp хабарламаларын талдау var socket = io.listen (сервер); socket.on ('байланыс', функция (клиент, rinfo) {client.broadcast.emit ('жүйе', 'біреу қосылған …'); client.on ('хабар', функция (оқиға) {console.log (оқиға)); // барлық қосылған пайдаланушыларға кез келген хабарды тарату! socket.emit ('хабарлама', оқиға);}); client.on ('барлығы', функция (оқиға) {}); клиент.он ('ажырату', function () {socket.emit ('хабарлама', 'біреу өшірілді…');});});

Оны сынап көріңіз

түйін./serverscript.js

Егер клиент жұмыс істесе, сіз олардың консольдегі байланысын көресіз. Кем дегенде, бұл:

Мәліметтер: 0

-жүйеге Arduino-> Raspberry-> серверлік байланысының жұмыс істеп тұрғанын жүйелі түрде хабарлайды.

және

Мәліметтер: 8

- түйменің қосылғанын айтады.

4 -қадам: Веб -сайтты конфигурациялау

Веб -сайтты конфигурациялау
Веб -сайтты конфигурациялау

Біз 75% дайынбыз!

Веб -сайттың кодын қосу арқылы жұмысты аяқтаңыз.

Бұл оңай.

Біріншіден, socket.io клиентін қосыңыз:

содан кейін хабарлама-анализатор жүйесін құрыңыз:

var розеткасы;

розетка = io («yourserver.com:port»); socket.on ('қосылу', функция () {socket.send ('анонимді клиент - веб -сайт пайдаланушысы - қосылған!'); socket.on ('хабарлама', функция (хабар) {// егер көргіңіз келсе) әр хабарлама, тек түсініктеме бермей -ақ қойыңыз: // console.log (msg); if (msg == «/RingTheBell 1») // мұнда түймешік оқиғасын білдіру үшін қолданылатын код келеді: {document.body.style.background = «#ccc»; setTimeout (function () {document.body.style.background = «#000»;}, 1000);}; егер (msg == «/client1 1») {// мұнда бірдеңе қоюға болады ол қосылған клиенттің күйіне жауап береді};});

Voilá!

дайын

Ұсынылған: