Baumkuchen’s Workshop

バイオリンと電子工作、DIY、ジョギングなど。

3Dプリンター遠隔モニター装置を作る#2

WEB経由でのGPIO制御のめどが立ったので、3Dプリンターの遠隔モニターを改善します。

baum-kuchen.hatenablog.com

WEB経由のGPIO制御

FastCGIを断念

lighttpで、FCGIでGPIO制御を試みましたが、なんともなりません。エラーログを見て、ネット上に似たような症状がアップされていないが探しましたが、現在の知識では無理ということで、FCGIを断念して、CGIでやることにしました。

lighttpd.confに以下を設定して、一応、CGI対応としたました。

server.modules += { mod_cgi, }
$HTTP["url"] =~ "^/cgi-bin/" { cgi.assign = ( ".py" => "/usr/bin/pythonCGI" ) }

GPIOを断念

これで、動くはずでしたが、urlにpythonスクリプトを指定して動かしてみると、

500 Internal Server Error

との表示が出てしまいます。一番シンプルなスクリプトではちゃんと動きました。

#!/usr/bin/python3
import sys, os,time

query_string=os.environ.get("QUERY_STRING")

import RPi.GPIO as GPIO
import urllib.parse

if not query_string:
    print('Empty query')
else:
    i = urllib.parse.parse_qs(query_string)
    if "q" in i:
         if i["q"][0] == "w":
             print('Turn on')
         elif i["q"][0] == "s":
             print('Turn off')

で、元のスクリプトを1行づつコメントアウトして行って、判明した原因が、GPIOを出力に設定するところでした。

GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
#GPIO.setup(13,GPIO.OUT)  <<これのコメント外すとエラー発生
#GPIO.output(13,True)  #for test   
#time.sleep(1)
#GPIO.output(13,False)

不可解です。コンソールから起動すると正常に作動するのに、Web経由だと動きません。謎です。

最終的に、pythonモジュールのpigpioを使って、ようやく動くようになりました。

3Dプリンタ電源制御

システムブロック図

システム構成です。プッシュスイッチを押して

、全体の電源オン。緊急時にはweb経由で電源オフが出来き、再度スイッチを押すまでオフのまま

f:id:Baum_kuchen:20211227005358p:plain

以下、詳細作動。

電源オン時:①プッシュスイッチオンで、②5VDCが出力。リレー③を経由して、AC100V用リレー④を作動(保持)させる。同時に、3Dプリンタへ100Vを供給。

電源オフ時:ラズパイから信号出力①し、リレー②を作動(接点がオープン)。AC100vリレーがオフ③し、5VDC出力が停止④。同時に、3Dプリンタへの100Vが停止⑤。

外観構想

コンセントボックスとラズパイをくっ付けた、制御装置を構想。例により、ケースは3Dプリンタで製作予定。ラズパイは、透明ケースのままネジ止めして、ケースの横に長四角の穴を開け、GPIOの信号線を出します。

f:id:Baum_kuchen:20211226170429j:plain

使用部品

製作開始

ケース

3Dプリンタで造形したところ。

f:id:Baum_kuchen:20211226215601j:plain

AC100Vコンセントとスイッチを仮付け。ナットをケース側に埋め込ませ、瞬間接着剤で固定してあります。

f:id:Baum_kuchen:20211226215645j:plainf:id:Baum_kuchen:20211226215623j:plain

カバーを付けたところ。

f:id:Baum_kuchen:20211226221859j:plain

ラズパイは、こんな感じで乗ります。ラズパイから出るのはUSBカメラのみ。

f:id:Baum_kuchen:20211226221921j:plain

ところが上手く行きません。コンセントにプラグを刺して、抜いたら、コンセントごと外れてしまいました。ナットの接着が甘くて、取れてしまったみたい。接着剤では強度が出ないかもしれません。その場は、ケースに直接ネジ止めするしか無さそうです。

f:id:Baum_kuchen:20211226221943j:plain

今後

今日は、ここまでで、タイムアウト。続きは、年末年始の休み中にやります。

ps:ラズパイの動きが、少し不安定なのが気がかりです。