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

クラウドデータストレージを備えたArduino指紋出席システム

コンポーネントと消耗品

Arduino Mega 2560 R3
× 1
ElectroPeakR301T指紋センサー
× 1
ElectroPeak Micro SDTFカードアダプターモジュール
× 1
ElectroPeak DS3231 I2CRTCモジュール
× 1
ElectroPeak 3.5 "TFTカラーディスプレイスクリーンモジュール
× 1
ElectroPeak NodeMCU ESP8266ESP-12Eボード
× 1
ElectroPeakオスからメスへのジャンパー線
× 1

必要なツールとマシン

>
レーザーカッター(汎用)
はんだごて(汎用)

アプリとオンラインサービス

>
Arduino IDE

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

このチュートリアルやその他のすばらしいチュートリアルはで読むことができます ElectroPeakの公式ウェブサイト

概要

今日、IoTシステムの使用が増加しているため、IoTデバイスの操作と実装について学ぶことは非常に重要です。このチュートリアルでは、Arduinoを使用して指紋出席デバイスを作成します。これは、ログイン情報と稼働時間をメモリカードに保存するだけでなく、インターネットに接続されるとすぐにこの情報をThingSpeakプラットフォームにアップロードします。この情報は、CSVなどのさまざまな形式でパネルからダウンロードできます。

何を学ぶか

  • 指紋センサーの操作
  • NodeMCUを使用してThingSpeakにデータをアップロードする
  • 指紋センサーとArduinoを使用して出席デバイスを作成します

ThingSpeakとは何ですか?

IoT(Internet of Things)は、多くのものがインターネットに接続され、個人や他のデバイスと相互作用し、通常、分析のためにデータをクラウドにアップロードする世界を想定しています。

ThingSpeakは、クラウドコンピューティングでライブデータを表示および収集できるIoTプラットフォームです。

<図>

ThingSpeakとのインターフェースとデータのアップロード

以下の手順に従って、ThingSpeak接続を開始します。

ステップ1 )ThingSpeak.com Webサイトにアクセスして、アカウントを作成します。

<図>

ステップ2 )アカウントをアクティブ化してからログインし、新しいチャンネルをクリックします マイチャンネル セクション。

<図>

ステップ3 )開いた新しいウィンドウで、パネルの名前と必要に応じて説明を入力します。名前を割り当てて、必要なフィールドの数を決定します。残りの部品はオプションです。情報を入力したら、パネルを保存します。

<図>

ステップ4 )次に、 APIキーに移動します パネルで。

<図>

ステップ5 チャネルID が必要です および APIキーの書き込み データを送信するために、それらを書き留めます。

<図>

ステップ6) ThingSpeak をダウンロードします ライブラリを作成して、ArduinoIDEに追加します。

ThingSpeakライブラリ

ステップ7) ArduinoIDEに移動します。 WriteMultipleFiels を開きます 例の一部から、SSID、パスワード、チャネルID、および書き込みAPIキーの値を入力します。

<図>
  / * WriteMultipleFields説明:フィールド1、2、3、4に値を書き込み、20秒ごとに1回のThingspeak更新でステータスを書き込みます。ハードウェア:ESP8266ベースのボード!!!重要-ネットワーク接続とThingspeakチャネルの詳細を使用して、このプロジェクトのsecrets.hファイルを変更します。 !!!注:-ESP8266WiFiライブラリとESP8622ボードアドオンが必要です。詳細については、https://github.com/esp8266/Arduinoを参照してください。 -[ツール]-> [ボード]メニューからターゲットハードウェアを選択します-この例は、WPA暗号化を使用するネットワーク用に作成されています。 WEPまたはWPAの場合は、それに応じてWiFi.begin()呼び出しを変更します。 Thingspeak(https://www.Thingspeak.com)は、クラウド内のライブデータストリームを集約、視覚化、分析できる分析IoTプラットフォームサービスです。 https://www.Thingspeak.comにアクセスして、無料アカウントにサインアップし、チャネルを作成します。 Arduino用のThingspeakCommunication Libraryのドキュメントは、ライブラリがインストールされたREADME.mdフォルダーにあります。 Thingspeakの完全なドキュメントについては、https://www.mathworks.com/help/Thingspeak/index.htmlを参照してください。ライセンス情報については、付属のライセンスファイルを参照してください。 Copyright 2018、The MathWorks、Inc。* /#include "Thingspeak.h" #include "secrets.h" #include  char ssid [] =SECRET_SSID; //ネットワークSSID(名前)char pass [] =SECRET_PASS; //ネットワークpasswordintkeyIndex =0; //ネットワークキーインデックス番号(WEPにのみ必要)WiFiClientクライアント; unsignedlong myChannelNumber =SECRET_CH_ID; const char * myWriteAPIKey =SECRET_WRITE_APIKEY; //値を初期化しますintnumber1 =0; int number2 =random(0,100); int number3 =random (0,100); int number4 =random(0,100); String myStatus =""; void setup(){Serial.begin(115200); //シリアルWiFi.mode(WIFI_STA);を初期化しますThingspeak.begin(client); // Thingspeakを初期化します} void loop(){// WiFiに接続または再接続しますif(WiFi.status()!=WL_CONNECTED){Serial.print( "SSIDに接続しようとしています:"); Serial.println(SECRET_SSID); while(WiFi.status()!=WL_CONNECTED){WiFi.begin(ssid、pass); // WPA / WPA2ネットワークに接続します。オープンまたはWEPネットワークSerial.print( "。");を使用している場合は、この行を変更してください。 delay(5000); } Serial.println( "\ nConnected。"); } //値Thingspeak.setField(1、number1);でフィールドを設定します。 Thingspeak.setField(2、number2); Thingspeak.setField(3、number3); Thingspeak.setField(4、number4); //ステータスメッセージを把握するif(number1> number2){myStatus =String( "field1 is great than field2"); } else if(number1  99){number1 =0; } number2 =random(0,100); number3 =ランダム(0,100); number4 =ランダム(0,100); delay(20000); //チャンネルを再度更新するには20秒待ちます}  

コードをアップロードすると、パネルのフィールド1〜4にいくつかの乱数がアップロードされます。同じ構造化コードが、データをアップロードするための出席システムで使用されます。

ThingSpeakパネルにデータをアップロードするたびに、少なくとも15秒待ちます。

<図>

指紋センサーとArduinoを使用した出席システムの作成

このシステムでは、指紋で人の出入りを登録した後、日付、名前、到着時刻、出発時刻、従業員の勤務時間などの情報がSDカードに保存されます。その後、この情報は指定した時間にThingSpeakに送信されます。インターネットに接続されていない場合、未公開のデータは保存され、インターネットに接続されるとすぐにThingSpeakに転送されます。情報はマイクロコントローラのEEPROMに保存されるため、停電時に情報が失われることはありません。

回路

<図>

すべてのモジュールを接続したら、LCDシールドをArduinoに取り付けます。

ヒント

LCDシールドはArduinoピンの一部をカバーしているため、これらのピンが必要な場合は、ボードの下部から特定のピンにワイヤを縁取ることができます。

コード

このコードには次のライブラリが必要です。

Adafruit-Fingerprint-Sensor-Library

Adafruit-GFX-Library

MCUFRIEND_kbv

RTClib

次のコードをダウンロードして、Arduinoにアップロードします。このコードはデフォルトの名前で11人のために書かれていますが、それらを変更してデフォルトモードから削除することができます。新しい名前を登録するには、デバイスをコンピューターに接続し、キーを押して登録モードに入り、シリアルモニターを開いて、シリアルモニターに表示される登録プロセスに従います。

添付ファイルからコードをダウンロードします:

<図>

SDカード、クロックモジュール、およびLCDの使用について詳しくは、次のリンクをご覧ください。

Arduino付きSDカードモジュール:データの読み取り/書き込み方法

ArduinoでDS1307RTCモジュールを使用してリマインダーを作成する方法

ArduinoによるTFTLCDディスプレイの完全な初心者向けガイド。

NodeMCUは、このシステムに情報をアップロードするタスクを実行します。 Arduinoからシリアルポートを介してアップロード情報を取得し、アップロードのステータスを返します Arduinoへ。 NodeMCUに次のコードをアップロードします。

  #include "Thingspeak.h" #include ESP8266WiFi.h> char ssid [] ="YOUR SSID"; char pass [] ="SSID PASSWORD"; WiFiClient client; unsigned long myChannelNumber =YOUR CHANNEL ID; const char * myWriteAPIKey ="YOUR CHANNEL WRITE API KEY"; String Final =""; String Date =""; String Enter =""; String Exit =""; String Name =""; String WT =""; void String_Analyze(String input){int index1、index2、index3、index4; index1 =input.indexOf( '*'、0); index2 =input.indexOf( '*'、index1 + 1); index3 =input.indexOf( '*'、index2 + 1); index4 =input.lastIndexOf( '*');名前=入力;日付=入力;入力=入力;終了=入力; WT =入力; Name.remove(index1); Date.remove(index2); Date.remove(0、index1 + 1); Enter.remove(index3); Enter.remove(0、index2 + 1); Exit.remove(index4); Exit.remove(0、index3 + 1); WT.remove(0、index4 + 1);} void Get_String(){while(Serial.available()){Final =Serial.readString(); //受信データを文字列として読み取ります//Serial.println(Final); }} void setup(){Serial.begin(9600); WiFi.mode(WIFI_STA); Thingspeak.begin(client); pinMode(LED_BUILTIN、OUTPUT); digitalWrite(LED_BUILTIN、HIGH);} void loop(){if(WiFi.status()!=WL_CONNECTED){// Serial.print( "SSIDに接続しようとしています:"); // Serial.println(ssid); while(WiFi.status()!=WL_CONNECTED){WiFi.begin(ssid、pass); // WPA / WPA2ネットワークに接続します。オープンまたはWEPネットワークSerial.print( "0");を使用している場合は、この行を変更してください。 delay(5000); }} digitalWrite(LED_BUILTIN、LOW); //Serial.println("\nConnected。 "); Get_String(); String_Analyze(Final); if(!Final.equals( "")){Thingspeak.setField(1、Date); Thingspeak.setField(2、Name); Thingspeak.setField(3、Enter); Thingspeak.setField(4、Exit); Thingspeak.setField(5、WT); int x =Thingspeak.writeFields(myChannelNumber、myWriteAPIKey); if(x ==200){delay(100); Serial.print( "1"); } else {delay(100); Serial.print( "0"); } delay(17000); Final =""; }  

まず、チャンネルID を変更します および APIキーの書き込み ThingSpeakパネルによると。

String_Analuze(); このコードの関数は、NodeMCUの入力文字列を日付、名前、到着時刻と出発時刻、および勤務時間に分割し、この情報をThingSpeakに送信します。次に、アップロードプロセスが成功すると、文字「1」が送信されます。それ以外の場合は、文字「0」がArduinoに送信されます。

出席装置の組み立て

次のマップとさまざまな色またはその他の素材のプレキシガラスを使用して、出席デバイスの本体を作成できます。

<図>

添付ファイルからデバイス本体のレーザーカットマップをダウンロードします:

<図>

電子部品を配置して本体全体を組み立てた後、希望の場所に取り付けます。これで、12Vアダプターをデバイスに接続するだけで、動作を開始します。

次は何ですか?

  • LCDでより多くのアイコンを使用してみてください。
  • システムにRFIDオプションを追加してみてください。
  • Googleスプレッドシートにデータをアップロードしてみてください ThingSpeak の代わりに 。

このチュートリアルが役に立ち、興味深いと感じた場合は、私たちのように Facebook。

コード

  • コード1
  • コード2
コード1 Arduino
Thingspeakとのインターフェースとデータのアップロード
 / * WriteMultipleFields説明:フィールド1、2、3、4に値を書き込み、20秒ごとに1回のThingspeak更新でステータスを書き込みます。ハードウェア:ESP8266ベースのボード!!!重要-ネットワーク接続とThingspeakチャネルの詳細を使用して、このプロジェクトのsecrets.hファイルを変更します。 !!!注:-ESP8266WiFiライブラリとESP8622ボードアドオンが必要です。詳細については、https://github.com/esp8266/Arduinoを参照してください。 -[ツール]-> [ボード]メニューからターゲットハードウェアを選択します-この例は、WPA暗号化を使用するネットワーク用に作成されています。 WEPまたはWPAの場合は、それに応じてWiFi.begin()呼び出しを変更します。 Thingspeak(https://www.Thingspeak.com)は、クラウド内のライブデータストリームを集約、視覚化、分析できる分析IoTプラットフォームサービスです。 https://www.Thingspeak.comにアクセスして、無料アカウントにサインアップし、チャネルを作成します。 Arduino用のThingspeakCommunication Libraryのドキュメントは、ライブラリがインストールされたREADME.mdフォルダーにあります。 Thingspeakの完全なドキュメントについては、https://www.mathworks.com/help/Thingspeak/index.htmlを参照してください。ライセンス情報については、付属のライセンスファイルを参照してください。 Copyright 2018、The MathWorks、Inc。* /#include "Thingspeak.h" #include "secrets.h" #include  char ssid [] =SECRET_SSID; //ネットワークSSID(名前)char pass [] =SECRET_PASS; //ネットワークpasswordintkeyIndex =0; //ネットワークキーインデックス番号(WEPにのみ必要)WiFiClientクライアント; unsignedlong myChannelNumber =SECRET_CH_ID; const char * myWriteAPIKey =SECRET_WRITE_APIKEY; //値を初期化しますintnumber1 =0; int number2 =random(0,100); int number3 =random (0,100); int number4 =random(0,100); String myStatus =""; void setup(){Serial.begin(115200); //シリアルWiFi.mode(WIFI_STA);を初期化しますThingspeak.begin(client); // Thingspeakを初期化します} void loop(){// WiFiに接続または再接続しますif(WiFi.status()!=WL_CONNECTED){Serial.print( "SSIDに接続しようとしています:"); Serial.println(SECRET_SSID); while(WiFi.status()!=WL_CONNECTED){WiFi.begin(ssid、pass); // WPA / WPA2ネットワークに接続します。オープンまたはWEPネットワークSerial.print( "。");を使用している場合は、この行を変更してください。 delay(5000); } Serial.println( "\ nConnected。"); } //値Thingspeak.setField(1、number1);でフィールドを設定します。 Thingspeak.setField(2、number2); Thingspeak.setField(3、number3); Thingspeak.setField(4、number4); //ステータスメッセージを把握するif(number1> number2){myStatus =String( "field1 is great than field2"); } else if(number1  99){number1 =0; } number2 =random(0,100); number3 =ランダム(0,100); number4 =ランダム(0,100); delay(20000); //チャンネルを再度更新するには20秒待ちます} 
コード2 Arduino
 #include "Thingspeak.h" #include ESP8266WiFi.h> char ssid [] ="YOUR SSID"; char pass [] ="SSID PASSWORD"; WiFiClient client; unsigned long myChannelNumber =YOUR CHANNEL ID; const char * myWriteAPIKey ="YOUR CHANNEL WRITE API KEY"; String Final =""; String Date =""; String Enter =""; String Exit =""; String Name =""; String WT =""; void String_Analyze(String input){int index1、index2、index3、index4; index1 =input.indexOf( '*'、0); index2 =input.indexOf( '*'、index1 + 1); index3 =input.indexOf( '*'、index2 + 1); index4 =input.lastIndexOf( '*');名前=入力;日付=入力;入力=入力;終了=入力; WT =入力; Name.remove(index1); Date.remove(index2); Date.remove(0、index1 + 1); Enter.remove(index3); Enter.remove(0、index2 + 1); Exit.remove(index4); Exit.remove(0、index3 + 1); WT.remove(0、index4 + 1);} void Get_String(){while(Serial.available()){Final =Serial.readString(); //受信データを文字列として読み取ります//Serial.println(Final); }} void setup(){Serial.begin(9600); WiFi.mode(WIFI_STA); Thingspeak.begin(client); pinMode(LED_BUILTIN、OUTPUT); digitalWrite(LED_BUILTIN、HIGH);} void loop(){if(WiFi.status()!=WL_CONNECTED){// Serial.print( "SSIDに接続しようとしています:"); // Serial.println(ssid); while(WiFi.status()!=WL_CONNECTED){WiFi.begin(ssid、pass); // WPA / WPA2ネットワークに接続します。オープンまたはWEPネットワークSerial.print( "0");を使用している場合は、この行を変更してください。 delay(5000); }} digitalWrite(LED_BUILTIN、LOW); //Serial.println("\nConnected。 "); Get_String(); String_Analyze(Final); if(!Final.equals( "")){Thingspeak.setField(1、Date); Thingspeak.setField(2、Name); Thingspeak.setField(3、Enter); Thingspeak.setField(4、Exit); Thingspeak.setField(5、WT); int x =Thingspeak.writeFields(myChannelNumber、myWriteAPIKey); if(x ==200){delay(100); Serial.print( "1"); } else {delay(100); Serial.print( "0"); } delay(17000); Final =""; } 

カスタムパーツとエンクロージャー

uploads2ftmp2fdcd9a041-0d41-433f-b48f-b7fa0a1b7a832felectropeak_attendance_code_q4bsYBzou5.zip uploads2ftmp2f93ae52e3-7f3c-4744-b2db-b69baed578622fattendanceboxlasercut_ryMUOo5d7h.dwg

製造プロセス

  1. クラウドストレージを使用する10の利点
  2. DVDプレーヤー
  3. PythonでArduinoとRFIDを使用した出席システム
  4. ワイヤレス磁気データ転送
  5. Arduino警報システム:SERENA
  6. 温度および湿度データロガー
  7. ArduinoまたはESP8266を搭載した静電容量式指紋センサー
  8. Arduinoクラウドセンサータワー
  9. 地下室/クロールスペース換気システム
  10. ArduinoとGoogleスプレッドシートに基づく出席システム
  11. IoTのクラウド