工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduino-Webパターンのロックを解除

コンポーネントと消耗品

>
Arduino UNO
× 1
Arduino用のPHPoCWiFiシールド
× 1
シードサーボモーターSG92R
× 1
ジャンパー線
× 1

このプロジェクトについて

はじめに

初心者の方は、次のチュートリアルを読むことをお勧めします。

  • Arduino-モーター
  • Arduino-サーボモーター
  • Arduino-Wifi

あなたがあなたの電話にアクセスするとき、あなたはロック解除パターンに精通しているかもしれません。現在、この機能はArduinoで利用できます。許可されていない人がArduinoを制御/監視するのを防ぎます。

ユーザーは、このプロジェクトのコードを他のアプリケーションで自由に再利用できます。簡単にするために、例としてサーボモーター制御を取り上げます。

このアイデアは、PHPoCプラットフォーム用に作成された2つのプロジェクトに由来しています。

  • 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

私はそれらをArduinoに適合させます。

このプロジェクトでは、PHPoC WiFi Shieldを使用してArduinoをインターネットに接続しました。理由は次のとおりです。

  • PHPoC Shieldは、このプロジェクトに便利なWebSocketをサポートしています。
  • PHPoC Shieldには専用の組み込みWebサーバーがあり、組み込みWebアプリケーションをシールドに保存できます。

PHPoC Shieldにはいくつかの組み込みWebアプリケーションがあり、ユーザーは組み込みWebアプリケーションを使用して、Webプログラミングの知識がなくてもArduinoを制御/監視できます。

また、PHPoCシールドを使用すると、Webアプリケーションをプログラムできるユーザーは、独自のWebアプリケーションを開発して、PHPoCシールドに保存できます。

デモンストレーション

データフロー

Webブラウザ<---> PHPoCWiFiシールド<---> Arduino

<図>

仕組み

ユーザーがWebブラウザーでパターンを描画すると、パターンは文字列にマップされます。このパターン文字列は、WebSocketを介して(PHPoCシールドを介して)Arduinoに送信されます。

Arduinoは入力パターン文字列を受信すると、受信した文字列をArduinoのハードコードされたパターン文字列と比較します。それらが一致する場合、ArduinoはACCEPTEDコードをクライアント(Webブラウザー)に送り返し、 認証された変数を設定します。 本当に。それ以外の場合、ArduinoはDENIEDコードをクライアントに送信し、 認証された変数を設定します falseに。

Arduinoはユーザーから制御コマンドを受信すると、 認証された変数の値をチェックします 初め。値がtrueの場合、コマンドに対応するタスクを実行します。値がfalseの場合、DENIEDコードがクライアントに送信されます。

パターンマッピング

<図>

パターンは文字列にマッピングされます。たとえば、上の画像では、パターン文字列は「1、4、8、6、3」です。

タイムアウトが設定されます。一定期間後、ユーザーにアクティビティがない場合、認証は期限切れになります。ユーザーはパターンを再度入力して、Arduinoのロックを解除する必要があります。

ソースコードには2つのファイルが含まれています:

  • ArduinoUnlockExample.ino:コンパイルされ、ArduinoIDEを介してArduinoにアップロードされます
  • unlock.php:これはWebアプリコードであり、PHPoCデバッガーを介してPHPoCシールドにアップロードされます。

私たちがしなければならないこと

  • PHPoCシールドのWifi情報(SSIDとパスワード)を設定します
  • 新しいUIをPHPoCシールドにアップロードする
  • Arduinoコードを書く

PHPoCシールドのWi-Fi情報の設定

この手順を参照してください。

新しいWebUIをPHPoCシールドにアップロードする

  • PHPoCソースコードunlock.phpをダウンロードします(コードセクションにあります)。
  • サーボモーターを制御するための次の2つの画像をダウンロードします
<図> <図>
  • この手順に従って、PHPoCデバッガーを使用してPHPoCシールドにアップロードします(PHPoCシールド上の既存のファイルを削除しないように注意してください)

Arduinoコードを書く

  • Arduino IDEにArduino用のPHPoCライブラリをインストールします(手順を参照)
  • コードセクションのソースコードを参照してください。
  • ArduinoIDEを介してコンパイルしてArduinoにアップロードする

試してみてください

  • Arduino IDEのシリアルボタンをクリックして、IPアドレスを確認します。
  • Webブラウザを開き、 http:// と入力します replace_ip_address /unlock.php
  • 接続ボタンをクリックしてテストします。

初心者のための最高のArduinoスターターキット

Arduinoキットをお探しの場合は、初心者向けの最高のArduinoキットをご覧ください

関数リファレンス

  • Arduino-サーボライブラリ
  • Servo.attach()
  • Servo.write()
  • Servo.writeMicroseconds()
  • Servo.read()
  • Servo.attached()
  • Servo.detach()
  • Serial.begin()
  • Serial.println()
  • delay()
  • millis()
  • forループ
  • whileループ
  • その他の場合
  • loop()
  • setup()
  • String.toInt()
  • String.substring()
  • String.indexOf()
  • String.remove()
  • String.equals()

コード

  • unlock.php
  • ArduinoUnlockExample
unlock.php PHP
これはWebユーザーインターフェイスです
 <!DOCTYPEhtml>    Arduino --PHPoC Shield        

Arduino-Webパターンのロック解除

角度: 0

WebSocket: null

ArduinoUnlockExample Arduino
 / * arduinoWebサーバー-パターンロック解除* /#include "SPI.h" #include "Phpoc.h" #include  #define CMD_AUTH 0#define CMD_CTRL 1#define ACCEPTED "202" #define UNAUTHORIZED "401" PhpocServer server(80);サーボサーボ;文字列パターン;ブール認証; unsigned long timeout; unsigned long lastActiveTime; void setup(){Serial.begin(9600); while(!Serial); Phpoc.begin(PF_LOG_SPI | PF_LOG_NET); //Phpoc.begin(); server.beginWebSocket( "web_pattern"); Serial.print( "WebSocketサーバーアドレス:"); Serial.println(Phpoc.localIP()); Servo.attach(8); //ピン8のサーボをサーボオブジェクトservo.write(90);に接続します。パターン=String( "1,4,8,6,3");認証済み=false;タイムアウト=10000; // 10000 Milllisecond lastActiveTime =0;} void loop(){//新しいクライアントを待機します:PhpocClient client =server.available(); if(client){String data =client.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)){認証済み=true; sendResponse(ACCEPTED、3); lastActiveTime =millis(); } else {//Serial.print(reqPattern);認証済み=false; sendResponse(UNAUTHORIZED、3); }} else if(cmd ==CMD_CTRL){if(authenticated){int angle =data.substring(pos + 1).toInt(); // angle =map(angle、-90、90、0、180); angle =map(angle、90、-90、0、180); Servo.write(角度); lastActiveTime =millis(); Serial.println(角度); } else {sendResponse(UNAUTHORIZED、3); }}}} if(authenticated &&((millis()-lastActiveTime)> timeout)){authenticated =false; sendResponse(UNAUTHORIZED、3); }} void sendResponse(char * data、int len){server.write(data、len); } 

回路図


製造プロセス

  1. 服のパターン
  2. Web操作のDMXコントローラー
  3. Arduino Spybot
  4. FlickMote
  5. 自家製テレビB-Gone
  6. マスタークロック
  7. Find Me
  8. Arduino Power
  9. Tech-TicTacToe
  10. Arduino Quadruped
  11. Arduino-シリアル経由でWebに温度を送信