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:#ワンルームで自給自足は可能か
※当サイトで実施している実験において使用している試薬・機器は全て一般の人が購入・入手可能なものです。入手方法は過去に紹介されているはずですが、見つけられない場合はコメント欄等でお問合せください。
コメント
いいっすね!=54
001 [11.17 20:42]りうかver八戸人★1@Au:ラディッシュとかなら発芽温度低めだから水槽のそばに置いとけばニョッキニョッキ生えまくると思う。 ↑(25)
→カテゴリー:#ワンルームで自給自足は可能か(記事数:12)