1号機もダウングレードして入れ直し

１．以下の理由から１号機もBullseyeにダウングレードする。
あとでもいいかと思って放置していたけど。ひまなのでダウングレード。
・キーボードが何故かＵＳで日本語に変えようとしても変わらない。
・漢字変換がいまくいかない。　
・Bullseyeのほうが早いような感じがする。

２．ＵＳＢ設定
１）パーテイションのＵＵＩＤを記録
```
$sudo blkid /dev/sda1
/dev/sda1: UUID="xxxxxxxxxxxxxxxxxxxxx" TYPE="ext4" PARTUUID="xxxxxx-01"
```
```
$sudo blkid /dev/sda2
/dev/sda2: UUID="xxxxxxxxxxxxxxxxxxxxx" TYPE="ext4" PARTUUID="xxxxxx-02"
```
２）シンボリックリンク確認
```
$ls /dev/disk/by-uuid/ 
```
３）マウントポイント設定
```
$sudo mkdir /usb
$cd /usb
$sudo mkdir  21g
$sudo mkdir  11g
$sudo chmod 777 21g
$sudo chmod 777 11g
```
４）vimインストール
```
sudo apt-get install vim
```
５）マウント
```
$sudo vim /etc/fstab
```
以下を追加。

```tab:fstab
UUID="xxxxxxxxxxxxxxxxxxxxx"  /usb/21g ext4 defaults,noatime 0 0
UUID="xxxxxxxxxxxxxxxxxxxxx"  /usb/11g ext4 defaults,noatime 0 0
```

４）リブート
$df -h で確認これで入れ直し完了。

３．Ｓａｍｂａ設定
https://qiita.com/m_sunafukin77/items/930317457a7c845b28cb
だが　ユーザ作成は以下で行う。
```
sudo useradd -s /bin/bash -m miyamo
sudo passwd miyamo
sudo pdbedit -a miyamo
```

４．時刻同期設定
https://qiita.com/m_sunafukin77/items/76b9536db4beb4eb72d6
以下で　そんなもん無いとでるが、無視。
```
sudo apt remove systemd-timessyncd
```
以下　モジュールがないとでてエラーとなるが、時刻は同期されている。
```
udo apt install nptdate
sudo ntpdate ntp.nict.jp　&&　date
```
５．RPZ-IR-SensorRev2　導入＆結果確認
センサー制御ソフトウェア「cgsensor」をインストール
```
sudo python3 -m pip install -U cgsensor
cgsensor all
```
i2c-toolsでI2Cで接続されているデバイスを確認します。
```
i2cdetect -y 1
```
python 作成　bme280_tsl2572.py
```
sudo vim bme280_tsl2572.py
```
中身は以下　Indoor Corgiさんのサイトからサンプルをマージして作成。　
```
#!/usr/bin/env python3
import cgsensor  # インポート
bme280 = cgsensor.BME280(i2c_addr=0x76)  # BME280制御クラスのインスタンス, i2c_addrは0x76/0x77から選択
bme280.forced()  # Forcedモードで測定を行い, 結果をtemperature, pressure, humidityに入れる
print('気温 {}°C'.format(bme280.temperature))  # 気温を取得して表示
print('湿度 {}%'.format(bme280.humidity))  # 湿度を取得して表示
print('気圧 {}hPa'.format(bme280.pressure))  # 気圧を取得して表示
tsl2572 = cgsensor.TSL2572()  # TSL2572制御クラスのインスタンス
tsl2572.single_auto_measure()  # 条件を自動で調整しながら1回測定を行い, luxに結果を入れる
print('明るさ {}lux'.format(tsl2572.illuminance))  # 明るさを取得して表示
```
実行
```
python bme280_tsl2572.py
```
cgsensor allと同じ内容で表示された。ＯＫ。

６．mariadbインストール＆設定
【１】MariaDBインストール
mariadbをインストール
■一括ＬＡＭＰインストール　apacheを選択　かなり仕組みが理解できている。
```
sudo apt-get -y install apache2 php php-dev php-fpm php-gd mariadb-server php-mysql phpmyadmin perlmagick
```
■cgi.loadファイルの設定。
シンボリックリンクを /etc/apache2/mods-enabled/cgi.loadに設定して cgi.loadを有効にする。
```
sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load
```
■ PHP 7.3 FPM有効【一応】
```
php -v
```
2号機　VER確認できてなったのでエラー。いまごろ気づいた。
```
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.4-fpm
sudo systemctl reload apache2
```
■apache2.conf　編集
```
sudo vim /etc/apache2/apache2.conf
```
内容は下記の通り、一番下に追加
Include /etc/phpmyadmin/apache.conf

■再起動
```
sudo service apache2 restart
```
■確認①apache　ブラウザで確認
http://xxx.xxx.xxx.xxx/

■確認②phpmyadmin
http://xxx.xxx.xxx.xxx/phpmyadmin/

【２】ユーザ作成
■ログイン
```
sudo mysql
```
権限を付与すると上記は使用不能
■権限設定（すべて）／ユーザ作成　5年前とはコマンンド変わっていた。
CREATE USER 'miyamo'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'miyamo'@'%' with grant option;

■ルートユーザのパスワード変更（初期パスワードが不明の為、Verが変わっていて/var/log/mysql.logが存在しない。導入時に設定したパスワードはルートユーザのパスワードとは違うかも。
とにかく以下でphpmyadminにログイン成功。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

・設定の反映
flush privileges;
quit

■外部接続可能とする。
```
sudo cp /etc/mysql/mariadb.conf.d/50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf.bak
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
```
以下を変更
bind-address = 127.0.0.1
↓
bind-address = 0.0.0.0

【３】ホスト名設定　上段ラズパイ、下段ラズパイ共に設定
■ホスト名設定
```
sudo cp /etc/hosts /etc/hosts.bak
sudo vim /etc/hosts
```
　以下　追加
XXX.XXX.XXX.XXX miyamodb

【４】ＤＢ作成、テーブル作成
■ルートユーザでログイン
```
mysql -u root -p 
```
■ＤＢ作成、テーブル作成
create databae miyamodb;
use miyamodb
create table room_env (id INT NOT NULL PRIMARY KEY, Temperature varchar(20), humidity varchar(20), air_pressure varchar(20), illuminance varchar(20),upd_datetime datetime default(CURRENT_TIMESTAMP));

■テーブル確認
show tables;

■テーブル構造確認
describe room_env;

■初期データ作成
insert into room_env values (1,'Temperature','humidity','air_pressure','illuminance',default);
quit

７．コネクターインストール
```
pip3 install  mysql-connector-python
```

８．まずは　テーブルに情報を書き込む python作成。 room_env_disp.py で保存＆実行。いけた。
```
#!/usr/bin/env python3
import cgsensor  # インポート
import datetime
import mysql.connector
bme280 = cgsensor.BME280(i2c_addr=0x76)  # BME280制御クラスのインスタンス, i2c_addrは0x76/0x77から選択
bme280.forced()  # Forcedモードで測定を行い, 結果をtemperature, pressure, humidityに入れる
print('気温 {}°C'.format(bme280.temperature))  # 気温を取得して表示
print('湿度 {}%'.format(bme280.humidity))  # 湿度を取得して表示
print('気圧 {}hPa'.format(bme280.pressure))  # 気圧を取得して表示
tsl2572 = cgsensor.TSL2572()  # TSL2572制御クラスのインスタンス
tsl2572.single_auto_measure()  # 条件を自動で調整しながら1回測定を行い, luxに結果を入れる
print('明るさ {}lux'.format(tsl2572.illuminance))  # 明るさを取得して表示

temp = '{}°C'.format(bme280.temperature) 
humi = '{}%'.format(bme280.humidity)
air_p  = '{}hPa'.format(bme280.pressure)
illumi = '{}lux'.format(tsl2572.illuminance)

# db connect
def main():     
# mysql connect 
   cnt = mysql.connector.connect(
   host='miyamodb',
   port='3306',
   db='miyamodb',
   user='miyamo',
   password='miyamoXXXX',
   charset='utf8'
   )
　 db = cnt.cursor(buffered=True)

# query table update run
    sql = 'UPDATE room_env SET temperature = %s, humidity = %s, air_pressure = %s, illuminance = %s, upd_datetime = now()  where id = 1';
    data_env = (temp, humi, air_p, illumi)
    db.execute(sql,data_env)
    sql = 'commit';
    db.execute(sql)

# select
    sql = 'SELECT * FROM room_env';
    db.execute(sql)
    
# display 
    rows = db.fetchall()
    print('room_env update：',rows)

# cursol end
    db.close()
# close
    cnt.close()

if __name__ == "__main__":
    main()
```
９．cronに登録 5分毎に実行。　
```
sudo crontab -e
```
*/5 * * * * /usr/bin/python3 /home/pi/room_env_disp.py >> /tmp/cron.log 2>&1

１０．最後にＦＷ設定
１）．インストール
```
sudo apt install ufw
```
２）．有効化
```
sudo ufw enable
```
３）．ポート開放　http,https,samba,vnc,ssh,mysql
```
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 445
sudo ufw allow 5900
sudo ufw allow 22
sudo ufw allow 3306
```
４）．リロード
```
sudo ufw reload
```
５）．ルール確認
```
sudo ufw status
```