HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2020/06/03

クリプトン開発の「リスク通知システム」をラズパイで動かす!QRコード方式で来訪者への濃厚接触の追跡・連絡が可能 クリプトン開発の「リスク通知システム」をラズパイで動かす!QRコード方式で来訪者への濃厚接触の追跡・連絡が可能

(新型コロナウイルス感染症(COVID-19)の社会情勢を鑑みオープンソースで無償公開「コロナ追跡システム」を Raspberry Piで動かす)

Tags: [Raspberry Pi], [電子工作]




● クリプトン開発の「リスク通知システム」 をラズパイで動かす!店舗、イベント等の来訪追跡が可能

 ラズパイで動かす題材として面白い!と言う事で、ラズパイで動かしてみます。
 ※ 正式に運用する場合は色々と「考慮」する必要があります。

 初音ミク制作のクリプトン・フューチャー・メディア株式会社。
クリプトン・フューチャー・メディア(株)公式サイト

クリプトン開発の「リスク通知システム」 本日よりオープンソースとしてGitHubにて公開!
 2020/05/28 「リスク通知システム」とは、コンタクトトレーシング(接触確認)に用いられる事を想定して、クリプトンが開発したシステムです。
 今後のコロナ対策に活用していただく事が可能です。

[GitHub] cfm-system-team/hazard_alert リスク通知システム
 店舗やイベント会場にて感染症などのリスクが発生した際に、QRコードとメールを利用して来店・来場された方に注意喚起するためのシステムとなります。
 本システムは誰でも無償で利用することのできるオープンソースとなっています。
 MITライセンスに準拠しています。

北海道コロナ通知システム

 初音ミクで応援!!

初音ミク V4X
ASIN: B01G6XK6VM

クリプトン・フューチャー・メディア公認 初音ミク V4X 徹底攻略ガイドブック 調声からDAWでの曲作りまでわかる本 (データ・ダウンロード対応) (日本語) 単行本(ソフトカバー) - 2016/11/18
ASIN: 4845628708

初音ミク Project DIVA MEGA39's(メガミックス) - Switch
ASIN: B07WZZWGTS

初音ミク Project DIVA Future Tone DX - PS4
ASIN: B073191YDM

【Amazon.co.jp限定】初音ミク「マジカルミライ 2019」 [2Blu-ray + 豪華ブック] (初回限定盤) (Amazon.co.jp限定予約購入特典 : マジカルミライライブフォトカレンダー 付)
ASIN: B07W4QCVPY


●動作環境
Raspberry Pi OS (32-bit) Lite
Debian Buster
PHP 7.3.14
MariaDB 10.3.22
Apache/2.4.38 (Raspbian)
Composer 1.8.4
Laravel Framework 7.13.0

●クリプトン開発の「リスク通知システム」のラズパイ設置手順
 0. ラズパイの SDカードを準備
 1. ラズパイの初期設定
 2. 「リスク通知システム」に必要なミドルウェア(PHP、MariaDB等)をインストール
 3. ミドルウェア(MariaDB等)の初期設定
 4. 「リスク通知システム」をインストール
 5. 「リスク通知システム」の初期設定
 6. 「リスク通知システム」の動作確認


●使用した Raspberry Pi OS(旧称:Raspbian OS)のバージョン

Raspberry Pi OS (previously called Raspbian)

Raspberry Pi OS (32-bit) Lite
Minimal image based on Debian Buster
Version: May 2020
Release date: 2020-05-27

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.118-v7+ #1311 SMP Mon Apr 27 14:21:24 BST 2020 armv7l GNU/Linux

pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster


● 0. ラズパイの SDカードを準備


2020/03/01
FWinSdCardImager SDカード イメージ書き込みアプリ、ラズパイの Raspbian OS、Jetson Nanoの Ubuntuの書き込みに便利
FWinSdCardImager SDカード イメージ書き込みアプリ、ラズパイの Raspbian OS、Jetson Nanoの Ubuntuの書き込みに便利

  ラズパイや Jetson Nano等のワンボードマイコン等への OSイメージの書き込みが簡単にできる


● 1. ラズパイの初期設定

 ラズパイの俺専用初期設定
# ラズパイの IPv6を無効化
sudo bash -c "echo \# Disable IPV6 >> /etc/sysctl.conf"
sudo bash -c "echo net.ipv6.conf.all.disable_ipv6 = 1 >> /etc/sysctl.conf"

# ===
# bashのコマンドラインヒストリの設定
# echo export HISTCONTROL=ignoreboth >> ~/.bashrc
# ラズパイの bashでは HISTCONTROL=ignorebothは正しく動きません。
# ラズパイの bashでは HISTCONTROL=ignorespace:ignoredups:erasedupsとします。
echo export HISTCONTROL=ignorespace:ignoredups:erasedups >> ~/.bashrc

# ===
free
#               total        used        free      shared  buff/cache   available
# Mem:         948280       52592      658088       12264      237600      828696
# Swap:        102396           0      102396

# CPUの使用メモリ空間の確認方法
vcgencmd get_mem arm
# arm=948M

# GPUの使用メモリ空間の確認方法
vcgencmd get_mem gpu
# gpu=76M

#  VRAMのサイズを 64MBから 16MBに減らす
# sudo bash -c "echo gpu_mem=16>> /boot/config.txt"
# sudo sed -i -e "s/^gpu_mem=.*/gpu_mem=16/g" /boot/config.txt
# raspi-config nonintコマンドで gpu_memを設定する方が簡単で確実
sudo raspi-config nonint do_memory_split 16

# ===
# 初期設定 ACT-LEDをハートビート動作
sudo bash -c "echo dtparam=act_led_trigger=heartbeat >> /boot/config.txt"

# ===
# ラズパイを最新の状態にする
bash -c "echo \#\!/bin/sh > update.sh"
bash -c "echo df -h >> update.sh"
bash -c "echo sudo apt-get update >> update.sh"
bash -c "echo sudo apt-get -y upgrade >> update.sh"
bash -c "echo sudo apt-get -y dist-upgrade >> update.sh"
bash -c "echo echo \$\'\\\a\' >> update.sh"
bash -c "echo df -h >> update.sh"
bash -c "echo sudo reboot >> update.sh"
bash -c "echo \# sudo poweroff >> update.sh"
chmod +x update.sh
./update.sh
# 自動的に再起動する

# ===
free
#               total        used        free      shared  buff/cache   available
# Mem:         999012       46216      872624       12860       80172      889040
# Swap:        102396           0      102396

vcgencmd get_mem arm
# arm=998M

vcgencmd get_mem gpu
# gpu=16M


● 2. 「リスク通知システム」に必要なミドルウェア(PHP、MariaDB等)をインストール

# お決まりの sudo apt-get update
sudo apt-get update

# gitのインストール
sudo apt -y install git

# MySQLのインストール
# mysql-serverから mariadb-serverに変わった
# sudo apt -y install mysql-server
sudo apt -y install mariadb-server

# MySQLのバージョンの確認
# コマンドラインはそのまま mysqldと mysqlが使える
mysqld -V
# mysqld  Ver 10.3.22-MariaDB-0+deb10u1 for debian-linux-gnueabihf on armv8l (Raspbian 10)
mysql -V
# mysql  Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnueabihf (armv8l) using readline 5.2
# PHP 7.3のインストールを一行で一括で行なう場合
# mcryptと php7.1-mcryptは php 7.2から廃止になった
sudo apt-get -y install php7.3 php7.3-common php7.3-mbstring php7.3-xml php7.3-mysql php7.3-zip php7.3-gd php7.3-curl php7.3-json

# libc-bin
# Configuring libc6:armhf

# PHPのバージョンの確認 PHP 7.3.14
php -v
# PHP 7.3.14-1~deb10u1 (cli) (built: Feb 16 2020 15:07:23) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.14, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.14-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies
# Apache 2 Web Serverのインストール(不要)
# sudo apt-get -y install apache2

# Apache 2 Web Serverのバージョンの確認
apache2 -v
# Server version: Apache/2.4.38 (Raspbian)
# Server built:   2019-10-15T19:53:42
# Composerのインストール
sudo apt-get -y install composer

# Composerのバージョンの確認
composer -V
# Composer 1.8.4 2019-02-11 10:52:10


● 3. ミドルウェア(MariaDB等)の初期設定

● MySQLに Laravel用のアカウント laravelを作成する

sudo mysql -u root mysql

# MySQLにアカウント laravelを作成する
# パスワードは password
# GRANT OPTION を除き、指定されたアクセスレベルにあるすべての権限を付与します
# ALL PRIVILEGES = 最強権限
# ALL = 強権限
# とりま自分の勉強用なので「強権限」で作成する
# ※ セキュリティの観点から公開する場合は必要最小限の権限にして管理、適切に設定しましょう。
GRANT ALL ON *.* TO 'laravel'@'localhost' IDENTIFIED BY 'password';

SELECT user, host FROM mysql.user;
+---------+-----------+
| user    | host      |
+---------+-----------+
| laravel | localhost |
| root    | localhost |
+---------+-----------+
$ mysql -u laravel -ppassword
$ mysql --user=laravel --password=password

# phpMyAdminのログインもこのアカウント情報を使用します

● Laravel用のデータベース laravelを作成する
$ mysql -u laravel -ppassword

CREATE DATABASE laravel;
exit


● 4. 「リスク通知システム」をインストール

sudo rm -rf /var/www/hazard_alert
sudo mkdir /var/www/hazard_alert

# 本来であれば chownでファイル権限のユーザーで許可を与えるが、自分だけの開発環境なので chmodで安易に済ませている。
sudo chmod 777 /var/www/hazard_alert

cd /var/www
git clone https://github.com/cfm-system-team/hazard_alert.git
cd hazard_alert

composer install
# Package manifest generated successfully.


● 5. 「リスク通知システム」の初期設定

cp .env.example .env
php artisan key:generate
# Application key set successfully.

# データベースなどの環境情報を設定
# メール送信の設定
nano .env

# データベースなどの環境情報を設定
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=password

# メール送信の設定
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME="Gmailのアカウント(例:hogehoge@gmail.com)"
MAIL_PASSWORD="Gmailのパスワード"
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="送信元メールアドレス(例:hogehoge@gmail.com)"
MAIL_FROM_NAME="${APP_NAME}"

cd /var/www/hazard_alert

php artisan migrate
# Migration table created successfully.

php artisan --version
# Laravel Framework 7.13.0

# apache2の mod_rewriteモジュールを a2enmodコマンドで有効化する
# これを有効化しないと /のルートディレクトリ以外にアクセスすると 404 Not Foundになる
sudo a2enmod rewrite

# apache2の mod_rewriteモジュールの有効化を確認する
ls -l /etc/apache2/mods-enabled/ | grep rewrite
# lrwxrwxrwx 1 root root 30 Mar  5 06:06 rewrite.load -> ../mods-available/rewrit .load

# 000-default.confの DocumentRoot設定を書き換える
# 000-default.confの DocumentRoot設定の下に AllowOverride All設定を追加する
sudo nano /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
#       DocumentRoot /var/www/html
        DocumentRoot /var/www/hazard_alert/public

        <Directory "/var/www/hazard_alert/public">
          AllowOverride All
        </Directory>

# apache2の設定ファイルを書き換えたので apache2を再起動する
sudo systemctl restart apache2

# failed to open stream: Permission deniedになるので 757にする
# 本来であれば chownでファイル権限のユーザーで許可を与えるが、自分だけの開発環境なので chmodで安易に済ませている。
sudo chmod -R 757 /var/www/hazard_alert/storage

# Basic認証用のユーザー情報の追加

HTTP基本認証

ユーザー名:admin
パスワード:password
 で作成する。

※ usersテーブルの passwordカラムは Hash::make('hogehoge'); または bcrypt('hogehoge')
 BCrypt Blowfish暗号(パスワードが最大 72文字で切り詰められる、73文字目以降が無視される)

● Basic認証用のユーザー情報の追加方法(その1)
# Basic認証用のユーザー情報の追加方法(その1)
php artisan make:seeder UserSeeder
# Seeder created successfully.

nano database/seeds/UserSeeder.php

<?php

use Illuminate\Database\Seeder;

class UserSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        //
        DB::table('users')->insert([
            'name' => 'name',
            'email' => 'admin',
            'password' => bcrypt('password'),
        ]);
    }
}

nano database/seeds/DatabaseSeeder.php

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        $this->call(UserSeeder::class);
    }
}

php artisan db:seed --class=UserSeeder
# Database seeding completed successfully.

● Basic認証用のユーザー情報の追加方法(その2)
# Basic認証用のユーザー情報の追加方法(その2)
pi@raspberrypi:/var/www/hazard_alert $ php artisan tinker
Psy Shell v0.10.4 (PHP 7.3.14-1~deb10u1 - cli) by Justin Hileman
>>> echo Hash::make('password');
$2y$10$PquwpEIvaPfOXtztEOPlVefziL05N6sTTT3//MYsriv8uyEsRkJRG⏎
>>> exit
Exit:  Goodbye

$ mysql -u laravel -ppassword

use laravel;
# Database changed

show tables;
# +-------------------+
# | Tables_in_laravel |
# +-------------------+
# | failed_jobs       |
# | groups            |
# | migrations        |
# | recipients        |
# | users             |
# +-------------------+
# 5 rows in set (0.002 sec)

select * from users;
# Empty set (0.001 sec)

show columns from users;

insert into users(id,name,email,password) VALUES (1,'管理者','admin','$2y$10$PquwpEIvaPfOXtztEOPlVefziL05N6sTTT3//MYsriv8uyEsRkJRG');

select * from users;
+----+-----------+-------+-------------------+----------+----------------+------------+------------+
| id | name      | email | email_verified_at | password | remember_token | created_at | updated_at |
+----+-----------+-------+-------------------+----------+----------------+------------+------------+
|  1 | 管理者    | admin | NULL              | $2y..... | NULL           | NULL       | NULL       |
+----+-----------+-------+-------------------+----------+----------------+------------+------------+
1 row in set (0.000 sec)

exit

● Basic認証用のユーザー情報の追加方法(その3)
Basic認証の認証情報について #12
# Basic認証用のユーザー情報の追加方法(その3)
php artisan tinker
App\User::create(['name' => 'sample', 'email' => 'admin', 'password' => bcrypt('password')]);


● FastCGIの注意

FastCGIの注意
FastCGIの注意
PHP FastCGIを使用している場合、初期状態のままでHTTP基本認証は正しく動作しないでしょう。
以下の行を.htaccessファイルへ追加してください。

/var/www/hazard_alert/public/.htaccess

RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

● Digest認証

 Basic認証(基本認証)よりも Digest認証の方が安全。

 mod_auth_digest

Apache Module mod_auth_digest


●画面表示等の文字列情報を設定

# 画面表示等の文字列情報を設定
nano .env

APP_NAME=.envのAPP_NAME

...

DEVELOPER=.envのDEVELOPER
COLLABORATION=.envのCOLLABORATION
COPYRIGHT=.envのCOPYRIGHT
PRIVACY_POLICY_URL=.envのPRIVACY_POLICY_URL
DESCRIPTION=.envのDESCRIPTION
設定例
# 画面表示等の文字列情報を設定
APP_NAME=○○県□□市の「コロナ濃厚接触確認通知システム」

...

DEVELOPER=開発会社 FREE WING
COLLABORATION=協力会社 FREE WING
COPYRIGHT=COPYRIGHT ○○県□□市
PRIVACY_POLICY_URL=https://hogehoge.example.com/privacy_policy_page.html
DESCRIPTION=説明文をここに書く、新型コロナウイルスの感染者と濃厚に接触した可能性がある場合にメールでお知らせします。
resources/views/group/create.blade.php
店舗・イベント QRコード生成のヘッダ部分
こちらは「<b>{{ config('app.name') }}</b>」店舗関係者・イベント主催者様用のご登録ページです。<br>
下記入力欄に皆様の店舗・イベント・集客施設の情報のご登録をお願いします。<br>
「登録してQRコードを生成」のボタンを押すと、掲示用のQRコードをダウンロードすることができます。<br>
また、登録いただいた情報はメール受信を希望するユーザーに公開されます。
クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!



layouts/app.blade.php
ブラウザ表示のフッタ部分
    <p>&copy; {{ env('COPYRIGHT') }}</p>
    <p><a href="/terms_user">利用規約(利用者用)</a>&nbsp;|&nbsp;&nbsp;<a href="/terms_organization">利用規約(事業者用)</a>&nbsp;|&nbsp;&nbsp;<a href="{{ env('PRIVACY_POLICY_URL') }}" target="_blank">プライバシーポリシー</a></p>
    <p><small>※「QRコード」は株式会社デンソーウェーブの登録商標です。</small></p>
クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!



resources/views/layouts/mail.blade.php
メールのフッタ部分
******************************************
【{{ config('app.name') }}{{ env('DESCRIPTION') }}

システム運営:{{ env('DEVELOPER') }}
協力:{{ env('COLLABORATION') }}
******************************************
クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!




● 6. 「リスク通知システム」の動作確認

# メール送信のテスト
# hogehoge@gmail.comにテストメールを送信する

pi@raspberrypi:/var/www/hazard_alert $ php artisan tinker
Psy Shell v0.10.4 (PHP 7.3.14-1~deb10u1 - cli) by Justin Hileman
>>> Mail::raw('Test Mail', function($message) { $message->to('hogehoge@gmail.com')->subject('subject Test Mail'); });
=> null
>>> exit
Exit:  Goodbye

nullを表示すれば「メール送信 成功」
クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!



● http://raspberrypi.local/ でとりあえずアクセスしてみる

http://raspberrypi.local/
# 404 Not Foundが出れば正常
・クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!
クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!




● QRコードの発行(店舗、施設等)

# QRコードの発行(店舗、施設等)
http://raspberrypi.local/group/register
クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!


クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!


クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!


クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!


クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!


クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!




● QRコードを印刷して、入り口等に掲示する。

クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!


・クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!
クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!




● 来店・来場した時に QRコードを読み込み、メールアドレスを登録する

クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!


クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!


クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!


クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!


クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!




2019/10/14
Visual Studio 2013の .NET C#で UTF-8対応 QRコード生成・読取アプリを作成する方法、ZXing.Net QR Codeライブラリを使用
Visual Studio 2013の .NET C#で UTF-8対応 QRコード生成・読取アプリを作成する方法、ZXing.Net QR Codeライブラリを使用

  .NETで UTF-8対応 QRコード作成・解読アプリを作成、ILMergeで dllを exeに合体する方法

 メールが届きます。

クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!




● リスク発生時の来店・来場された方の件数とメールアドレスの確認

# リスク発生時の来店・来場された方の件数とメールアドレスの確認
http://raspberrypi.local/recipient/search
クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!
 Basic認証

クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!


クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!


クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!


・クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!
クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!



 「検索結果をダウンロード」で来店・来場したメールアドレス(個人情報)を確認できます。


●「リスク通知システム」のその他の裏技

 https SSL通信へのリダイレクトの回避
 ・ブラウザの User-Agent情報を「ガラケー」に偽装する
  User-Agentの文字列に、DoCoMo、FOMA、SoftBankの文字列を含んでいれば良い

 ・RecipientController.phpのリダイレクト処理を無効にする
/var/www/hazard_alert/app/Http/Controllers
RecipientController.php

 この if文のブロックを丸ごと無効にする
        // ガラケー対応
        if (empty($_SERVER['HTTPS'])) {
            $ua = $_SERVER['HTTP_USER_AGENT'];
            if(!((strpos($ua, 'DoCoMo') !== false) || (strpos($ua, 'FOMA') !== false) || (strpos($ua, 'SoftBank') !== false))) {
                $url = 'https://' . $_SERVER['HTTP_HOST'] . '/recipient/register/' . $hash;
                return redirect($url);
            }
        }


●「カレンダーに被るバグ」

クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!




●「リスク通知システム」の設定ミスによるエラー

 database 'laravel'が無い
pi@raspberrypi:/var/www/hazard_alert $ php artisan migrate

   Illuminate\Database\QueryException

  SQLSTATE[HY000] [1049] Unknown database 'laravel' (SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = 'BASE TABLE')

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:671
    667|         // If an exception occurs when attempting to run a query, we'll format the error
    668|         // message to include the bindings with SQL, which will make this exception a
    669|         // lot more helpful to the developer instead of just the database's errors.
    670|         catch (Exception $e) {
  > 671|             throw new QueryException(
    672|                 $query, $this->prepareBindings($bindings), $e
    673|             );
    674|         }
    675|

  • Database name seems incorrect: You're using the default database name `laravel`. This database does not exist.

    Edit the `.env` file and use the correct database name in the `DB_DATABASE` key.
    https://laravel.com/docs/master/database#configuration

      +36 vendor frames
  37  artisan:37
      Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))

 MAIL_ENCRYPTION=null
pi@raspberrypi:/var/www/hazard_alert $ php artisan tinker
Psy Shell v0.10.4 (PHP 7.3.14-1~deb10u1 - cli) by Justin Hileman
>>> Mail::raw('Test Mail', function($message) { $message->to('hogehoge@gmail.com')->subject('subject Test Mail'); });
Swift_TransportException with message 'Expected response code 250 but got code "530", with message "530 5.7.0 Must issue a STARTTLS command first. xxxxxxxxxxxxxxx.219 - gsmtp
"'
>>> exit
Exit:  Goodbye

 MAIL_PASSWORD="パスワードが間違い"
pi@raspberrypi:/var/www/hazard_alert $ php artisan tinker
Psy Shell v0.10.4 (PHP 7.3.14-1~deb10u1 - cli) by Justin Hileman
>>> Mail::raw('Test Mail', function($message) { $message->to('hogehoge@gmail.com')->subject('subject Test Mail'); });
Swift_TransportException with message 'Failed to authenticate on SMTP server with username "hogehoge" using 3 possible authenticators. Authenticator LOGIN returned Expected response code 235 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8  https://support.google.com/mail/?p=BadCredentials xxxxxxxxxxxxxxx.35 - gsmtp
". Authenticator PLAIN returned Expected response code 235 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8  https://support.google.com/mail/?p=BadCredentials xxxxxxxxxxxxxxx.35 - gsmtp
". Authenticator XOAUTH2 returned Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8  https://support.google.com/mail/?p=BadCredentials xxxxxxxxxxxxxxx.35 - gsmtp
".'
>>> exit
Exit:  Goodbye

 storageディレクトリに権限が無い
UnexpectedValueException
The stream or file "/var/www/hazard_alert/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied
http://raspberrypi.local/group/register

Monolog\Handler\StreamHandler::write
vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:111
クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!



 メール送信エラー
Swift_TransportException
Expected response code 250 but got code "530", with message "530 5.7.0 Must issue a STARTTLS command first. xxxxxxxxxxxxxxx.30 - gsmtp"
http://raspberrypi.local/group/register

Swift_Transport_AbstractSmtpTransport::assertResponseCode
vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:457
クリプトン開発の「リスク通知システム」 をラズパイで動かす!コロナ対策に!




●その他

大阪コロナ追跡システム
 「開発費は 80万円」

 1ヶ月当たりの運用保守費用は?



Tags: [Raspberry Pi], [電子工作]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

Raspberry Piで Googleの Go言語 + Gin Webフレームワークをインストールして Webアプリを作る
Raspberry Piで Googleの Go言語 + Gin Webフレームワークをインストールして Webアプリを作る

  Raspberry Piで Googleの Go言語 + Gin Webフレームワークをインストールして Webアプリを作る

Raspberry Piで WebAPIモックサーバー JSON Serverを動かしてみるテスト
Raspberry Piで WebAPIモックサーバー JSON Serverを動かしてみるテスト

  Raspberry Piで APIモックサーバー JSON Serverを動かしてみるテスト

Raspberry Piに LAMP構成の Apache MySQL PHP Perl phpMyAdminの Webサーバを構築する方法
Raspberry Piに LAMP構成の Apache MySQL PHP Perl phpMyAdminの Webサーバを構築する方法

  ラズパイで一般的な Webサービスを動かす場合に必要なアプリが入った LAMP stackを構築

Raspberry Piに LLMP Lighttpd + MySQL + PHP + Perl 構成の Webサーバを構築する方法
Raspberry Piに LLMP Lighttpd + MySQL + PHP + Perl 構成の Webサーバを構築する方法

  ラズパイで Webサービスを動かす、Lighttpd + PHP + Perl + Python + Ruby CGIの LLMP stackを構築

Raspberry Piに nginx + MySQL + PHP + Perl 構成の LEMP Webサーバを構築する方法
Raspberry Piに nginx + MySQL + PHP + Perl 構成の LEMP Webサーバを構築する方法

  ラズパイで Webサービス LEMP Stackを構築、nginx + PHP + Perl(UNIXドメインソケット方式)

Raspberry Piの Webサーバに PHP MySQL PDOを入れて PHP CGIから MySQLを操作する方法
Raspberry Piの Webサーバに PHP MySQL PDOを入れて PHP CGIから MySQLを操作する方法

  Raspberry Piの Webサーバに PHP MySQL PDOを入れて PHP CGIから MySQLを操作する方法

Raspberry Pi 3 Model Bで CMSフレームワーク WordPressをセットアップする方法
Raspberry Pi 3 Model Bで CMSフレームワーク WordPressをセットアップする方法

  ラズパイ3で WordPressをインストールする方法

Raspberry Pi3を Gitサーバとして設定する方法、Git単体と GitLabを使用する方法
Raspberry Pi3を Gitサーバとして設定する方法、Git単体と GitLabを使用する方法

  ラズパイ3でローカルの Gitサーバを動かす方法。GitLabをインストールする方法

Raspberry Pi3に Postfixメールサーバーを Gmailの SMTPをリレーとして立てる方法
Raspberry Pi3に Postfixメールサーバーを Gmailの SMTPをリレーとして立てる方法

  Raspbian Jessieで Postfix Mail serverを Gmailの SMTPを中継サーバとして設定する方法

Gitでリモートにプッシュした内容を完全に無かった事にする方法
Gitでリモートにプッシュした内容を完全に無かった事にする方法

  いわゆる Gitでやらかした時に使える最強奥義 git reset --hard HEAD~; git push -f

Raspberry Piに Avahi Bonjourサービスを入れて、ホスト名で接続できる様にする方法
Raspberry Piに Avahi Bonjourサービスを入れて、ホスト名で接続できる様にする方法

  ラズパイに Bonjourサービスを入れて IPアドレスが分からなくてもホスト名で簡単に接続する方法

Raspberry Piや Jetson NANO等をネットワークに接続した場合の IPアドレスの便利ツール xfinder
Raspberry Piや Jetson NANO等をネットワークに接続した場合の IPアドレスの便利ツール xfinder

  DHCPで自動で IPアドレスが割り当てられる場合に、ワンボードマイコンの IPアドレスを調べる場合に便利

Apache Webサーバを過剰なアクセスや DoS攻撃から守る modモジュールの紹介
Apache Webサーバを過剰なアクセスや DoS攻撃から守る modモジュールの紹介

  対 DoS攻撃用の Apache2モジュール mod_evasive、mod_dosdetector、mod_limitipconn、fail2ban等の紹介

Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ
Raspberry Pi Zero Wを海外通販の Pimoroni等での購入方法、購入できる通販ショップ一覧まとめ

  ラズパイゼロW ワイヤレスモデルを海外通販でサクッと簡単に個人輸入で入手。技適通過でも国内販売は常に品切れ

Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ
Raspberry Pi 3で安定して使える相性の無い最適な microSDカードの種類のまとめ

  ラズパイ3で安定して使える microSDカードを購入する Teamと SanDiskは絶対に買わない

Raspberry Pi 3 Model Bに専用カメラモジュール RaspiCamを接続する方法
Raspberry Pi 3 Model Bに専用カメラモジュール RaspiCamを接続する方法

  ラズパイに専用カメラモジュールを接続して Raspbianで写真の静止画撮影や動画を録画する方法

Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ
Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ

  ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も

Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳
Raspberry Pi 3公式フォーラムの FAQの内容の日本語訳

  ラズパイ公式フォーラムの「The Raspberry Pi 3 Model B Q&A thread」の日本語訳

ラズパイを意識した別物製品 Orange Pi Zeroを買ってみた、Allwinner H2+ Cortex-A7 4core
ラズパイを意識した別物製品 Orange Pi Zeroを買ってみた、Allwinner H2+ Cortex-A7 4core

  オレンジパイはラズパイよりもコスパは良いが情報が無いので利用者側に一定のスキルが必要

Orange Pi PC 2を買ってみた、Allwinner H5 Cortex-A53 4core ARM64
Orange Pi PC 2を買ってみた、Allwinner H5 Cortex-A53 4core ARM64

  ラズパイを意識した別物製品、オレンジパイはラズパイよりもコスパが良い、でも情報が無い

Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板
Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板

  Espressif ESP8266 ESP-12-E NodeMCU V1 ESP12 CP2102

BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)
BangGood通販はドローン以外にも面白い商品がまだまだ有った(電子工作編)

  レーザー彫刻機、カラー液晶の DIYオシロ、Arduinoや Raspberry Pi用の小型カラー液晶




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2020 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_hazard_alert_corona_virus_risk_alert_system/