ISS は、バンドンにある中小企業の店舗オーナー向けに、従業員の勤怠管理機を制作する機会を得ました。本システムは、日常的にコンピューターを使用しない利用者でも簡単に使えるように設計されています。そのため、インドネシアですでに広く普及しており、価格も比較的手頃な RFID カード(例:e-toll カードや e-KTP)を採用しました。 利用者はカードを検知装置にかざすだけで打刻できます。さらに、勤怠データは自動的に Google スプレッドシートへアップロードされ、インターネット接続があればどこからでも確認可能です。

使用した機器

  • マイクロコントローラ ESP8266
  • LCD 16×2(I2C)
  • MFRC-522
  • RFID カード(Mifare 1KB)
  • 抵抗および LED
  • ブザー

回路図と説明

マイクロコントローラ ESP8266 は、以下の設定で使用しています。

LabelGPIOPenggunaan
D0GPIO16MFRC522 RST
D1GPIO5I2C LCD SCL
D2GPIO4I2C LCD SDA
D4GPIO2抵抗、ブザー、LED
D5GPIO14MFRC522 SCK
D6GPIO12MFRC522 MISO
D7GPIO13MFRC522 MOSI
D8GPIO15MFRC522 SDA

なお、使用している抵抗はプルアップ抵抗です。GPIO2 はプルダウン状態になると起動に失敗するためです。1.

ソースコード

勤怠管理機のソースコードは、以下のリンクから参照できます。

bima-attendance

コードは以下の 5 つのファイルに分かれています。

  • attendance.ino(メインファイル)
  • attendance_buzzer_method(ブザー機能の制御)2
  • attendance_rfid_method(RFID 機能の制御)3
  • attendance_wifi_method(Wi-Fi 機能の制御)
  • attendance_gsheet_method(Google スプレッドシート機能の制御)4
  • attendance_time_method(時刻機能の制御)5

これらのファイルは、ソースコードをコンパイルする際に自動的に結合されます(著者は Arduino IDE を使用)。

結論

本機は大きな問題もなく、日常的に使用されています。運用結果から、次のバージョンで改善できる点がいくつか見えてきました。

  • アップロードに約 5 秒かかり、Wi-Fi 接続が不安定な場合は最大 30 秒程度かかることがあり、次の利用者が待たされてしまいます。RTOS(リアルタイムオペレーティングシステム)を用いたバックグラウンドタスクで改善できる可能性があります。
  • 機器起動時に Wi-Fi がまだ接続されていない場合、勤怠データを受け付けられません。Wi-Fi 接続が確立した後にアップロードできるよう、勤怠データを一時保存する仕組みで改善できると考えられます。

おわりに

ISS では、ソフトウェア、マイクロコントローラ、IoT、オートメーションを活用し、さまざまな技術課題に対するカスタムソリューションを提供しています。中小企業を含む幅広いビジネス規模に対応可能です。ぜひ ISS までご連絡いただき、私たちとご相談ください。

  1. ESP8266 Pinout Reference: Which GPIO pins should you use? | Random Nerd Tutorials ↩︎
  2. Tutorial cara menghubungkan buzzer dengan ESP32 – Labrobotika ↩︎
  3. ESP32 with MFRC522 RFID Reader/Writer (Arduino IDE) | Random Nerd Tutorials ↩︎
  4. ESP32 Datalogging to Google Sheets (Google Service Account) | Random Nerd Tutorials ↩︎
  5. Getting Date and Time with ESP32 (NTP Client) | Random Nerd Tutorials ↩︎

Categories:

Tags: