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

クラウド連携・指紋認証Arduino勤怠管理システムの構築

必要な部品と材料

部品数量備考
Arduino Mega 2560 R31メインマイコン(ピン数多め)
ElectroPeak R301T指紋センサー1指紋認証用
ElectroPeak Micro SD TFカードアダプター1ローカルログ保存用
ElectroPeak DS3231 I2C RTCモジュール1高精度リアルタイムクロック
ElectroPeak 3.5インチ TFTカラーLCDシールド1表示・タッチ操作用
ElectroPeak NodeMCU ESP8266 ESP-12E1Wi-Fi通信・クラウドアップロード用
ElectroPeak オス-メス ジャンパーワイヤー1セット配線用

必要な工具

使用アプリ・オンラインサービス

プロジェクト概要

IoTデバイスの理解が必須となる今日、指紋認証による勤怠管理デバイスをArduinoで構築します。出退勤記録をSDカードに保存し、インターネット接続時にThingSpeakクラウドプラットフォームへ自動アップロード。CSV等の形式でデータをダウンロード可能です。

学べること

ThingSpeakとは

IoTプラットフォームの一つで、ライブデータをクラウドで収集・可視化・分析できます。無料アカウントで利用開始可能。

クラウド連携・指紋認証Arduino勤怠管理システムの構築

ThingSpeak連携・データアップロード手順

  1. ThingSpeak.comでアカウント作成
  2. ログイン後、「My Channels」→「New Channel」でチャネル作成
  3. フィールド名を設定(日付、名前、出勤、退勤、労働時間等)
  4. 「API Keys」タブから「Channel ID」と「Write API Key」を控える
  5. Arduino IDEでThingSpeakライブラリをインストール
  6. サンプル「WriteMultipleFields」を開き、SSID、パスワード、Channel ID、Write API Keyを設定
クラウド連携・指紋認証Arduino勤怠管理システムの構築
クラウド連携・指紋認証Arduino勤怠管理システムの構築
クラウド連携・指紋認証Arduino勤怠管理システムの構築
クラウド連携・指紋認証Arduino勤怠管理システムの構築
クラウド連携・指紋認証Arduino勤怠管理システムの構築

注意:ThingSpeakへのデータ送信は最低15秒間隔を空ける必要があります。

クラウド連携・指紋認証Arduino勤怠管理システムの構築

勤怠管理システムの構築

指紋認証で出退勤を記録し、日付・氏名・出勤時刻・退勤時刻・労働時間をSDカードに保存。指定時刻にThingSpeakへアップロード。ネット未接続時はデータを保持し、接続復帰時に送信。EEPROMに保存するため停電時もデータ消失なし。

回路図

クラウド連携・指紋認証Arduino勤怠管理システムの構築

全モジュール接続後、LCDシールドをArduino Megaに装着します。
Tip:LCDシールドで隠れるピンは、基板裏から配線を引き出して対応可能。

必要ライブラリ

メインスケッチ(11名分のデフォルト名登録済み、変更可能)とNodeMCU用アップロードスケッチは添付ファイルからダウンロード可能。

NodeMCU アップロード用コード

#include "ThingSpeak.h"
#include 

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 = "", Date = "", Enter = "", Exit = "", Name = "", WT = "";

void String_Analyze(String input) {
  int index1 = input.indexOf('*', 0);
  int index2 = input.indexOf('*', index1 + 1);
  int index3 = input.indexOf('*', index2 + 1);
  int index4 = input.lastIndexOf('*');
  Name = input; Date = input; Enter = input; Exit = input; WT = input;
  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();
  }
}

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) {
    while (WiFi.status() != WL_CONNECTED) {
      WiFi.begin(ssid, pass);
      Serial.print("0"); delay(5000);
    }
  }
  digitalWrite(LED_BUILTIN, LOW);
  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 = "";
  }
}

String_Analyze()関数で「日付*名前*出勤*退勤*労働時間」形式の文字列を分解し、ThingSpeakの各フィールドに格納。アップロード成功なら「1」、失敗なら「0」をArduinoへ返却。

筐体の組み立て

アクリル板やプラスチック板をレーザーカットで加工し、電子部品を収納。カットデータ(DWG形式)は添付ファイルからダウンロード可能。

クラウド連携・指紋認証Arduino勤怠管理システムの構築

組み立て後、12Vアダプターを接続するだけで動作開始します。

今後の拡張アイデア

添付ファイル

製造プロセス

  1. クラウド×IoTの力を解き放つ:シームレスな接続とデータインサイトの実現
  2. DVDプレーヤー:歴史、技術、そして未来の革新
  3. Python連携で信頼性向上: Arduino RFID勤怠管理システム
  4. ArduinoとInfineon 3D磁気センサーで作る無線磁気データ転送
  5. SERENA:Arduino Mega 2560とTFT LCDタッチスクリーン搭載カスタムアラームシステム
  6. Arduinoで温湿度ロガーを作る – DHT11とEthernetシールドでSDカード記録
  7. DFRobot静電容量式指紋センサーをArduino/ESP8266で使う – 登録・認証・削除の完全ガイド
  8. ESP32で作るIoT環境モニター:温湿度・気圧・CO2をWebダッシュボードで可視化
  9. スマート地下室換気システム:Arduinoで湿度制御
  10. ArduinoとGoogleスプレッドシート連携 リアルタイムRFID勤怠管理システム
  11. モダンビジネスにおけるクラウドストレージの10大メリット