DreamerDreamのブログ

夢想家の夢です。〜揚げたてのモヤっとしたものをラフレシアと共に〜

プログラミング

指紋センサー「DY50」のLEDを消したり点けたりする方法 備忘録

前回、指紋認証モジュールを動かしましたがデフォルトの状態ではpython2で動いていました。 dreamerdream.hateblo.jp LED制御の前に、実装時にはpython3で動かしたいのでなんとかならないかと力技ですがパッケージをまるっとコピーしてみました。 中身がシリ…

Djangoの使い方⑮モデルを使わずに、動的にファイルをアップロード、ダウンロードする

Djangoではファイルのアップロード&ダウンロード機能が備わっていますが基本的には静的なものです。 たとえばユーザーによって保管場所を変えたりディレクトリを作成したり、アクセスされるタイミングによってダウンロードファイルを変えたりと動的にファイ…

ムームーメールがpythonから送信できなくなった? ポートの仕様変更があったようです。

昨日、いつものようにWebサーバーからメールを送信しようとしたところ、プログラムがエラーを吐いて送信できませんでした。 調べてみるとムームーメールのメンテナンス情報に muumuu-domain.com この一文が!! メールシステムの設定から送信メール(SMTP)…

pigpiodがsystemdサービスで自動起動しない /etc/rc.localに登録して自動起動させる

サーボモーターを使う為に、少し精度の高いPWM波を出力すべく「pigpio」というライブラリを用いたプログラムを書いているのですが、プログラムを実行する前に sudo pigpiod と一度だけターミナルでコマンドを叩いてやる必要があるらしく、常駐させるべくsyst…

python3のsocket通信で外部からアクセスさせるためには「オールゼロ」”s.bind(( '0.0.0.0' , [ポート番号] )) ”を使う 備忘録

python3で低水準なsocket通信をしようと試みてハマッたことの備忘録です。 「python3 socket」等で検索をかけると簡単なsocket通信のサンプルコードが出て来ます。 <参考> 【Python3】Pythonでソケット通信を試してみた | DevelopersIO ※コードは上記ブログ…

python3でopenCVを使って2台のカメラ画像をゲットするために ラズパイでUSBカメラを2台認識しない問題を物理的に解決してみた

以前にapt-getを使ってopenCVをインストールしていましたが、これでインストールされるのはpython2系だそうです。 dreamerdream.hateblo.jp python2系のインストールコマンド sudo apt-get install python-opencv python3でカメラを使うにはpip3を使うそうで…

VPS上で画像から人の骨格を推定するOpenPoseが実行出来るのか実験してみた tf-pose-estimationならとりあえず動く

映像や画像から機械学習を用いて骨格を検出するプロジェクトの一つ「OpenPose」を用いた映像がこちらです↓ Realtime Multi-Person 2D Human Pose Estimation using Part Affinity Fields, CVPR 2017 Oral めちゃめちゃスゴイ精度ですね。 この技術を用いると…

においセンサーをArduinoで使ってみた 自作オゾン発生器によるマスクの消臭効果を試したい

以前、オゾン発生器を作りました。 dreamerdream.hateblo.jp これを用いて実際にマスクの脱臭実験をしてみたのですが、これがなかなか良い感じです。 体感的には「無臭」になります。 次亜塩素酸水で実験したときは塩素の臭いで元の臭いが取れてるのか取れて…

備忘録:OpenCVでUSBカメラの画像を取得してTkinterで表示させてGUI起動時にアプリを自動起動させるためのメモ

※カメラ画像を使った組み込みシステムを作るのに迷ったので自分用の備忘録として残します。 環境:OSは新規Raspbianをインストールして、piユーザーで立ち上がり時にデスクトップ自動ログイン出来る状態であること。(2019/11/19の時点で最新のRaspbian) 組み…

RaspberryPiと炊飯器で低温調理器を自作してみた⑭-最終回 猪肉を低温調理してみた(リベンジ)

前回の実戦では、作った勢いのまま低温調理をして失敗してしまいました。 dreamerdream.hateblo.jp しかし失敗は成功の元といいます。 今回はのハード、ソフト共に改良したバージョンでトライです。 前回は鹿肉でしたが、今回は同じくジビエの代表格である猪…

RaspberryPiと炊飯器で低温調理器を自作してみた⑬ ソフトウェア改造

前回はダイレクトに水温を取得するべく温度計の設置方法を工夫してみました。 dreamerdream.hateblo.jp 今回はソフトウェアの改造です。 今まで温度に反比例するようにヒーターを制御していました。 結果として65℃設定で最高70℃をマークしていました。 今回…

RaspberryPiと炊飯器で低温調理器を自作してみた⑫ 機器改造

前回、実際に調理をしてみましたが結果は散々でした。 dreamerdream.hateblo.jp やはり、センサーの位置が悪そうです。 一応アルミテープやグラスウールで覆ってはいましたが、釜の底の一部の温度では正確な実際の水温は読めないですね。 正規の温度センサー…

RaspberryPiと炊飯器で低温調理器を自作してみた⑪ 鹿肉を低温調理してみた(失敗)

前回、うまく温度制御が出来ました。 dreamerdream.hateblo.jp ですので早速実戦してみます。 ※注意 鹿肉や猪肉などのジビエは元々野生栄物なので養殖と違って抗生物質や予防薬などの薬剤を投与されていません。ですので体内に寄生虫がいないとも限りません…

RaspberryPiと炊飯器で低温調理器を自作してみた⑩ 動作テスト

ひとまず完成しましたので動作実験を行ないます。 <使用プログラム一覧> dreamerdream.hateblo.jp まず、60℃で10分保温テストです。 過熱中、ディスプレイは43℃を示しています。 赤外線温度計は約43℃!カンペキです! 次に60℃のとき 赤外線温度…

RaspberryPiと炊飯器で低温調理器を自作してみた⑨ 「ヒーター制御デーモン」

現在の温度を取得、設定温度と比較してヒーターの制御を行なう、実際に調理を行なうするための主要プログラムです。 <heaterd.py> #!/usr/bin/python2 import RPi.GPIO as GPIOimport timeimport sysimport atexitimport file_mng as fileimport datetime heater = 17 se</heaterd.py>…

RaspberryPiと炊飯器で低温調理器を自作してみた⑧ 「タイマーデーモン」

設定温度に達したらタイマーをスタート、カウントアップさせてディスプレイに表示させる。 タイマーが設定時間を超えたらスタートファイルを削除する。 スタートファイルが削除されるので、ヒーターデーモンはヒーターの過熱を停止する。 <timerd.py> #!/usr/bin/python</timerd.py>…

RaspberryPiと炊飯器で低温調理器を自作してみた⑦ 「温度、タイマー設定デーモン」

設定ボタンによって温度とタイマーの設定を行なうデーモン 物理ボタン操作で温度とタイマーの設定を変更するためのデーモン。 少しチャタリング対策に難があり、あまりスムーズに動かないorz。まあ、とりあえず動く。 このプログラムが無くても直書きでシス…

RaspberryPiと炊飯器で低温調理器を自作してみた⑥ 「スタート/ストップデーモン」

スタートボタンが押されたら/dev/shm/領域にスタートファイルを生成、ファイルが存在している場合はスタートファイルを削除するデーモン スタートファイルに日時を保存する。 このスタートファイルが存在することを確認したら、ヒーター制御デーモンが指定温…

RaspberryPiと炊飯器で低温調理器を自作してみた⑤ 「温度取得デーモン」

単純に、センサモジュールから取得出来る値から℃を抽出して共用ファイルに保存するだけのデーモン。 本来、必用なプログラムが各々センサ値を読めば良いのですが、読み出しに時間が少しかかるため、温度取得専用のプログラムから共用ファイルに書き出しおく…

RaspberryPiと炊飯器で低温調理器を自作してみた④ 「画面表示デーモン」

ディスプレイの表示用プログラムです。 画面は今回たまたま手元にあった2色のカラーOLEDディスプレイをを利用しただけで、表示内容をファイルを読んで変えられるようにしただけで表示方法はほぼ以前に書いた記事のまま特に手を加えていません。↓ dreamerdre…

RaspberryPiと炊飯器で低温調理器を自作してみた③ 「ファイル統括モジュール」

前回、各種ファイルの説明をしました。 今回はプログラムの中身です。 <file_mng.py> これは全てのプログラムから共用するファイルデータを扱います。 (※get、loadが混在している等、突っ込みは無しでお願いします) # -*- coding: utf-8 -*- import os dir_shm = '/dev/sh</file_mng.py>…

RaspberryPiと炊飯器で低温調理器を自作してみた② プログラムの内部構造 ソフトをデーモンとして分割処理させる

前回、ざっくりした回路を組みましたのでハードは完成です。 dreamerdream.hateblo.jp 今回はこの回路を制御する為のラズパイ側のプログラムを機能別に分割していきます。 分割処理させるメリットとして 後で機能を追加したりしやすくなる。 温度の取得とか…

RaspberryPiと炊飯器で低温調理器を自作してみた① 制御基盤作成

いきなりですが、低温調理器って憧れますよね? アイリスオーヤマ 低温調理器 真空調理器 スロークッカー IPX7防水 低温調理器具 防水機能搭載 LTC-01 アイリスオーヤマ(IRIS OHYAMA) Amazon これがあるとローストビーフにチャーシューにぃ、いろいろなこと…

Djangoのログイン画面「Django管理サイト」を変える備忘録

Djangoでいくつかサイトを作ってみたものの、いつもログイン画面の 「Django管理サイト」 が消えないことに悩んでる気がします。 「いい加減覚えろっ」てことなんだけど、実に面倒なので自分のためにも後の人のためにも備忘録として残しておくことにします。…

ウォッチドッグって何?

前回、防犯カメラの修理で「ウォッチドッグ」という機能によりレコーダーが再起動をしていると推測しました。 dreamerdream.hateblo.jp 今回はこのウォッチドッグについて簡単にご紹介します。 watchdog = 番犬 です。 電子工作、特にマイコンを使った工作の…

画面の無いVPSサーバーでSeleniumを使ってChromeブラウザを操作してみる

通常、ブラウザの操作は画面が無いと出来ません。 しかし、Seleniumを利用した自動操作はページ内要素を見ているので画面を必用としません。そういった画面の無いブラウザのことをヘッドレスブラウザと呼ぶのだそうです。 前回はラズパイでこのヘッドレスブ…

プログラムで画面が表示されないブラウザを操作する(ヘッドレスブラウザ)

プログラムでブラウザを操作して自動で情報の収集やテストなどをする方法に Selenium WebDriver を使う方法があります。 <参考> Selenium WebDriver入門 - Qiita 僕はこれまでPC上のJavaでSeleniumを使っていろいろ自動化ソフトを作っていたのですが、PCの…

ステッピングモーターってこんなにスゴイ! 使用例いろいろ

ステッピングモーターの制御方法については以前の記事を参考にしてください。 dreamerdream.hateblo.jp 今回はステッピングモーターってスゴイんだよ。というサンプル動画をご紹介します。 まず始めにコチラの動画 円盤に開いた穴に正確にピンを刺しています…

1つづつ光らせることができるLEDテープ「ネオピクセルLED」ってご存知でしょうか?

「LEDテープ」といえば車のデコレーションに使ったり、TVの有吉ゼミでヒロミがDIYで間接照明として多用しているオシャレに光るテープですね。 ↓ヒロミが御用達のLEDテープ業者さん TVで紹介されました!再入荷!LEDテープライト 5m LEDテープRGB 8000円以上…

可変抵抗でサーボモーターを動かすということは

ロボットの操作に「遠隔操作」 というものがあります。 人間が離れた場所から信号を送ってロボットに伝えるアレですね。 そうです、身近なところではラジコンがあります。 仕組みは、 人がボリューム(可変抵抗)やスイッチで操作した信号を機械が読み取って…

kampa.me