Proses manufaktur
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 |
Pendahuluan
Jika Anda pemula, saya sarankan membaca tutorial berikut:
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:
Saya mengadaptasinya untuk Arduino.
Dalam proyek ini, saya menggunakan PHPoC WiFi Shield untuk menghubungkan Arduino ke Internet karena:
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:
Yang Perlu Kita Lakukan
Mengatur Informasi Wifi untuk PHPoC Shield
Lihat instruksi ini.
Unggah UI Web baru ke PHPoC Shield
Tulis Kode Arduino
Cobalah
http://
replace_ip_address
/unlock.php
Kit Pemula Arduino Terbaik untuk Pemula
Jika Anda mencari kit Arduino, lihat Kit Arduino Terbaik untuk Pemula
Referensi Fungsi
Arduino - PHPoC Shield
Arduino - Buka Kunci Pola Web
WebSocket :null
/* 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); }
Proses manufaktur
Komponen dan persediaan Arduino UNO × 1 PHPoC WiFi Shield untuk Arduino kita bisa menggunakan PHPoC Shield sebagai gantinya × 1 Sensor suhu Adafruit DS18B20 × 1 Resistor Seeed 4.7k ohm × 1 Tabung Penyusut Panas × 1 Tentang proyek ini Jika
Komponen dan persediaan Arduino UNO × 1 PHPoC Shield untuk Arduino Anda juga dapat menggunakan PHPoC Shield atau PHPoC WiFi Shield × 1 dongle USB Wifi Anda harus menggunakan dongle WIFI USB yang dilengkapi dengan chipset Ralink RT3070 atau RT5370, dan sambungkan ke PHPoC Shi
Komponen dan persediaan Arduino UNO × 1 PHPoC WiFi Shield untuk Arduino × 1 Seeed Servo Motor × 1 Kabel jumper × 1 Tentang proyek ini Pendahuluan Jika Anda pemula, saya sarankan membaca tentang Arduino - Servo Motor dan Arduino -.
Komponen dan persediaan Arduino UNO × 1 PHPoC WiFi Shield untuk Arduino × 1 Robot Lengan 6DOF × 1 Tentang proyek ini Jika Anda pemula, saya sarankan membaca tutorial berikut: Arduino - Motor Arduino - Motor Servo Arduino - Wifi 1. Demonstrasi 2.