Mundarija:

Internetga qo'ng'iroq qiling: 4 qadam
Internetga qo'ng'iroq qiling: 4 qadam

Video: Internetga qo'ng'iroq qiling: 4 qadam

Video: Internetga qo'ng'iroq qiling: 4 qadam
Video: Telefonning 15 ta siz bilmagan maxfiy kodlari/Телефоннинг сиз билмаган 15 та махфий кодлари 2024, Noyabr
Anonim
Image
Image
Arduino tugmachalari
Arduino tugmachalari

Internetga qo'ng'iroq qilish veb -saytlarga mahalliy/haqiqiy joylardan ta'sir qilish uchun mo'ljallangan.

Bu haqda ko'proq ma'lumot:

makker.hu/RingTheWeb/

Sizga kerak bo'ladi:

  • 1 tugma
  • 10 k qarshilik
  • Arduino (har qanday turdagi)
  • kabellar
  • kichik, kam quvvatli kompyuter - bu holda RPi
  • node.js bilan umumiy IP bo'lgan server yoki kompyuterga kirish
  • veb -sayt

Qadamlar:

  1. Arduino tugmachalari
  2. Arduino dan malina
  3. Malina serverga
  4. Veb -sayt serverga

1 -qadam: Arduino tugmachasini bosing

Birinchidan, sizga Arduino va tugma kerak!

Ularning har qanday turi mumkin, tanlash sizga bog'liq.

Ularni ulash uchun Arduino -ning rasmiy tugmalar qo'llanmasiga amal qiling.

Mana Arduino kodi:

// Raqamli pinni o'qish va ketma -ket portga qiymat yuborish uchun Arduino kodi

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // pinMode ketma -ket portini ochish (8, INPUT); // tugmachani 8 -pinga ulang} int counter = 0; // keyinchalik ishlatilgan narsa void loop () {if (digitalRead (8) == 1) {// 8 -pinning holatini tekshirish Serial.write ("8"); } kechikish (100); hisoblagich ++; agar (hisoblagich = 20) {// har 20x100 = 2000ms -> hisoblagich = 0; Serial.write ("0"); // serverga "men mavjudman" xabarini yuboradi}} // hammasi shu!

2 -qadam: Arduino - malina

Arduino dan malina
Arduino dan malina

Endi biz Arduino -ni kompyuterga ulashimiz mumkin. Bu holda biz Raspberry -dan foydalanamiz, chunki u kam quvvat sarflaydi.

Uni USB orqali yoki to'g'ridan-to'g'ri bu erda tasvirlangan RX-TX pinlari bilan ulang.

Keyin bu erda tasvirlanganidek node.js va npm -ni o'rnating. Kalit so'zlar:

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

undan keyin

sudo apt -get install -y nodejs

Npm (Node.js paket menejeri) socket.io-client va serialport modullariga muhtoj, shuning uchun ularni o'rnating:

npm socket.io-mijozini o'rnating

npm serialport -ni o'rnating

Bir narsa.js faylini quyidagi kod bilan oching va saqlang:

// socket.io aloqasini ishga tushiring:

var soket; var io = talab ('socket.io-mijoz'); soket = io ("https://yourserver.com:port"); // agar serverga ulanish muvaffaqiyatli bo'lsa: socket.on ('ulanish', function () {socket.send ("men shu yerdaman!"); console.log ("serverga ulangan");}); // ketma -ket port aloqasini ishga tushiring, NB /dev = ttyACM0 ni o'zgartirish mumkin: var SerialPort = talab ('serialport'); var serialPort = yangi SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // Agar biror narsa Arduino -dan kelgan bo'lsa, serverga turli xil xabarlarni yuboradi // unga muvofiq serialPort.on ('ma'lumotlar', funktsiya (ma'lumotlar) {console.log ('Ma'lumotlar:', data.toString ('ascii'))); if (data.indexOf ('8')! ==-1) {socket.send ('/RingTheBell 1');} if (data.indexOf ('0')! ==-1) {soket. yuborish ('/client1 1');}}); // Mavjud ma'lumotlarni o'qing - menimcha, bu kerak emas serialPort.on ('o'qiladigan', function () {console.log ('Ma'lumotlar:', port.read ());});

Endi siz server tomonidagi node.js kodini o'rnatishingiz kerak, shunda siz skriptni ishga tushirishingiz va sinab ko'rishingiz mumkin

tugun./something.js

Agar biror narsa noto'g'ri bo'lsa, menga xabar bering!

3-qadam: Server tomonidagi kod

Server tomonidagi kod
Server tomonidagi kod

Server tomonida bizga socket.io serverli node.js kerak.

Shunday qilib, uni qo'shing:

npm socket-io ni o'rnating

Keyin sizga 2 -qadamdagi kodga o'xshash skript kerak bo'ladi, farqi shundaki, u ulanishlarni kutadi va agar ular mavjud bo'lsa, u mijozdan yuborilgan har qanday xabarni barcha mijozlarga uzatadi. Veb -sayt foydalanuvchilari uchun …

Shunday qilib, quyidagi bilan serververscript.js -ni oching:

var http = talab ('http'), io = talab ('socket.io'); // minimal http serverini oching. socket.io ga kerak. var server = http.createServer (funktsiya (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('salom');}); // tcp rozetkasini yoqing - portingizni sozlang! server.listen (7004, function () {console.log ("TCP serveri 7004 portida ishlaydi");}); // tcp xabarlarini tahlil qiling var socket = io.listen (server); socket.on ("ulanish", funktsiya (mijoz, rinfo) {client.broadcast.emit ("tizim", "kimdir ulangan …"); client.on ("xabar", funktsiya (hodisa) {console.log (hodisa)); // har qanday ulangan foydalanuvchilarga har qanday xabarni yuboring! socket.emit ('xabar', hodisa);}); client.on ('hamma', funktsiya (hodisa) {}); mijoz.on ('uzib qo'yish', function () {socket.emit ('xabar', 'kimdir o'chirilgan…');});});

Buni sinab ko'ring

tugun./serverscript.js

Agar mijoz ham ishlayotgan bo'lsa, ularning muloqotini ikkala pristavkada ham ko'rishingiz kerak. Hech bo'lmaganda bular:

Ma'lumotlar: 0

-vaqti-vaqti bilan tizimga Arduino-> Raspberry-> server aloqasi ishlayotganligini bildiradi.

va

Ma'lumotlar: 8

- tugma yoqilganligini bildiradi.

4 -qadam: Veb -saytni sozlash

Veb -saytni sozlash
Veb -saytni sozlash

Endi biz 75% bilan tayyormiz!

Veb -sayt kodini kiritish bilan mashaqqatli ishni tugating.

Bu oson.

Birinchidan, socket.io mijozini kiriting:

Keyin xabarlarni tahlil qilish tizimini yarating:

var soket;

soket = io ("yourserver.com:port"); socket.on ('ulanish', funktsiya () {socket.send ('anonim mijoz - veb -sayt foydalanuvchisi - ulangan!'); socket.on ('xabar', funktsiya (msg) {// agar ko'rishni xohlasangiz) har bir xabarga izoh qoldirmang: // console.log (msg); if (msg == "/RingTheBell 1") // bu erda tugma hodisasini ifodalash uchun ishlatiladigan kod keladi: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; if (msg == "/client1 1") {// bu erda biror narsani joylashtirish mumkin ulangan mijoz maqomiga javob beradigan};});

Voila!

tayyor

Tavsiya: