Mündəricat:

İnternetə zəng vurun: 4 addım
İnternetə zəng vurun: 4 addım

Video: İnternetə zəng vurun: 4 addım

Video: İnternetə zəng vurun: 4 addım
Video: WhatsApp-ın bu hiyləsini bilirsən? 😎 2024, Noyabr
Anonim
Image
Image
Arduino düyməsini basın
Arduino düyməsini basın

İnternetə zəng etmək, veb saytlara yerli/real yerlərdən təsir etmək üçündür.

Bu barədə daha çox məlumat:

makker.hu/RingTheWeb/

Lazım olacaq:

  • 1 düymə
  • 10k rezistor
  • Arduino (istənilən növ)
  • kabellər
  • kiçik, aşağı güclü kompüter - bu halda bir RPi
  • node.js ilə ictimai IP olan bir serverə və ya kompüterə giriş
  • veb sayt

Addımlar:

  1. Arduino düyməsini basın
  2. Arduino - Moruq
  3. Server üçün moruq
  4. Veb sayt serverə

Addım 1: Arduino düyməsini basın

Əvvəlcə bir Arduino və bir düyməyə ehtiyacınız var!

İstənilən növ mümkündür, seçmək sizin ixtiyarınızdadır.

Onları birləşdirmək üçün Arduinonun rəsmi düymə təlimatını izləyin.

Budur Arduino kodu:

// Rəqəmsal bir pin oxumaq və seriya limanına dəyər göndərmək üçün Arduino kodu

// Balázs Kovács, 2018. void setup () {Serial.begin (9600); // pinMode (8, GİRİŞ) seriyalı portu açın; // düyməni Pin 8 -ə qoşun} int counter = 0; // sonradan istifadə edilən bir şey void loop () {if (digitalRead (8) == 1) {// pin 8 statusunu yoxlayın Serial.write ("8"); } gecikmə (100); sayğac ++; əgər (sayğac = 20) {// hər 20x100 = 2000ms -> sayğac = 0; Serial.write ("0"); // serverə "mən varam" mesajını göndərir}} // hamısı budur!

Addım 2: Arduino -dan Moruqa

Arduino - Moruq
Arduino - Moruq

İndi Arduino'yu bir kompüterə bağlaya bilərik. Bu vəziyyətdə aşağı enerji istehlakı səbəbiylə bir Moruq istifadə edirik.

USB vasitəsilə və ya birbaşa burada təsvir olunan RX-TX pinləri ilə qoşun.

Sonra burada təsvir edildiyi kimi node.js və npm qurun. Açar sözlər bunlardır:

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

daha sonra

sudo apt -get install -y nodejs

Npm (Node.js paket meneceri) socket.io-müştəri və serialport modullarına ehtiyac duyur, buna görə də onları quraşdırın:

npm socket.io-müştəri qurun

npm serialport yükləyin

Aşağıdakı kodla bir şey.js faylını açın və qeyd edin:

// socket.io bağlantısını işə salın:

var yuva; var io = tələb ('socket.io-müştəri'); yuva = io ("https://yourserver.com:port"); // serverə keçid uğurlu olarsa: socket.on ('connect', function () {socket.send ("burdayam!"); console.log ("serverə bağlıdır");}); // serial port ünsiyyətini işə salın, NB /dev = ttyACM0 dəyişdirilə bilər: var SerialPort = tələb ('serialport'); var serialPort = yeni SerialPort ('/dev/ttyACM0', {baudRate: 9600}); // Bir şey Arduinodan gəlirsə, fərqli mesajlar göndərir // ona uyğun olaraq serverə 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. göndər ('/client1 1');}}); // Mövcud olan məlumatları oxuyun - düşünürəm ki, bu lazım deyil serialPort.on ('oxunaqlı', funksiya () {konsol.log ('Məlumat:', port.read ());});

İndi server tərəfindəki node.js kodunu da qurmalısınız, buna qədər skriptə başlaya və test edə bilərsiniz

düyün./something.js

Bir şey səhv olarsa, mənə bildirin!

Addım 3: Server tərəfindəki kod

Server tərəfi kodu
Server tərəfi kodu

Server tərəfində, socket.io serveri olan node.js -ə ehtiyacımız var.

Buna görə əlavə edin:

npm socket-io quraşdırın

Sonra, 2 -ci addımdakı koda bənzər bir skriptə ehtiyacınız olacaq, fərqi, əlaqələri gözlədiyini və əgər varsa, müştəridən göndərilən hər hansı bir mesajı bütün müştərilərə yayımlayacaq. halda, sayt istifadəçilərinə …

Beləliklə, aşağıdakılarla bir serverscript.js açın:

var http = tələb ('http'), io = tələb edin ('socket.io'); // minimal bir http serveri açın. socket.io lazımdır. var server = http.createServer (funksiya (req, res) {res.writeHead (200, {'Content-Type': 'text/html'}); res.end ('salam');}); // tcp yuvasını yandırın - limanınızı qurun! server.listen (7004, function () {console.log ("7004 portunda çalışan TCP serveri");}); // tcp mesajlarını təhlil edin var socket = io.listen (server); socket.on ('əlaqə', funksiya (müştəri, rinfo) {client.broadcast.emit ('sistem', 'birisi bağlı…'); client.on ('mesaj', funksiya (hadisə) {console.log (hadisə)); // hər hansı bir mesajı bağlı olan hər bir istifadəçiyə yayımlayın! socket.emit ('mesaj', hadisə);}); client.on ('hamı', funksiya (hadisə) {}); client.on ('əlaqəni kəsmək', function () {socket.emit ('mesaj', 'kimsə kəsildi…');});});

Bunu sınamağa çalışın

qovşaq./serverscript.js

Müştəri də çalışırsa, əlaqələrini hər iki konsolda görməlisiniz. Ən azından bunlar:

Məlumat: 0

-vaxtaşırı sistemə Arduino-> Raspberry-> server ünsiyyətinin işlədiyini bildirir.

Məlumat: 8

- düymənin açıq olduğunu bildirir.

Addım 4: Veb saytı konfiqurasiya edin

Veb saytı konfiqurasiya edin
Veb saytı konfiqurasiya edin

İndi 75% ilə hazırıq!

Veb saytın kodunu daxil etməklə çətin işi bitirin.

Asandır.

Birincisi, socket.io müştəri daxil edin:

sonra mesaj təhlil sistemi yaradın:

var yuvası;

socket = io ("yourserver.com:port"); socket.on ('əlaqə', funksiya () {socket.send ('anonim müştəri - bir veb istifadəçisi - bağlıdır!'); socket.on ('mesaj', funksiya (msg) {// görmək istəyirsinizsə hər mesaj, sadəcə şərh yazmayın: // console.log (msg); if (msg == "/RingTheBell 1") // burada düyməni basmaq hadisəsini ifadə etmək üçün istifadə ediləcək kod gəlir: {document.body.style.background = "#ccc"; setTimeout (function () {document.body.style.background = "#000";}, 1000);}; if (msg == "/client1 1") {// burada bir şey yerləşdirə bilərsiniz bağlı müştəri statusuna reaksiya verən};});

Voila!

hazır

Tövsiyə: