自宅に設置したDIY培養装置内の映像を常時ネット配信させる準備。Raspberry PiとWebカメラを使用
カテゴリー:汎用培養装置InCUBE(記事数:6)

↑B


2020.11.17

自宅に設置したDIY培養装置内の映像を常時ネット配信させる準備。Raspberry PiとWebカメラを使用

自宅でDIY培養実験をするにしても帰宅後に毎日培養の様子を観察なんて時代遅れだと思うんです。培養の様子を常時ネット配信して、ついでにタイムラプス動画も作ってしまうのが今時(いまどき)かと。仕事中に何度も様子を確認しちゃうという状態を目指しています。

Raspberry PiとWebカメラでの配信を実験中。自宅の自室に放置したラディッシュの種。真ん中1つ発芽してきた!失敗した、寒いから全然芽が出ない笑。

ステップ1:Raspberry Piに接続したWebカメラで写真を撮る

#Webカメラのドライバーをインストール
sudo apt-get install fswebcam

#下記で撮影した画像が保存される。簡単♪
fswebcam -r 1280x720 capture.jpg


ステップ2:撮影した画像をWebサーバーに投げるためのrequestsというモジュールをインストール
#まずインストールに必要なpipをインストール
sudo apt-get install python-dev
sudo apt-get install python-pip

#pipでrequestsをインストール
pip install requests


ステップ3:Webカメラで撮影して撮影した画像をWebにPOSTするPythonスクリプト
import requests
import subprocess

subprocess.call(['fswebcam','-r','1280x720','capture.jpg'])

url='http://xxxxx.com/upload.cgi'
file = {'upload_file': open('capture.jpg','rb')}
data = {'temp1': 'dummydata'} #一緒にパラメータを送る時用
r = requests.post(url, files=file, data=data)
print r.text

これをcrontabとかで動かせば自動で指定した時間ごとに撮影されます。Raspberry PiとWebカメラ併せて4000円もあればタイムラプス撮影装置が作成出来ます。

ステップ4:写真とかを受信するサーバー側のPerlスクリプト
#! /usr/bin/perl
use CGI;
my $q = new CGI;
my $fh = $q->param('upload_file');
@FORMname= $q->param();
foreach my $dammy (@FORMname){
$FORM{$dammy}=$q->param($dammy);
}

print "Content-Type:text/html\n\n";
print "OK";

$tt=time; #取得した画像は現在のエポックタイムをファイル名として保存

if ($fh ne "") {
open(F,">".$tt.'.jpg') or die;
flock(F, 2);
binmode F;
if (defined $fh) {while (<$fh>) {print F $_;}}
close F;
}
exit;


サーバー側で取得した連続jpgを合成してタイムラプス動画を合成したいんだけど、必要なmencoderかffmpegを「さくらのレンタルサーバー」にインストール出来ない。うむむむ。。。
これ↓の通りにやっているだけど本体のmakeでたくさんエラーが出る。。。。

Category:汎用培養装置InCUBE



※当サイトで実施している実験において使用している試薬・機器は全て一般の人が購入・入手可能なものです。入手方法は過去に紹介されているはずですが、見つけられない場合はコメント欄等でお問合せください。

コメント

いいっすね!=54
001 [11.17 20:42]りうかver八戸人★1@Au:ラディッシュとかなら発芽温度低めだから水槽のそばに置いとけばニョッキニョッキ生えまくると思う。 (25)

名前
コメント(※改行は省略されます)

※3回以上の連続書き込み不可
この記事のアクセス数: ↑B
[RSS]

→カテゴリー:汎用培養装置InCUBE(記事数:6)