Daftar Isi:

Deringkan Web!: 4 Langkah
Deringkan Web!: 4 Langkah

Video: Deringkan Web!: 4 Langkah

Video: Deringkan Web!: 4 Langkah
Video: Cara Menemukan Hp Yang Hilang atau Lupa simpan Walaupun Dalam Keadaan Mati 2024, November
Anonim
Image
Image
Tombol tekan ke Arduino
Tombol tekan ke Arduino

Dering Web adalah untuk memengaruhi situs web dari tempat lokal/nyata.

Info lebih lanjut tentangnya:

makker.hu/RingTheWeb/

Kamu akan membutuhkan:

  • 1 tombol tekan
  • resistor 10k
  • Arduino (jenis apa saja)
  • kabel
  • komputer kecil berdaya rendah - dalam hal ini RPi
  • akses ke server atau komputer dengan IP publik dengan node.js
  • situs web

Langkah:

  1. Tombol tekan ke arduino
  2. Arduino ke Raspberry
  3. Raspberry ke server
  4. Situs web ke server

Langkah 1: Tombol tekan ke Arduino

Pertama, Anda memerlukan Arduino dan tombol tekan!

Semua jenisnya dimungkinkan, terserah Anda untuk memilih.

Untuk menghubungkannya, silakan ikuti tutorial tombol resmi Arduino.

Berikut kode Arduinonya:

// Kode Arduino untuk membaca pin digital dan mengirim nilai ke port serial

// Balázs Kovács, 2018. batalkan pengaturan () { Serial.begin(9600); // buka port serial pinMode(8, INPUT); // sambungkan tombol tekan ke Pin 8 } int counter = 0; // sesuatu yang digunakan nanti void loop() { if(digitalRead(8) == 1) { // periksa status pin 8 Serial.write("8"); } penundaan(100); penghitung++; if(penghitung=20) { // setiap 20x100=2000 md -> penghitung = 0; Serial.write("0"); // mengirim pesan "saya sudah ada" ke server } } // itu saja!

Langkah 2: Arduino ke Raspberry

Arduino ke Raspberry
Arduino ke Raspberry

Sekarang kita dapat menghubungkan Arduino ke komputer. Dalam hal ini kami menggunakan Raspberry, karena konsumsi dayanya yang rendah.

Hubungkan melalui USB atau langsung dengan pin RX-TX, yang dijelaskan di sini.

Kemudian instal node.js dan npm seperti yang dijelaskan di sini. Kata kuncinya adalah:

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

lalu

sudo apt-get install -y nodejs

Npm (pengelola paket Node.js) membutuhkan modul socket.io-client dan serialport, jadi instal:

npm instal socket.io-client

npm instal port serial

Buka dan simpan file something.js dengan kode berikut:

// inisialisasi koneksi socket.io:

soket var; var io = membutuhkan('socket.io-klien'); socket = io("https://serveranda.com:port"); // jika koneksi ke server berhasil: socket.on('connect', function(){ socket.send("saya di sini!"); console.log("terhubung ke server"); }); // menginisialisasi komunikasi port serial, NB /dev=ttyACM0 dapat diubah: var SerialPort = require('serialport'); var serialPort = new SerialPort('/dev/ttyACM0', { baudRate: 9600 }); // Jika sesuatu berasal dari Arduino, mengirimkan pesan yang berbeda // ke server sesuai dengan 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. kirim('/klien1 1'); } }); // Baca data yang tersedia - saya rasa tidak perlu serialPort.on('readable', function() { console.log('Data:', port.read()); });

Sekarang Anda harus mengatur kode node.js sisi server juga, hingga Anda dapat memulai dan menguji skrip dengan

simpul./sesuatu.js

Jika ada yang salah, tolong beri tahu saya!

Langkah 3: Kode sisi server

Kode sisi server
Kode sisi server

Di sisi server, kita membutuhkan node.js dengan server socket.io.

Jadi tambahkan dengan:

npm instal socket-io

Maka Anda akan memerlukan skrip yang mirip dengan kode pada langkah ke-2, dengan perbedaan, itu menunggu koneksi, dan jika ada, itu akan menyiarkan pesan apa pun yang dikirim dari klien ke semua klien, dalam hal ini kasus, untuk pengguna situs web …

Jadi, buka serverscript.js dengan yang berikut:

var http = membutuhkan('http'), io = membutuhkan('socket.io'); // buka server http minimal. socket.io membutuhkannya. var server = http.createServer(function(req, res) { res.writeHead(200, { 'Content-Type': 'text/html' }); res.end('hello'); }); // nyalakan soket tcp - atur port Anda! server.listen(7004, function() { console.log("Server TCP berjalan pada port 7004"); }); // menganalisis pesan tcp var socket=io.listen(server); socket.on('connection', function(client, rinfo) { client.broadcast.emit('system', 'somebody connected… '); client.on('message', function(event){ console.log(event); // menyiarkan pesan apa pun ke setiap pengguna yang terhubung! socket.emit('message', event); }); client.on('everybody', function(event){ }); client.on('disconnect', function(){ socket.emit('pesan', 'seseorang terputus…'); }); });

Cobalah untuk mengujinya dengan

simpul./serverscript.js

Jika klien juga berjalan, Anda akan melihat komunikasi mereka di kedua konsol. Setidaknya ini:

Data: 0

- secara berkala memberi tahu sistem bahwa komunikasi server Arduino->Raspberry->berfungsi.

dan

Data: 8

- memberitahu bahwa tombol aktif.

Langkah 4: Konfigurasikan Situs Web

Konfigurasikan Situs Web
Konfigurasikan Situs Web

Sekarang kita siap dengan 75% !

Selesaikan kerja keras dengan menyertakan kode untuk situs web.

Mudah.

pertama, sertakan klien socket.io:

kemudian buat sistem penganalisis pesan:

soket var;

socket = io("serveranda.com:port"); socket.on('connect', function () { socket.send('anonym client - pengguna situs web - terhubung!'); socket.on('message', function (msg) { // jika Anda ingin melihat setiap pesan, cukup batalkan komentarnya: // console.log(msg); if (msg == "/RingTheBell 1") // inilah kode yang digunakan untuk mengekspresikan peristiwa tombol tekan: { document.body.style.background = "#ccc"; setTimeout(function() { document.body.style.background = "#000"; }, 1000); }; if (msg == "/client1 1") { // di sini Anda dapat menempatkan sesuatu yang bereaksi terhadap status klien terhubung }; });

Voila!

siap.

Direkomendasikan: