제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
소개
초보자인 경우 다음 자습서를 읽는 것이 좋습니다.
<울>휴대전화에 액세스할 때 잠금 해제 패턴에 익숙할 수 있습니다. 이제 이 기능을 Arduino에서 사용할 수 있습니다. 권한이 없는 사람이 Arduino를 제어/모니터링하는 것을 방지합니다.
사용자는 이 프로젝트의 코드를 다른 응용 프로그램에 자유롭게 재사용할 수 있습니다. 편의상 서보 모터 제어를 예로 들어 보겠습니다.
이 아이디어는 PHPoC 플랫폼용으로 작성된 두 개의 프로젝트에서 비롯되었습니다.
<울>Arduino에 맞게 조정합니다.
이 프로젝트에서 다음과 같은 이유로 Arduino를 인터넷에 연결하기 위해 PHPoC WiFi Shield를 사용했습니다.
<울>PHPoC Shield에는 웹 프로그래밍에 대한 지식 없이도 임베디드 웹 애플리케이션을 사용하여 Arduino를 제어/모니터링할 수 있는 몇 가지 내장 웹 애플리케이션이 있습니다.
또한, PHPoC 쉴드를 사용하면 웹 애플리케이션을 프로그래밍할 수 있는 사용자가 자신의 웹 애플리케이션을 개발하여 PHPoC 쉴드에 저장할 수 있습니다.
데모
데이터 흐름
웹 브라우저 <---> PHPoC WiFi 쉴드 <---> Arduino
작동 원리
사용자가 웹 브라우저에서 패턴을 그리면 패턴이 문자열에 매핑됩니다. 이 패턴 문자열은 WebSocket을 통해 (PHPoC Shield를 통해) Arduino로 전송됩니다.
Arduino가 입력 패턴 문자열을 수신하면 수신된 문자열을 Arduino의 하드 코딩된 패턴 문자열과 비교합니다. 일치하면 Arduino는 ACCEPTED 코드를 다시 클라이언트(웹 브라우저)로 보내고 인증된 변수를 설정합니다. 사실로. 그렇지 않으면 Arduino는 DENIED 코드를 클라이언트에 보내고 인증된 변수를 설정합니다. 거짓으로.
Arduino는 사용자로부터 제어 명령을 받으면 인증된 변수의 값을 확인합니다. 첫 번째. 값이 true이면 명령에 해당하는 작업을 수행합니다. 값이 false이면 DENIED 코드를 클라이언트로 보냅니다.
패턴 매핑
패턴은 문자열에 매핑됩니다. 예를 들어 위 이미지에서 패턴 문자열은 "1, 4, 8, 6, 3"입니다.
시간 초과가 설정되었습니다. 일정 시간이 지난 후 사용자의 활동이 없으면 인증이 만료되며 사용자는 Arduino의 잠금을 해제하기 위해 패턴을 다시 입력해야 합니다.
소스 코드에는 다음 두 개의 파일이 포함됩니다.
<울>
우리가 해야 할 일 <울>
PHPoC Shield용 Wi-Fi 정보 설정
이 지침을 참조하십시오.
새로운 웹 UI를 PHPoC Shield에 업로드
<울>Arduino 코드 작성
<울>
사용해 보세요 <울>
http://
를 입력합니다. replace_ip_address
/unlock.php
초보자를 위한 최고의 Arduino 스타터 키트
Arduino 키트를 찾고 있다면 초보자를 위한 최고의 Arduino 키트를 참조하십시오.
함수 참조 <울>
Arduino - PHPoC Shield <스타일>본문 { 텍스트 정렬:가운데; 글꼴 크기:너비/2pt; }h1 { 글꼴 두께:굵게; 글꼴 크기:너비/2pt; }h2 { 글꼴 두께:굵게; 글꼴 크기:너비/2pt; }버튼 { 글꼴 두께:굵게; 글꼴 크기:너비/2pt; }
Arduino - 웹 패턴 잠금 해제
웹소켓:null
<버튼 id="bt_connect" type="button" onclick="connect_onclick();">연결
/* arduino 웹 서버 - 패턴 잠금 해제 */#include "SPI.h#include "Phpoc.h#include섹션>#define CMD_AUTH 0#define CMD_CTRL 1#define ACCEPTED "202#define UNAUTHORIZED "401" PhpocServer 서버(80), 서보 서보, 문자열 패턴, 부울 인증, 서명되지 않은 긴 시간 초과, 서명되지 않은 긴 lastActiveTime, 무효 설정() { Serial.begin(9600); 동안(! 직렬); Phpoc.begin(PF_LOG_SPI | PF_LOG_NET); //Phpoc.begin(); server.beginWebSocket("웹 패턴"); Serial.print("웹소켓 서버 주소 :"); Serial.println(Phpoc.localIP()); 서보.부착(8); // 8번 핀의 서보를 서보 객체에 연결합니다. servo.write(90); 패턴 =문자열("1,4,8,6,3"); 인증됨 =거짓; 시간 초과 =10000; // 10000 밀리초 lastActiveTime =0;}void loop() { // 새 클라이언트를 기다립니다. PhpocClient client =server.available(); if (클라이언트) { 문자열 데이터 =client.readLine(); if(data) { int pos =data.indexOf(':'); int cmd =data.substring(0, pos).toInt(); if(cmd ==CMD_AUTH) { 문자열 reqPattern =data.substring(pos+1); reqPattern.remove(reqPattern.indexOf(13)); reqPattern.remove(reqPattern.indexOf(10)); if(pattern.equals(reqPattern)) { 인증 =true; sendResponse(수락, 3); lastActiveTime =밀리(); } else { //Serial.print(reqPattern); 인증됨 =거짓; sendResponse(승인되지 않음, 3); } } else if(cmd ==CMD_CTRL) { if(인증됨) { int angle =data.substring(pos+1).toInt(); //각도 =지도(각도, -90, 90, 0, 180); 각도 =지도(각도, 90, -90, 0, 180); 서보.쓰기(각도); lastActiveTime =밀리(); Serial.println(각도); } else { sendResponse(비인증, 3); } } } } if (인증된 &&((millis() - lastActiveTime)> 시간 초과)){ 인증됨 =거짓; sendResponse(승인되지 않음, 3); }}무효 sendResponse(char *data, int len) { server.write(data, len); }
제조공정
구성품 및 소모품 Arduino UNO × 1 Arduino용 PHPoC WiFi 실드 × 1 씨드 서보 모터 × 1 점퍼 와이어 × 1 이 프로젝트 정보 소개 초보자라면 아두이노 - 서보 모터와 아두이노 - 와이파이에 대해 읽어보길 권한다. 아두이노를 인터넷에 연결하기 위해서는 이더넷 쉴드, 와이파이 쉴드, PHPoC 쉴드, PHPoC 와이파이 쉴드와 같은 일종의 인터넷 쉴드를 사용해야 합니다. PHPoC 쉴드의 두드러진 특징
구성품 및 소모품 Arduino UNO × 1 Arduino용 PHPoC WiFi 실드 × 1 6DOF 암 로봇 × 1 이 프로젝트 정보 초보자인 경우 다음 자습서를 읽는 것이 좋습니다. Arduino - 모터 Arduino - 서보 모터 아두이노 - 와이파이 1. 시연 2. 사용자 인터페이스 로봇 팔에는 6개의 모터가 있습니다. 영역 A:모터 2, 3, 4 제어(손 관절 3개 제어) 영역 B:제어 모터 1(제어 베이스) 영역