[RaspberryPi 4] cronでカメラモジュールの画像をS3にアップロード

1. shellでカメラモジュールを実行する。
app.sh

#!/bin/bash
raspistill -w 800 -h 600 -o /home/pi/image.jpg

$ chmod +x app.sh
// テスト
$ sudo sh ./app.sh

2. raspi4のcronを有効にする
$ sudo vim /etc/rsyslog.conf
-> コメントアウト

cron.*                          /var/log/cron.log

$ sudo /etc/init.d/rsyslog restart
$ sudo /etc/init.d/cron status

3. カメラモジュールを起動するシェルを実行するcronを書く
テストの為、1分おきの実行にする。
$ crontab -e

*/1 * * * * sudo sh /home/pi/app.sh

$ /etc/init.d/cron restart
$ sudo journalctl -f -u cron
// 写真がとれてることを確認

4. raspi4にboto3をインストール
$ python3 -V
$ pip3 -V
$ pip3 install boto3

5. S3にアップロードするpythonスクリプトを書く
// 省略

6. S3にアップロードするcronを追加してテスト
$ which python3

*/1 * * * *  /usr/bin/python3 /home/pi/upload.py

$ /etc/init.d/cron restart
$ sudo journalctl -f -u cron

7. S3のバケットでraspi4で撮った写真がアップロードされているか確認

OK。数日かかると思ってたけど意外と早くできた。
ドキュメント修正して、次はDjangoにtesseract4->cv2の実装やな

[RaspberryPi 4] カメラモジュールの起動手順

RaspberryPi 3 model B+ を持っていましたが、カメラモジュールを差し込んだ途端、電源はつくがHDMIでモニターにシグナルが送れなくなってしまったので、RaspberryPi 4を買い直すことにした。

1) 秋葉原の秋月電子通商で「RaspberryPi 4」と「ラズパイ4用の電源アダプター」を購入
2) ラズパイnoobsからsdカード(32GB)にdownload
https://www.raspberrypi.org/downloads/noobs/
3) sdカードをRaspberryPi 4に差し込んで、Rasbianをインストール
4) 「設定」->「Raspberry Piの設定」->「インターフェイス」->「カメラ」->「有効」
5) コマンドライン
$ vcgencmd get_camera
supported=1 detected=1

$ sudo raspistill -o image.jpg
/home/pi/image.jpg

来た!
RaspberryPi3のNo Signalの原因が不明で、もしからたモニターに原因があるのでは?と思って、実はモニター(6000円位)も買い直してしまったorz… モニターは必要なかった。。。。
何れにしても、カメラモジュールはクリア!
さー次はcron x python作るぞー

[Raspberry Pi]webブラウザからLEDを点灯

SourceForge.netというサイトに行きます。
https://sourceforge.net/projects/webiopi/files/

WebIOPi-0.7.1.tar.gzをダウンロードします。

# tar xvzf WebIOPi-0.7.1.tar.gz
# cd WebIOPi-0.7.1
# sudo ./setup.sh
# sudo /etc/init.d/webiopi start
[ ok ] Starting webiopi (via systemctl): webiopi.service.
# ip a
http://192.168.100.108:8000/

ユーザ名 webiopi パスワード raspberry

192.168.100.108 により途中で接続が切断されました。
ERR_CONTENT_LENGTH_MISMATCH

ん? 何故だ?

[Raspberry Pi]web cameraを使ってみる

ztc00 超小型ビデオカメラをUSBに接続します。

# lsusb
Bus 001 Device 004: ID 1bcf:0005 Sunplus Innovation Technology Inc. Optical Mouse
Bus 001 Device 027: ID 05e1:0b01 Syntek Semiconductor Co., Ltd
Bus 001 Device 005: ID 413c:2107 Dell Computer Corp.
Bus 001 Device 006: ID 0424:7800 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

# sudo apt-get -y install fswebcam subversion libjpeg8-dev imagemagick
# svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer
# cd mjpg-streamer; make

# sudo fswebcam sample.jpg
— Opening /dev/video0…
stat: No such file or directory

dav

あれ、認識してない、何でだろう??
ただ、ラズパイでビデオ、カメラ接続が容易にできることがわかった。
シェルで条件に合致したときにfswebcam sample.jpgを打ち込めばいいわけだ。
ほぼイメージができてきた。

[Raspberry Pi]LEDを点滅2

#!/bin/sh
gpio_number=25
echo "${gpio_number}" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio${gpio_number}/direction

echo "1" > /sys/class/gpio/gpio${gpio_number}/value
sleep 5
echo "0" > /sys/class/gpio/gpio${gpio_number}/value
echo "${gpio_number}" /sys/class/gpio/unexport

root@raspberrypi:/home/pi# sudo sh led.sh
25 /sys/class/gpio/unexport

期待通りに動きます。

[Raspberry Pi]LEDを点滅

ターミナル
pi@raspberrypi:~ $ sudo -s
root@raspberrypi:/home/pi# echo “14” > /sys/class/gpio/export
root@raspberrypi:/home/pi# echo “out” > /sys/class/gpio/gpio14/direction
root@raspberrypi:/home/pi# echo “1” > /sys/class/gpio/gpio14/value
root@raspberrypi:/home/pi# echo “0” > /sys/class/gpio/gpio14/value

dav

続いて、shを使ってLチカ

#!/bin/sh
echo "14" > /sys/class/gpio/export
echo "14" > /sys/class/gpio/export

while true
do
	echo "1" > /sys/class/gpio/gpio14/value
	sleep 0.5
	echo "0" > /sys/class/gpio/gpio14/value
	sleep 0.5
done

root@raspberrypi:/home/pi# chmod +x led.sh
root@raspberrypi:/home/pi# sudo ./led.sh

なるほど、ラズパイはgpioを/sys/class/gpio/*で操作するのか
Lチカの環境構築はarduinoよりもハードル高いように感じるけど、コマンドラインで操作できると何故か安心感あるな

Raspberry PiのOS機能

Raspberry PiはLXDEというデスクトップ環境を使っている。
CPU使用率がメニューバーに表示され、常時確認できる。
ブラウザは軽量なEpiphanyがインストールされている。リソース消費が低い。
Epiphanyの検索エンジンはDuckDuckGoがデフォルト
私はYoutuberでもあるので試しにYouTubeを開いてみたが、ラズパイだと流石にレンダリングが遅い。
画面キャプチャはScrotを使用する

外部ドライブ接続で簡単にファイル共有も可能
テキストエディはLeafpad
アクセサリに電卓などのアプリが入っている
パッケージインストールはapt-getを使う。ubuntuと一緒か。

$ dpkg -l | grep eject
ii lxplug-ejecter 0.3 armhf Ejecter plugin for lxpanel
$ apt-cache -n search eject
eject – ejects CDs and operates CD-Changers under Linux
node-loud-rejection – make unhandled promise rejections fail loudly
lxplug-ejecter – Ejecter plugin for lxpanel
lxplug-ejecter-dbgsym – Debug symbols for lxplug-ejecter

対応アーキテクチャにarmhf(ARM)が含まれていないと、Raspbianではインストールできない。

さて、一通りカバーしたので、電子工作入門に入りたい。
ラズパイの前にArduinoを触っておくか。
しかし、ラズパイ、準備が大変な割には、始めて見ると非常にあっけない。

Raspberry Piでヤフーを表示する

wifi接続を設定後、キーボードを日本語設定

model B+ だと、wifi接続できるから、wireless usb adapter は全く必要なかった。
私は使わなければすぐ断捨離する人間なのですが、usb adapter 、一度も使わずに捨てるのはさすがにもったいないか。

ちなみに、こちらがヤフーに接続した状態です。

sdr

コマンドラインはLinux なので、操作は特に違和感はありません。
ちなみにこの投稿もラズパイから書いています。
ただ、使っているディスプレイが小さいので、非常にやりづらい

とりあえず、最初は教科書に沿って勉強していきます。

Raspberry Piの基盤とOSインストール

SoC(System-on-a-Chip)と呼ばれるLSIはCPU、GPU、メモリを含む

Raspberry Pi 3 model BのCPUはARM社
– Broadcom BCM2837
– 1.2GHz 64-bit quad-core ARMv8 Cortex-A53
– メモリ1GB LPDDR2 SDRAM

DSI(Display Serial Interface)を備えたディスプレイは、タッチ操作が可能

取り敢えず、macからmicrobで電源供給して、OSインストールまでは出来た^^
ヒャッホー

sdr

USBキーボードがないとInputが出来ないので、キーボード待ちだけど、IoTコミュニティーに入る第一歩は踏み出せたかな。
がはははは