MySQLクライアント接続設定(備忘録)

サーバーにMySQLを入れた際にターミナル接続は可能なのに、クライアントソフトからの接続ができなかったため、cnfファイルの変更備忘録。

cnfファイル /etc/mysql/mysql.conf.d/mysqld.conf

bind-address = 192.168.1.51 #デフォルトは127.0.0.1
mysqlx-bind-address = 192.168.1.51 #デフォルトは127.0.0.1

sudo service mysql restart でMySQLをリスタートし、アプリで確認。無事アクセスできました。

ESP32 BME680で測定したデータをMariaDBにとばす その2

先日BME680のデータをMariaDBに飛ばしましたが、スタンドアロンで自動測定できるようにプログラムを更新しました。また、Wi-Fiに接続している際にLEDを点灯させることとしました。ピン4番にプルアップ抵抗を介してLEDを接続します。

左上にLEDをつけていますWi-Fi接続で点灯します。

以下がプログラムです。ブートした際に自動的に走らせるために、プログラム名はmain.pyにしてあります。

この通りWi-Fiに接続するとLEDがともります。phpMyAdminで確認すると10秒おきにデータが蓄積していきます。

ESP32 複合センサBME680で測定したデータをMariaDBにとばす

先日仕入れたBME680を用いて温度、湿度、気圧、ガス濃度を測定してMariaDBに飛ばして記録したいと思います。今回のプログラムです。先にWi-Fiにつないでからrunさせます。

実行結果です。

C:\Users\>ampy -p com3 run c:\micropython\posttest8.py
Warning: I2C(-1, ...) is deprecated, use SoftI2C(...) instead
Temperature: 17.36
Humidity: 54.01
Pressure: 1019.21
Gas: 56.24
"temp=17.36 , hum=54.01 , pres=1019.21, gas=56.24"New record created successfully
Temperature: 17.35
Humidity: 54.14
Pressure: 1019.22
Gas: 54.43
"temp=17.35 , hum=54.14 , pres=1019.22, gas=54.43"New record created successfully
Temperature: 17.41
Humidity: 54.15
Pressure: 1019.24
Gas: 53.23
"temp=17.41 , hum=54.15 , pres=1019.24, gas=53.23"New record created successfully
Temperature: 17.48
Humidity: 54.03
Pressure: 1019.2
Gas: 52.34
"temp=17.48 , hum=54.03 , pres=1019.2, gas=52.34"New record created successfully

Aborted!

しっかりと10秒おきにDBに記録されています。

次回はプログラムを見直し、単独で自動運転できるようにします。

ESP32からMariaDBにデータをとばす

センサからのデータもとれるようになり、Wi-Fiにつながり、NTPで時計の補正もできるようになりました。

IoTを進める中で必要なのはデータベースにひたすらデータを放り込み、その中で、異常のあるデータをいかに早く見つけ出すかが重要になります。このため、今回はデータベースにMariaDBを用い、ESP32からデータをPHPにPOSTしデータベースに取り込む一連の流れを紹介します。

まずはデータベースを作成します。MariaDBのインストールその他は省略しまして、既にesp_dataというデータベースを作成してあるところから始めます。phpMyAdminを使用してデータベース中にSensorDataというテーブルを作ります。次のSQL文をphpMyAdminのSQLクエリを実行し、テーブルを作ります。今回テストの都合でMACadd列は省略してあります。

CREATE TABLE SensorData (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
//    MACadd VARCHAR(30) NOT NULL,
    value1 VARCHAR(10),
    value2 VARCHAR(10),
    value3 VARCHAR(10),
    reading_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

テーブルが出来上がったら、適当にデータを入れてみます。

INSERT INTO SensorData(value1, value2, value3) VALUES (12.3,23.4,35.3)

実行を押すとSQL文が実行され、行が挿入されます。ここまで確認したら、次はMicroPython上でjsonを用いたPOST文を作成します。

MicroPythonではpythonで使用するjsonとrequestsの頭にuをつける形になります。この形でpostできます。

次にデータを受けるphp側を作成します。

コマンドラインからampyを用いて上記MicroPythonのプログラムを走らせた結果が次です。

C:\Users\>ampy -p com4 run c:\micropython\posttest.py
New record created successfully

phpMyAdminで確認しても新しいレコードが挿入されています。

 編集 コピー削除 削除1712.323.435.32021-02-25 19:35:51