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


使用した機器
- マイクロコントローラ ESP8266
- LCD 16×2(I2C)
- MFRC-522
- RFID カード(Mifare 1KB)
- 抵抗および LED
- ブザー
回路図と説明
マイクロコントローラ ESP8266 は、以下の設定で使用しています。

| Label | GPIO | Penggunaan |
| D0 | GPIO16 | MFRC522 RST |
| D1 | GPIO5 | I2C LCD SCL |
| D2 | GPIO4 | I2C LCD SDA |
| D4 | GPIO2 | 抵抗、ブザー、LED |
| D5 | GPIO14 | MFRC522 SCK |
| D6 | GPIO12 | MFRC522 MISO |
| D7 | GPIO13 | MFRC522 MOSI |
| D8 | GPIO15 | MFRC522 SDA |
なお、使用している抵抗はプルアップ抵抗です。GPIO2 はプルダウン状態になると起動に失敗するためです。1.
ソースコード
勤怠管理機のソースコードは、以下のリンクから参照できます。
コードは以下の 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 までご連絡いただき、私たちとご相談ください。
- ESP8266 Pinout Reference: Which GPIO pins should you use? | Random Nerd Tutorials ↩︎
- Tutorial cara menghubungkan buzzer dengan ESP32 – Labrobotika ↩︎
- ESP32 with MFRC522 RFID Reader/Writer (Arduino IDE) | Random Nerd Tutorials ↩︎
- ESP32 Datalogging to Google Sheets (Google Service Account) | Random Nerd Tutorials ↩︎
- Getting Date and Time with ESP32 (NTP Client) | Random Nerd Tutorials ↩︎