日常生活の物理|身近で体験できる科学のブログ

日常に関すること、何でもつぶやきます。物理的な視点を加えることが多いかも。

部屋の空気の淀み感:Raspberry Piを使った不快指数モニタリング

前回記事でCO2ガスセンサを搭載するところまで、お話しました。

しかし実際に運用してみて分かったことがあります。
「この部屋の空気が淀んでいるな」と感じたときに、センサ出力値を見てみると・・・




700 ppm!!




・・・あれ、ぜんぜん高くない。。






そうなんです。


一週間ほど運用して分かったのですが、"空気の淀み感"の正体は、どうやらCO2濃度が高いことと、一致しないことが分かってきました。


この感覚は、私だけでなく妻も一緒だったようで、"何か不快感があるけど、ガス濃度は低いんだね"ということが度々ありました。




しかし、"空気の淀み感"の正体って、物理的には何なんだろう。。

CO2濃度でないとすると、、、



ひょっとして不快指数??



と思うようになりました。

不快指数については、以前の記事でも一度触れています。



思い立ったら作ってみる!!ということで、先日のモニタリングシステムに、不快指数の表示も追加することにしました。



不快指数の計算は、以下になります。

(式)不快指数 = 0.81 × 気温(℃) + 0.01 × 湿度(%) × (0.99 × 気温(℃) − 14.3) + 46.3



気温と湿度から計算できるので、Raspberry PiMySQLの変更を加えることなく、表示部をいじるだけで実装可能です。



ということで、早速作ってみました。コードは以下になります。


【Web_Display.py】

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>センサーデータ</title>
    <script type="text/javascript" src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script type="text/javascript">
    function drawChart(selectspan) {
    var temp_data;
     //データをjson形式で取得し、temp_dataという変数に代入する
    $.ajax({
    url: "mysql_CO2.php", //データ取得のURL
    type: "GET", //GETメソッドで取得
    dataType: 'json', //処理結果はjson形式で受信
    async: false, //非同期通信
    data: {
           target: 'temp',
           range: selectspan
          },
    success: function(json1) { temp_data = json1;} 
    });
     //データをjson形式で取得し、hum_dataという変数に代入する
    var hum_data;
    $.ajax({
    url: "mysql_CO2.php", //データ取得のURL
    dataType: 'json',
    async: false,
    data: {
           target: 'hum',
           range: selectspan
          },
    success: function(json1) { hum_data = json1;}
    });
     //データをjson形式で取得し、lux_dataという変数に代入する
    var lux_data;
    $.ajax({
    url: "mysql_CO2.php", //データ取得のURL
    dataType: 'json',
    async: false,
    data: {
           target: 'lux',
           range: selectspan
          },
    success: function(json1) { lux_data = json1;}
    });
     //データをjson形式で取得し、co2_dataという変数に代入する
    var co2_data;
    $.ajax({
    url: "mysql_CO2.php", //データ取得のURL
    dataType: 'json',
    async: false,
    data: {
           target: 'co2',
           range: selectspan
          },
    success: function(json1) { co2_data = json1;}
    });
    // ======================================
    //          絶対湿度 & 不快指数の計算
    // ======================================
    var abs_hum_data = [];
    var abs_hum_data_temp;
    var discomfort_index_data = [];
    var discomfort_index_data_temp;
    var t;
    var RH;
    var $content = $('#content');
    $content.append("<li>" + "データ一覧" + "</li>");
    $content.append("<li>" + hum_data.length + "</li>");
    for (var i =0; i<hum_data.length; i++) {
	$content.append("<li>" + hum_data[i]["y"] + ":" + temp_data[i]["y"] + "</li>");
	t = temp_data[i]["y"];
	RH = hum_data[i]["y"];
	
	abs_hum_data_temp = 217*(6.1078* Math.pow(10.0, 7.50*t/(t+237.3))) / (t+273.15)*RH/100;
	discomfort_index_data_temp = 0.81*t + 0.01*RH*(0.99*t - 14.3) + 46.3;

	abs_hum_data.push( {"label": hum_data[i]["label"], "y": abs_hum_data_temp} );
	discomfort_index_data.push( {"label": hum_data[i]["label"], "y": discomfort_index_data_temp} );
    }

                var chart = new CanvasJS.Chart(chartContainer01, {
                    title: {text: "温度・湿度・照度データ"},
                    axisX: { labelAngle: -90, labelFontSize: 14, labelFontColor: '#222'},
                    axisY:[{
                            title: "Tempreture",
                            lineColor: "#C24642",
                            tickColor: "#C24642",
                            labelFontColor: "#C24642",
                            titleFontColor: "#C24642",
                            suffix: "℃"
                        },
                        {
                            title: "Humidity",
                            lineColor: "#369EAD",
                            tickColor: "#369EAD",
                            labelFontColor: "#369EAD",
                            titleFontColor: "#369EAD",
                            includeZero: false,
                            suffix: "%"
                        },
                        {
                            title: "Abs. Humidity",
                            lineColor: "#360EAD",
                            tickColor: "#360EAD",
                            labelFontColor: "#360EAD",
                            titleFontColor: "#360EAD",
                            includeZero: false,
                            suffix: "g/m3"
                        },
                        {
                            title: "CO2 Concentration",
                            lineColor: "#008000",
                            tickColor: "#008000",
                            labelFontColor: "#008000",
                            titleFontColor: "#008000",
                            includeZero: false,
                            suffix: "ppm"
                        },
                        {
                            title: "Discomfort Index",
                            lineColor: "#000000",
                            tickColor: "#000000",
                            labelFontColor: "#000000",
                            titleFontColor: "#000000",
                            includeZero: false,
                            suffix: ""
                        }
			],
                    axisY2: [{
                            title: "Illuminance",
                            lineColor: "#FF8C00",
                            tickColor: "#FF8C00",
                            labelFontColor: "#FF8C00",
                            titleFontColor: "#FF8C00",
                            includeZero: false,
                            suffix: "lx"
                        }],
               toolTip: {shared: true},
               legend: {cursor: "pointer",itemclick: toggleDataSeries},
               
                    theme: "light1",  //デフォルトテーマに設定
                    data: [{
                        type: 'line',  //温度グラフの種類
                        name: "temperature",
                        color: "#C24642",
                        showInLegend: true,
                        axisYIndex: 0,
                        dataPoints: temp_data //表示するデータ
                    },
                    {
                        type: 'line',  //湿度グラフの種類
                        name: "humidity",
                        color: "#369EAD",
                        axisYIndex: 1,
                        showInLegend: true,
                        dataPoints: hum_data //表示するデータ
                    },
                    {
                        type: 'line',  //湿度グラフの種類
                        name: "abs_humidity",
                        color: "#360EAD",
                        axisYIndex: 2,
                        showInLegend: true,
                        dataPoints: abs_hum_data //表示するデータ
                    },
                    {
                        type: 'line',  //co2グラフの種類
                        name: "CO2",
                        color: "#008000",
                        axisYIndex: 3,
                        showInLegend: true,
                        dataPoints: co2_data //表示するデータ
                    },
                    {
                        type: 'line',  //D.I.グラフの種類
                        name: "D.I.",
                        color: "#000000",
                        axisYIndex: 4,
                        showInLegend: true,
                        dataPoints: discomfort_index_data //表示するデータ
                    },
                    {
                        type: 'line',  //照度グラフの種類
                        name: "illuminance",
                        color: "#FF8C00",
                        axisYType: "secondary",
                        showInLegend: true,
                        dataPoints: lux_data //表示するデータ
                    }]
                });
    chart.render();
    function toggleDataSeries(e) {
    if (typeof (e.dataSeries.visible) === "undefined" || e.dataSeries.visible) {
        e.dataSeries.visible = false;
    } else {
        e.dataSeries.visible = true;
    }
    e.chart.render();
    }
    }
    </script>
  </head>
  <body onload= drawChart('Day')>
      <form>
      <select name="selectspan" onchange="drawChart(this.value)">
        <option value="Day" selected="">1日</option>
        <option value="Week">1週間</option>
        <option value="Month">1ヵ月</option>
        <option value="Average">1ヵ月平均</option>
      </select>
    </form>
    <div id="chartContainer01" style="height: 450px; width: 100%;"></div><br>
  </body>
</html>


さて、コードは書けました。
気になる出力結果はというと、以下のとおりです。


Raspberry Pi Zeroを使った不快指数のモニタリング


黒線が不快指数を示すグラフです。



不快指数の指標は、個人差があるそうですが、
指数70以上で不快と感じる人が出始め、
75以上で半数以上が、
80以上で全員が不快と感じ、
86を超えると我慢できなくなるそうです。

実際に計測した値を見てみると、、、



75を上回っていました




どおりで、部屋にいると不快感を感じる訳ですね(^▽^;)

1月に計測したときは、不快指数は70前後だったのですが、今日は気温が上昇したこともあり、不快指数が高まっていたようです。



空気が淀んだような感覚だったのですが、湿度と温度のバランスが悪く、不快感を感じるレンジだったのですね。換気不足が原因ではなかったことが分かりました。



体感だけに頼らずに、センサデータを蓄積してみると、視野が広がりますね。
せっかく作ったモニタリングシステムですので、健康管理目的でも、積極的に使いたいと思います!!

Raspberry Pi Zeroを使ったCO2濃度モニタリング

先月まで結婚式の話題でしたが、久々にRaspberry Piを使った常時モニタリングの拡張に取り組んでみました。前回の記事から、3ヶ月以上経つのですね。

用意したものは以下の2つです。

Raspberry Pi Zero
・MH-Z19 (CO2ガスセンサ)

接続は以下のとおりです。ピン配置は、こちらのページを参考にしました。既に温湿度センサや照度センサを搭載していましたが、Raspberry Piのピン数も足りました。

[Raspberry Pi] -> [MH-Z19]
・5V Power -> Vin
・Ground -> Gnd
・GPIO 14 (TXD) -> RXD
・GPIO 15 (RXD) -> TXD

そして、UART シリアル通信の設定と、mh-z19 をインストールします。設定方法は、こちらの記事を参考にしました。

あとはコードを書くだけです。温湿度計作りの記事で、Raspberry PiのUploadのコードを書いたので、mh-z19のコードを追加するだけで実装できました。

【Web_Upload.py】

import requests
import json
import smbus
import time
import Adafruit_DHT as DHT
import csv
import mh_z19
from datetime import datetime

def uploadSensorValues(temp, hum, lux, co2):
   url = 'http://XXXXXXXXXXX.php.xdomain.jp/sql.php'
        sensorsdata = {'datetime':datetime.now().strftime("%Y/%m/%d %H:%M:%S"),'temp':temp,'hum':hum,'lux':lux, 'co2':c$
        print (json.dumps(sensorsdata))
        headers = {'content-type': 'application/json'}
        res = requests.post(url, data=json.dumps(sensorsdata), headers=headers, verify=False)
        print (res.text)
  print (res.status_code)
        pass

def main():
        #1.LUX
        bus = smbus.SMBus(1)
        addr = 0x23
        lux = bus.read_i2c_block_data(addr,0x10)
        lux_value = (lux[0]*256+lux[1])/1.2
        print("lux= {}".format(lux_value))

        #2.temp + hum
        SENSOR_TYPE = DHT.DHT22
        DHT_GPIO = 22
        h,t = DHT.read_retry(SENSOR_TYPE, DHT_GPIO)
        print("Temp= {0:0.1f} deg C" . format(t))
        print("Humidity= {0:0.1f} %" . format(h))

        #3.CO2
        co2_conc = mh_z19.read()['co2']
        print("CO2= {0:0.1f} ppm".format(co2_conc))

        #4.data trasnmit
        uploadSensorValues(t, h, lux_value, co2_conc)

if __name__ == '__main__':
        main()


受け手側も更新します。
送信データにCO2センサを追加しましたので、MySQLを更新します。

CREATE TABLE `Sensor_Values2` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `datetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `temp` float NOT NULL,
  `hum` float NOT NULL,
  `lux` float NOT NULL,
  `co2` float NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

phpの表示系コードは省略させて頂きます。前回記事のコードに、CO2センサを追加しました。出力結果がこちらです↓


Raspberry Pi とMH-Z19を使ったCO2(二酸化炭素)濃度のモニタリング


緑線がCO2ガスセンサになります。それらしい出力できていますね!一般に、CO2濃度は1,000 ppm未満に保つとよいそうです。日中窓を開けていたので、この日は1,000 ppmを超えることはありませんでした。窓を全て閉めると、2時間程度で1,000 ppmを超えてしまうようです。

換気した際に、湿度や温度のデータと連動して動くのも面白いですね。

換気が必要なタイミングを把握するために、積極的に使っていきたいと思います!!(^^♪

コロナ禍での結婚式:挙式・披露宴での対策や注意点

前回までの記事で、コロナ禍の結婚式の体験談をまとめてきました。

これから式を挙げられる方、本当に悩みが尽きないと思います。私たちも挙式を延期するか、規模を縮小するか、と悩むポイントがありました。その都度、妻と一緒によく相談しながら、家族や列席者の話や様子を伺いつつ、決断していきました。

少しでも参考になればと思い、私たちが悩んだポイントや注意点を、以下に書かせて頂きました。

コロナ禍での結婚式の注意点
結婚式をふりかえって

キャンセル料や延期料

キャンセルや延期のポリシーは、式場にきちんと確認した方が良いと思います。高額なお金がかかるところですし、聞きづらいことでも早めに聞いた方が良いと思います。結婚式自体のキャンセルや延期に費用がかかるか、といった大きな話だけでなく、例えば挙式何日前にキャンセルとなった場合には、食事代やお花の費用がかかるかどうか、なども確認が必要です。食事代やお花の数は、式場が発注するとナマモノなので費用が発生しますし、列席者数で発注数量が変化します。私が依頼していた式場は、2週間前が期限でした。何日前までは検討の猶予があるか、というのは大事なポイントで、もし私たちのように、挙式予定日前に感染者数が増えてきている最中だったりすると、どうしても気になってきます。何日前までを検討期間にできるか、という話は、式場とよく相談した方が良いと思います。

結婚式の招待客

参列者をどこまで呼ぶかの判断は、恐らくどの挙式でも悩まれていると思います。親族や友人との関係、参列者の年齢や持病の有無、この人にだけは挙式に来てほしいと思うライン、あるいは参列者の心情・状況など、様々な要因によって変わるので、一概に答えを出すのは難しいと思います。自分たちもそうだったように、どの挙式でも悩まれているようです。答えのない問題なので、難しく考えず、来てもらいたいと思う方に、招待するのも手だと思います。もし悩む方は、両親と相談したり、周囲の様子を伺ってみるのも、良いかもしれないですね。(やりすぎるとしんどいので、ほどほどに)
私たちの場合は、祖父母に見てもらいたい、お互いの親族の方にご挨拶をしたい、という気持ちが強かったので、友人を含めた挙式から、親族婚の形に変えました。友人とは、別の機会にオンラインで飲むようにしています。またコロナが落ち着いたら、リアルで飲む約束をしました。

挙式予定日

これも悩ましいところだと思います。私たちは、1回目の緊急事態宣言では8か月の延期、2回目の緊急事態宣言では3か月の延期判断をしました。前回記事で書いたように、2回目の延期では、少しでも感染者数が減少したタイミングを狙えるように、感染者数推移を予想して、日取りを選びました。今回たまたま上手くいっただけだと思いますが、もし宜しければ参考にしてください。
長期間の延期を決断されている方に、一案として挙げたいのですが、感染者数が静まってきたら、その時期に開催してしまうのも良いのではないか、と思います。

緊急事態宣言

もし挙式予定日に近づいた頃に発令された場合、その内容に気を払った方が良いです。私たちの場合、1回目の緊急事態宣言と、2回目の緊急事態宣言では、式場が対象に含まれるかどうか、という違いがありました。2回目の緊急事態宣言では苦労したのですが、実際に発令されるまで、緊急事態宣言の要請内容が分からないのも厄介なところです。
※2021/4/30現在、3度目の緊急事態宣言が発令されています。ブライダル業界への要請は「1.5時間以内の開催、参加人数50人以下または収容率50%以内、酒類提供・カラオケ設備の使用自粛」といった内容があるようです。式場によって詳細が変わるかもしれませんので、ご確認下さい。

オンライン挙式

一案として、オンライン挙式を検討してみるのは、良いと思います。結果的には、私たちはオンラインにはしなかったのですが、選択肢として持つことにしました。具体的に考えてみると、特に追加費用も掛からずに準備できそうで、これはこれで楽しそう、という気持ちでした。
何より大事だったと思うのは、2度目の緊急事態宣言を体験したときに、次こそは絶対にできる、という心境になれたことです。いつできるのかまったく分からず、タイミングが悪ければ次回も延期かも・・・という気持ちだと、中々前向きになれなかったので、選択肢を広げても良いと思います。

メンタル面

Twitterのタイムラインを見ていると、大事なポイントなんじゃないかと感じています。私たちも、挙式が終わらないと前に進めないかのような、そうした心境になることはありました。ときには一旦忘れることも大事です。気分転換などをしましょう。一度目の延期判断後は、2人でゲームをしたり、別のことをしていました。

恐らくコロナ禍の結婚式を経験した方にしか、分からない気苦労なのだと思います。結婚式を挙げるだけのこと、、、とは言いながらも、ストレスが掛かることが非常に多いのです。Twitterの体験談を見ていると、結婚式を挙げることに対して、家族から批判的な意見を頂いた例もあるようです。結婚式は重要なライフイベントと捉えている新郎/新婦にとっては、「今挙げなくってもいいじゃない?」という何気ない一言でも、辛く感じる方もいます。本来おめでたいはずの結婚式が、後々禍根を生むきっかけになってしまわぬよう、もし声をかけるときにはお互いに配慮があると、良い関係を築けるのだと思います。もし挙式に招待されたけれど、どうしてもいけない(列席に抵抗感がある)・・・という方は、欠席の旨だけ、素直に伝えて頂くことをお勧めしたいです。

幸い私たちの親族からは、私たちの最終判断に委ねると言って頂けたので、周囲の意見に振り回されるようなことはありませんでした。その点は私たちも深く感謝していて、きちんと感染対策をしなくては、という思いがありました。できる限りの対策をし、これらの対策を施していることを、事前に周知していくことは大事だと考え、そのようにしました。

*****

長々と書いてしまいましたが、最後までこの記事を読んで頂き、ありがとうございました。少しでもコロナ禍での結婚式について、参考になれば幸いです。

コロナ禍の結婚式:2度目の緊急事態宣言発令と、挙式に向けた準備

前々回前回に続いて、コロナ禍の結婚式について、第三弾です。

前回までのあらすじ

2020年5月の挙式予定を、2021年1月に 延期。しかしながら、再度感染が拡大し、 2度目の緊急事態宣言が発令される。 今度こそ開催できるようにと、2021年4月に 再延期を決断。

2度目の緊急事態宣言と、再延期の判断

2度目の緊急事態宣言の発令で、再延期の判断をしたところまで、お話しました。
2人の中で気持ちに折り合いをつけて決定したのですが、次こそは挙げられるようにしよう、ということで、再延期にあたって幾つかの方針を決めました。

まず、挙式スタイルは親族優先ということで、1月に予定していた挙式と同じく、親族婚の形にしました。
続いて、延期日はあまり先の日程にしないこととしました。先の日程になるほど、感染のピーク時であるか、減衰時であるか、予測が困難になっていきます。当初の発表では、「緊急事態宣言は2月7日まで」という発表でしたが、これまでの感染者数の推移グラフをみて、1か月で静まることはありえない、と思いました。1月に緊急事態宣言が発令されたのであれば、減衰するまでに政府も2か月は様子は見て、感染者数を抑えるだろうと予想し、3月末~4月上旬が最適と考えました。緊急事態宣言の範囲が、1回目のときよりも限定的で、飲食店だけにターゲットして上手くいくのだろうか、という不安もありましたが、もし上手くいかなった場合には、1月末頃に自粛の範囲を広げるなりして、追加対策を打つだろうとも考え、この日程で考えました。最終的には、式場の空き日程も見て、今回は4月上旬に設定しました。
さらに今回は、オンライン挙式も視野に検討を進めることとしました。この状況では出席に不安を抱える方もいるかもしれず、とはいえ欠席もしづらい…という方もいるんじゃないか、と2人で考えて、オンライン出席の選択肢も設けました。オンラインでの配信方法については、別記事にまとめます。現地参加とオンライン参加を組み合わせた体制にして、当日どちらにも対応できるようにしました。
オンラインの検討を開始したのは12月末でしたので、1月挙式では準備も間に合いませんでしたが、4月挙式であれば準備できます。オンラインという選択肢を設けたことで、次こそは絶対に挙式ができるだろう、という心境になり、2人の中で、気持ちを落ち着けることができました。
別記事にまとめる予定ですが、今回コロナ禍での結婚式は強いストレスがかかりやすいため、幾つかの対策を講じることは、気持ちを落ち着かせるために大切だと考えています。

挙式に向けた準備

2月はオンライン配信の準備もしながら、動画や小物作りに励みました。概ね完成していたのですが、再延期になったことで時間ができ、ちょっと凝りだすフェーズに入ったかなと思います。もう一度、お花や料理を選びなおして、当日の曲を決めたりと、着々と準備を進めていました。

感染者数の推移はというと、今回の緊急事態宣言は効果的だったようで、予想どおりに減衰してくれました。2月下旬頃から、招待案内もありますので、列席者の心境も伺いました。オンラインの選択肢もあったのですが、予想に反して、皆さま出席して下さるとの回答を頂きました。本当に有難い気持ちで、胸がいっぱいでした。配信準備もしていたところでしたが、結果的には使わずに済みました(笑)

そして3月末、丁度良い時期に緊急事態宣言も解除され、いよいよ挙式本番が近づいてきました。ここから先は、一般的な結婚式と同じく、緊張感も高まってきましたが、感染対策について再度確認するようにしました。

式場側での対策として、
・部屋のキャパシティの半分以下の人数での開催にする
・扉などは開けっ放しにする
などはありましたが、これに加えて、自分たちでもできる限りのことはしようと、
・各卓テーブルに、一世帯につき、1つの消毒液を設置する
・お酌は禁止とする
・これら留意事項について、司会者よりアナウンス頂く
といった追加対策をとりました。

ただし、あまり窮屈になりすぎてもいけないですし、席を立って移動したり、写真を撮ったり、マスク越しでの会話はOKということにしました。また集合写真等は、一時的にマスクを取って頂くことにしました。ウェルカムスペースには、2人の写真を多く飾り、披露宴中に見て楽しんで頂けるようにしました。せっかく親族婚にしたので、なるべくアットホームで自由な雰囲気になるように、心掛けました。

また新郎挨拶がありますので、このような状況での開催であることについても言及するようにし、挨拶文は当日ギリギリまで練りました。

挙式当日

コロナ禍の結婚式

挙式当日の朝を迎えました。
緊張感からか、2人共あまり寝付けなかったのですが、ようやく待ちに待った挙式日です。朝から身支度をし、着付けに向かいました。

ギリギリまでマスクを付けようとしたのですが、介添えの方から「あっという間に進んでいくので、付け外しする時間はないですよ」と言われ、親族紹介に向かう前に外しました。

親族紹介の席に着くと、十分に距離をとり、向かい合わない姿勢で両家親族が待機されていました。久々にお会いする方、お電話でしかご挨拶したことがない方、初めてご挨拶する方、遠方から来られた方、皆さま本当に来て下さったんだな、と実感し、言葉で言い表せない感動と感謝の思いでした。両家父が代表として紹介し、紹介された方は一度マスクを外して会釈頂く、という事前に決めた段取りどおりに進行しました。親族集合写真では、こちらも一時的にマスクを外して頂いて、撮影しました。

その後の挙式・披露宴はいうと、あれよあれよという間に進んでいきました。段取りどおりなのですが、新郎・新婦は常に何かやることがあり、あっという間に感じました。各卓テーブルを回る時間を2回設けましたので、久々にお会いできた親族、直接お会いしたことのなかった親族など、ようやくご挨拶ができて、素直に嬉しい気持ちでいっぱいでした。ここまで約1年間、耐えた甲斐がありました。

コロナ対策については、感染対策を十分にして、事前に親族にも説明していましたので、特に当日危険だと感じる場面はありませんでした。会話をするときには距離をとって、マスク越しの会話をしたり、カメラ撮影時にはマスクを外したりと、皆さまご協力頂いて、滞りなく進みました。当日は終始和やかな雰囲気の中、各人が自由に移動したり写真を撮ったりしていました。高砂にも来て頂いて、お話をしたり写真を撮ったり、久々に会う親族同士でも自撮りを楽しんだりと、あちこちで盛り上がっていました。気合を入れて用意した動画も楽しんで頂けたようです。披露宴中、新郎新婦の2人だけは、マスクを外さないといけないため、ウェディングシールドを持参して高砂に置くようにしました。テーブルラウンドでは、ウェディングシールドで口を覆って話すようにし、なるべく向かい合って話さないように心掛けました。
【感染防止対策アイテム】結婚式専用ウェディングシールド「花束」 | 結婚式アイテムの通販【ファルベ】公式

挙式後の親族からのコメントも、「良い式だった」「久々に会えてうれしかった」「最近暗いニュースばかりで気持ちが沈んでいたので、久々に良い話で、本当に楽しかった」「純粋に挙式に来たい親族だけが集まる形になって、気兼ねなく楽しめた」といったコメントを頂きました!親族婚では新郎新婦の友人もいないため、親族からすると気を遣う必要もなく、楽しみやすかったようです。友人が来れなくなったのは残念でしたが、一番ご挨拶したかった親族にはお会いでき、楽しんで頂けたようで、私たちとしても大満足でした!!

挙式後も連絡を取るようにしていますが、挙式から2週間以上が経過した今も、誰も体調を崩される方はいません。(両家親族にも、双方体調を崩す方はいなかったこと、お伝えしました) むしろ「挙式で久々に親族に会えて、元気になった!」「明るく楽しい挙式に呼んで貰えて、その後活発になった!」といった言葉まで頂き、結果的にはプラスになったようです。

本当に無事に結婚式ができて、良かったと思いました。

※ コロナ禍の挙式の注意点について、次の記事でまとめました

コロナ禍の結婚式:緊急事態宣言による1度目の挙式延期~感染収束を願う日々

前回に続いて、コロナ禍の結婚式について、第二弾です。

前回までのあらすじ

親族や友人にお声がけし、 2020年5月に挙式を予定していたものの、 緊急事態宣言に伴い、2021年1月に延期。 新型コロナの収束を願いながら、 ニューノーマルの生活を送っている。

1度目の緊急事態宣言発令

その後、しばらく結婚式のことは忘れて、新婚生活を楽しんでいました。
結婚式の小物作りなどがあったのですが、半年以上先となると力を入れるのも難しく、今の生活を楽しむことにしました。

近所の散歩やサイクリング、自宅で一緒にゲームをしたりなど、満喫していました。5月の挙式予定だった日には、2人でお祝いをし、妻にちょっとしたサプライズムービーと花束をプレゼントしました。2人の思い出を、こっそりとムービーにまとめていたのですが、サプライズも成功し、感動してもらいました!

自宅のカスタマイズや、別ページで更新しているDIYを始めたのもこの頃でしたね。お互い、趣味も充実していたと思います。両家両親とも、たまにテレビ電話で連絡を取りつつ、ニューノーマルの生活に慣れていきました。

6月、7月と感染者数も減少し、7/22にはGoToキャンペーンが始まりました。8月に一時は第二波で感染者数が増加したものの、その後すぐに減衰し、「この調子であれば、1月には問題なく挙式もできそうだな」という漠然とした期待感がありました。
※ これは後から思えば・・・ではありますが、この時期に挙式前倒しの判断をしても良かったのかもしれません。

9月、10月、11月と過ぎ、挙式延期日の2か月前というタイミング、まさに式場とも再打ち合わせを始める時期に、感染者数が再び増加傾向に転じました。これはきつかったですね。。

ご招待する方には、丁度連絡を入れるタイミングでしたので、一番感染が収まって欲しい時期に拡大傾向になってしまい、大変悩みました。一番悩んだのが友人を呼ぶかどうかの判断で、高齢者の親族もいるため、どうしたものかとなりました。祖父母も来たいと言っていましたし、新婦が祖父母にはお世話になったということで、私たちも来てほしい気持ちでした。列席者の人数が多すぎると、どうしても感染リスクが気になりました。
2人で長く悩んだ末に、親族婚の形に変更する決断をしました。勿論、友人に会いたい気持ちも強かったのですが、親族優先と考え、やむを得ない判断でした。
私が気がかりだったのは、妻の友人が来れなくなる点でした。結婚式は基本的に新婦のためのイベントと考えていますし、その晴れ舞台を妻の友人の方にも見てもらいたい思いがありましたので、苦渋の決断でした。半ば私のエゴですが、結婚式では妻に喜んでもらいたい気持ちが一番強かったので、挙式が寂しくなるような、もの悲しくなるような形にはしたくなかったんですよね。
*親族婚自体は、後でも述べるようにとても良いものだったのですが、友人を含めた挙式でしかできないこともあるので、それを諦めるのが辛かったですね。

友人とは、別の機会に飲み会をするなり、家に呼ぶなりして、そうした場でご挨拶をして、写真等で式の様子も伝えていこう、という考えで、気持ちを落ち着けたと思います。
とはいえ、気持ちが概ね固まった後でも、連絡を入れるときは少々憚られました。2人でこの日に連絡しようと決めて、まず両親に電話で決断を伝え、その後式場・友人にも連絡しました。

第三波の到来、2度目の緊急事態宣言

2020年12月は大変もどかしい気持ちでしたね。
感染者数がどんどん増えていき、緊急事態宣言をいつ出すんだろう、という思いでニュースを見ていました。式場との打ち合わせをしつつ、小物作りや動画作り等、自分たちの準備も進めたのですが、どこかで「本当に開催できるのか?」という思いもあり、身が入らないところもあったと思います。

12月後半になり、式までもう少しという時期にも関わらず、感染者数は増えるばかりで、緊急事態宣言の発令もありませんでした。この時期は、式場との相談に時間を要しました。1度目の緊急事態宣言では、式場が休業対象に含まれていたため、今回もそのような形になるのではないか、と考えていました。
また発令された場合、そのタイミングも大変重要でした。例えばですが、挙式日の1週間前に発令されたとなると、この時点で式場はお花や料理を発注してしまっています。そうなると、挙式延期時の費用はどちらで持つのか、といった話もしました。式場側としても、実際に緊急事態宣言が発令されて、その内容が確定してからでないと、キャンセル料の持ち方の方針も決められないという回答でした。緊急事態宣言が発令され、仮に式場側で中止判断をしたとしても、そのキャンセル料を新郎新婦側が持つ可能性もあるということで、相談に時間がかかりました。この他にも、式場ホテルに前泊者がいた場合、そのキャンセル料はどうするのか、何日前であれば幾ら払うのか、それが緊急事態宣言により余儀なくされたものでも、新郎新婦負担になるのかなど、疑問点は一通り質問しました。

コロナ禍での緊急事態宣言に伴い、挙式を延期するか、決行するか、判断に悩む新郎
決行か延期かを悩む日々

このような感染状況の中、家族婚に変える案もありましたが、私たちは祖父母に見てもらいたい気持ちが強かったため、その決断もできませんでした。緊急事態宣言を出すなら早く出して欲しい、、、という気持ちで、精神的にはきつかったです。結果的には、1/7に2度目の緊急事態宣言が発令されることになりました。キャンセル料が発生するよりも前に発令され、また式場は休業対象には含めないという内容で、式場側も方針を固めることができました。

挙式自体はできることになったのですが、都内の感染者数が毎日1000人を超える状況になってしまい、挙式をしてよいかどうか、再度悩むことになりました。
2人で悩んだ末、「人を集めるのは難しい」と判断し、再延期を決断しました。とても辛い決断でした。

次回に続きます

コロナ禍の結婚式:緊急事態宣言での2度の延期~悩みに悩んだ1年間

Twitterにも書きましたが、先日ようやく結婚式を挙げることができました。
元々は5月開催の予定でしたので、約1年の延期となりましたが、挙式できました。そして、これは偶然なのですが、時事通信社より取材を受け、時事ドットコムやYahooニュース等に掲載されました・・・!
これまでの延期判断と、開催にあたって注意したことなど、まとめたいと思います。


www.jiji.com


プロフィール

友人の紹介で知り合ったふたり。 数年の交際を経て、2019年に婚約!! 東京都に転居して、新生活をスタート! 親族や友人を含め、50人規模の結婚式を企画。 2020年5月に挙式予定!

式場決め~コロナ感染拡大初期

私たちが挙式の準備を始めたのは2019年10月でした。
この頃はコロナの話などなく、2人でゼクシィを見ながら3件の式場を回り、気に入った式場を選びました。挙式日は、約半年後の2020年5月に決めました。
式場のプランナーさんから、キャンセルや延期時の説明を受けたときも、「まぁそんなことはまずないだろう」という気持ちで聞いていました。何日前にキャンセルすると何%の費用がかかり、、、といった契約条項についての説明を受けたときも、念のためにメモを取っていた程度でした。プランナーさんによると、東日本大震災のときは、式場判断で挙式を中止したことがあったそうで、そのときはキャンセル料や延期料を式場持ちにされたそうです。私たちとしても、挙式日を変えることはまずないという心境でしたし、東日本大震災レベルの災害がおきない限りは挙式できると考えていましたので、話半分で聞いていた、というのが正直なところでした。

式場決定後も、一般的なフローどおりに、準備を進めていたと思います。結婚式に呼ぶ親族や友人らへの結婚のご報告と、結婚式にお呼びしたい旨のご連絡。それをうけての招待状の準備。披露宴の進行の検討や、お花選び、テーブルクロスのデザインやウェルカムスペースの検討などなど。順調に進められていたと思います。

コロナの問題が、ニュースで取沙汰されるようになり始めたのは、1月頃からです。都内では2020年1月23日に最初の感染者が診断され1日当たり0~10人で推移していました。しかし、コロナの感染が世間で話題になり始めても、その時点ではそこまで注視していなかった、というのが本音です。

コロナ感染拡大と緊急事態宣言、延期判断まで

新型コロナウイルスのニュースが本格的に気になりだしたのは、2月後半~3月頃だったと思います。
3/11にはWHOのテドロス事務局長がパンデミックであることを表明し、トランプ大統領からも五輪開催は難しいんじゃないか、といった話も出始めました。挙式に向けては、2か月前を目安に招待状を送るため、3月はまさに招待状を送るタイミングで悩まされました。この時期から、式場とも頻繁に連絡を取るようになり、式場としての判断を伺うようになりました。幸い、私たちが挙式予定の式場では、「キャンセルの場合にはキャンセル費用がかかるものの、延期であれば、何度延期しても追加費用は取らない」という判断をしてくださいました。延期に費用がかかる式場もあると伺っており、この点は非常に助かりました。
とはいえ、得体の知れないウイルスが蔓延している状況は悩ましく、ひとまず招待状は送るものの、列席者には個別にメールやLINEをして、状況を見て延期等の判断もありうることをお伝えしました。

そのような状況の中で、4月7日、安倍内閣より1回目の緊急事態宣言が発出されました。結婚式場への影響はというと、東京都では、ホテル・旅館の集会に用いるスペースを含む集会・展示施設等を「基本的に営業の休止を要請する」対象としました。床面積の合計1000平米超の施設が対象とされましたが、それ以下の施設についても休業協力を依頼するように求めました。私たちの式場は、まさに1000平米超の施設に該当したため、式場自体が閉鎖されることになり、延期を余儀なくされました。度々泣き出しそうになる妻を慰めながら、両親にも電話で説明し、友人らにも延期とする旨を伝えました。ただし、緊急事態宣言の有無によらず、延期決断をするところではありました。当時は未知のウイルスが市中感染をしており、感染の実態も掴めていない、という印象が強く、親族には高齢者の方もいたため、2人で延期判断をしようという決断のタイミングでもありました。

延期日について深く考えていなかったのですが、半年程度延期される方が多いという話を聞き、私たちも1月開催としました。

次回に続きます

2021年以降にFlashアニメーション(.swf)を.gifに差し替える方法

Adobe Flash Playerがサポート終了したことで、数学サイト内のFlashコンテンツが見れなくなってしまいました。2020年12月31日にサポートを終了し、2021年1月12日以降は、Flash PlayerにおけるFlashコンテンツの実行をブロックされていたのですね。今まで数学サイトへの影響にはまったく気が付いていませんでした。

下図(左)のように、サービスが終了した旨が表示されます。
Adobe Flash Player サービス提供終了のメッセージ画面

東大生が教えるビジュアル数学では、そもそも視覚的な理解をめざしているのに、再生できないのはちょっと残念。。。ということで、今更ながらですが、GIFファイルに差し替えることにしました。


ただ、これがそれなりに面倒でした。オンラインで提供されている.swf → .gif変換ページを使うと、再生速度がおかしくなったりと、元のアニメーションとは異なる動きになってしまいました。いくつかの再生ソフトも試してみたのですが、中々上手く動作するものも見つかりませんでした。


*********

色々と探して見つけた方法をメモします↓

デバッグツールソフトのダウンロード
まずAdobe Flash Player Support Centerより、デバッグツールと呼ばれるソフトをダウンロードします。

Adobe Flash Player Support Center: Flashファイルの変換方法

ソフトを起動すると下記のような画面が表示されるので、再生したいFlashファイルを、ドラッグ&ドロップ。

Flash Player Projectorの使い方:Flash→Gifファイルへの変換方法

すると、下図のように元のFlashコンテンツの速度で再生できます。

Flash Player Projectorの使い方:Flash→Gifファイルへの変換手順



②画面キャプチャソフトのダウンロード

続いて、PC画面でキャプチャした映像をGifファイルで保存してくれるソフト(Gifcam)を使います。下記ページよりダウンロードできます。
Gifcamダウンロード

Gifcamを立ち上げると、

Gifcamを用いて.swfを.gifに変換する操作方法

このような画面が立ち上がりますので、Gifcamのウィンドウサイズや位置を調整して、

Gifcamを用いて.swfを.gifに変換する操作手順

このように、先ほどのFlashの映像を、キャプチャしたい画面内におさめます。
あとは、所望のタイミングで、Rec→Stopボタンを押すと、GIFファイルが出力されます。

*********

ファイルを1つずつ変換する必要があるので、それなりに手間はかかりますが、一番確実な方法でした。もしお困りの方は、一度試してみると良いと思います。