農系IoT勉強会#4 その1 QRコードをAtomS3で読みこんでみよう
農業の現場では基本的に手袋をしていたりするので携帯電話やタブレットの操作が煩わしいことがあり、まだまだ手書きで生育調査や工数の管理などしていることも多いです。(うちもそうです)
QRコードを使ったメモツールのプロトタイプを作ってみましょう。
その1ではQRコードを読み取って手元のPCで値を確認するところまでを作ります。
その2でその値をGoogleスプレッドシートに書き込むところまで作ります。
QRコードスキャナーユニットについて
今回使用するツールはこちらのQRコードスキャナーユニットです。
こちらのユニットを使えばライブラリもありますのでM5AtomS3を使って簡単にQRコードをスキャンすることが可能です。
私はスイッチサイエンスで購入しました。
準備をしましょう
QRコードを準備しましょう
「QRコード 作成」などでインターネット検索すると色々なサービスが検索されます。
私は以下のサイトでQRコードを作成しました。
任意の文字や数字を入力してQRコードを作成します。
後程ここで作成したQRコードをスキャンしますので
パソコンの画面に表示出来るように準備しておきましょう。
プログラムを書き込む準備をしましょう
環境はArduinoIDEを使用しますので、環境の設定がまだの方はこちらの記事をみてセットアップしてください
ライブラリをインストールします。
ライブラリマネージャを開いて
「UnitQR」と検索すると「M5UnitQRCode」というライブラリが表示されますのでインストールします。
これで準備は完了です。
早速カメラを接続してサンプルコードを書き込んでみよう
いつも通りGroveコネクタを差し込みます。
※AtomS3とパソコンの接続も忘れずに
通信方式を決めるスイッチを必要があれば切り替えます。
今回は「UART」通信を使いますので、UARTのほうに寄っていることを確認します。
サンプルコードは以下です。
#include <M5Unified.h>
#include <M5GFX.h>
#include "M5UnitQRCode.h"
#include <M5AtomS3.h>
M5UnitQRCodeUART qrcode;
#define UART_AUTO_SCAN_MODE
#define UNIT_QRCODE_UART_BAUD 115200
const int rx_pin = 1; // GROVE 4th pin of ATOMS3
const int tx_pin = 2; // GROVE 3rd pin of ATOMS3
void setup() {
M5.begin();
Serial.begin(115200);
while (!qrcode.begin(&Serial2, UNIT_QRCODE_UART_BAUD, rx_pin, tx_pin)) {
Serial.println("Unit QRCode UART Init Fail");
delay(1000);
}
Serial.println("Unit QRCode UART Init Success");
}
void loop() {
if (qrcode.available()) {
String data = qrcode.getDecodeData();
uint16_t length = data.length();
Serial.printf("len:%d\r\n", length);
M5.Lcd.printf("len:%d\r\n", length);
Serial.printf("decode data:");
M5.Lcd.printf("decode data:");
Serial.println(data);
M5.Lcd.println(data);
Serial.println();
M5.Lcd.println(data);
}
}
早速読み込んでみましょう
カメラをQRコードに向けてみてマイコンの画面に文字が映れば成功です。
シリアルモニタでも確認してみましょう。
「ツール」⇒「シリアルモニタ」をクリックすると
ArduinoIDEの画面の下部にシリアルモニタが表示されます。
こちらはマイコンからパソコンに送られた情報を見ることができます。
コードの中にある Serial.printf();の()内に書かれている内容が表示されているか確認しましょう。
それでは!続きはその2で~
Discussion