Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Arduino - Buka Kunci Pola Web

Komponen dan persediaan

Arduino UNO
× 1
PHPoC WiFi Shield untuk Arduino
× 1
Seed Servo Motor SG92R
× 1
Kabel jumper
× 1

Tentang proyek ini

Pendahuluan

Jika Anda pemula, saya sarankan membaca tutorial berikut:

  • Arduino - Motor
  • Arduino - Motor Servo
  • Arduino - Wifi

Anda mungkin akrab dengan pola buka kunci saat mengakses ponsel. Sekarang fitur ini tersedia di Arduino. Ini mencegah orang yang tidak berwenang mengendalikan/memantau Arduino.

Pengguna dapat dengan bebas menggunakan kembali kode dalam proyek ini untuk aplikasi lain. Demi kesederhanaan, saya mengambil kontrol motor servo sebagai contoh.

Ide ini berasal dari dua proyek, yang ditulis untuk platform PHPoC:

  • https://www.hackster.io/iot_lover/web-based-pattern-unlock-for-iot-device-aeaf44.
  • https://forum.phpoc.com/articles/tutorials/350-servo-motor-controlling-servo-motor-via-websocket-with-graphic-ui

Saya mengadaptasinya untuk Arduino.

Dalam proyek ini, saya menggunakan PHPoC WiFi Shield untuk menghubungkan Arduino ke Internet karena:

  • PHPoC Shield mendukung soket web, yang nyaman untuk proyek ini.
  • PHPoC Shield memiliki server web tertanam khusus, yang memungkinkan untuk menyimpan aplikasi web tertanam pada pelindung.

PHPoC Shield memiliki beberapa aplikasi web bawaan yang memungkinkan pengguna menggunakan aplikasi web tertanam untuk mengontrol/memantau Arduino tanpa memerlukan pengetahuan tentang pemrograman web.

Selain itu, PHPoC shield memungkinkan pengguna yang dapat memprogram aplikasi web untuk mengembangkan aplikasi web mereka sendiri dan menyimpannya di PHPoC Shield.

Demonstrasi

Aliran Data

Peramban web <---> PHPoC WiFi Shield <---> Arduino

Cara Kerjanya

Saat pengguna menggambar pola mereka di browser web, pola tersebut dipetakan ke string. String pola ini dikirim ke Arduino melalui WebSocket (melalui PHPoC Shield).

Ketika Arduino menerima string pola input, ia akan membandingkan string yang diterima dengan string pola hard-coded di Arduino. Jika cocok, Arduino mengirimkan kode DITERIMA kembali ke klien (browser Web) dan menetapkan variabel yang diautentikasi untuk benar. Jika tidak, Arduino mengirimkan kode DITOLAK ke klien dan mengatur variabel yang diautentikasi salah.

Ketika Arduino menerima perintah kontrol dari pengguna, itu akan memeriksa nilai variabel yang diautentikasi pertama. Jika nilainya benar, Ia melakukan tugas yang sesuai dengan perintah. Jika nilainya salah, Ini mengirimkan kode DITOLAK ke klien.

Pemetaan Pola

Pola akan dipetakan ke string. Misalnya, pada gambar di atas, string pola adalah "1, 4, 8, 6, 3".

Batas waktu ditetapkan. Setelah beberapa waktu, jika pengguna tidak memiliki aktivitas apa pun, otentikasi berakhir, pengguna perlu memasukkan pola lagi untuk membuka kunci Arduino.

Kode sumber menyertakan dua file:

  • ArduinoUnlockExample.ino:dikompilasi dan diunggah ke Arduino melalui Arduino IDE
  • unlock.php:ini adalah kode aplikasi web, diupload ke pelindung PHPoC melalui PHPoC Debugger.

Yang Perlu Kita Lakukan

  • Menyetel informasi Wifi untuk pelindung PHPoC (SSID dan sandi)
  • Unggah UI baru ke pelindung PHPoC
  • Tulis kode Arduino

Mengatur Informasi Wifi untuk PHPoC Shield

Lihat instruksi ini.

Unggah UI Web baru ke PHPoC Shield

  • Unduh kode sumber PHPoC unlock.php (pada bagian kode).
  • Unduh dua gambar berikut untuk mengendalikan motor servo
  • Upload ke PHPoC shield menggunakan PHPoC debugger sesuai dengan instruksi ini (perhatikan bahwa JANGAN menghapus file yang ada di PHPoC Shield)

Tulis Kode Arduino

  • Instal library PHPoC untuk Arduino pada Arduino IDE (lihat instruksi )
  • Lihat kode sumber di bagian kode.
  • Kompilasi dan unggah ke Arduino melalui Arduino IDE

Cobalah

  • Klik tombol serial pada Arduino IDE untuk melihat alamat IP.
  • Buka browser web, ketik http:// replace_ip_address /unlock.php
  • Klik tombol sambungkan dan ujilah.

Kit Pemula Arduino Terbaik untuk Pemula

Jika Anda mencari kit Arduino, lihat Kit Arduino Terbaik untuk Pemula

Referensi Fungsi

  • Arduino - Perpustakaan Servo
  • Servo.attach()
  • Servo.write()
  • Servo.writeMicroseconds()
  • Servo.read()
  • Servo.attached()
  • Servo.detach()
  • Serial.begin()
  • Serial.println()
  • tunda()
  • milis() ​​​​​​
  • untuk loop
  • perulangan sementara
  • jika lain
  • loop()
  • penyiapan()
  • String.toInt()
  • String.substring()
  • String.indexOf()
  • String.remove()
  • String.equals()

Kode

  • buka kunci.php
  • ArduinoUnlockExample
unlock.phpPHP
Ini adalah antarmuka pengguna Web
Arduino - PHPoC Shield

Arduino - Buka Kunci Pola Web

WebSocket :null

ArduinoUnlockExampleArduino
/* server web arduino - buka kunci pola */#include "SPI.h"#include "Phpoc.h"#include #define CMD_AUTH 0#define CMD_CTRL 1#define DITERIMA "202"#define UNAUTHORIZED "401"PhpocServer server(80);Servo servo;Pola string;bool diautentikasi;waktu tunggu lama yang tidak ditandatangani;waktu aktif lama yang tidak ditandatangani;pengaturan batal() { Serial.begin(9600); while(!Serial); Phpoc.begin(PF_LOG_SPI | PF_LOG_NET); //Phpoc.mulai(); server.beginWebSocket("pola_web"); Serial.print("Alamat server WebSocket :"); Serial.println(Phpoc.localIP()); servo.attach(8); // menempelkan servo pada pin 8 ke objek servo servo.write(90); pola =String("1,4,8,6,3"); dikonfirmasi =salah; batas waktu =10.000; // 10.000 milidetik lastActiveTime =0;}void loop() { // tunggu klien baru:PhpocClient client =server.available(); if (klien) { String data =klien.readLine(); if(data) { int pos =data.indexOf(':'); int cmd =data.substring(0, pos).toInt(); if(cmd ==CMD_AUTH) { String reqPattern =data.substring(pos+1); reqPattern.remove(reqPattern.indexOf(13)); reqPattern.remove(reqPattern.indexOf(10)); if(pattern.equals(reqPattern)) { dikonfirmasi =benar; sendResponse(DITERIMA, 3); lastActiveTime =milis(); } else { //Serial.print(reqPattern); dikonfirmasi =salah; sendResponse(TIDAK RESMI, 3); } } else if(cmd ==CMD_CTRL) { if(dikonfirmasi) { int sudut =data.substring(pos+1).toInt(); //sudut =peta(sudut, -90, 90, 0, 180); sudut =peta(sudut, 90, -90, 0, 180); servo.menulis(sudut); lastActiveTime =milis(); Serial.println(sudut); } else { sendResponse(TIDAK RESMI, 3); } } } } if (otentikasi &&((millis() - lastActiveTime)> timeout)){ authenticated =false; sendResponse(TIDAK RESMI, 3); }}void sendResponse(char *data, int len) { server.write(data, len); }

Skema


Proses manufaktur

  1. Pola Pakaian
  2. Pengontrol DMX yang Dioperasikan Web
  3. Arduino Spybot
  4. FlickMote
  5. TV Buatan Sendiri B-Gone
  6. Jam Master
  7. Temukan Saya
  8. Arduino Power
  9. Tech-TicTacToe
  10. Arduino Quadruped