2022年12月10日土曜日

rasp-pico micropython :: multicore// raspi python::pigpio,mjpg-streamer,Flask example


MicroPython的午睡(12) ラズパイPico、簡単!マルチコアでLチカを | デバイスビジネス開拓団 (jhalfmoon.com)

----------------------------------------------------------------

https://qiita.com/sireline/items/521e303f4e1fb72bca22

------------------------------------------------------------

https://neos21.net/blog/2020/12/29-02.html1で成功 以下のコマンドで実行

192.168.3.10:8080/?action=streamで全画面ででた 

urs/localではwwwがないのに動いた、不思議やな。。。なかったら無視するのだろう

そのほかに、https://hatakekara.com/raspberry-pi-mjpg-streamer-ffmjpg/で

home/pi/mjpg...../mjpg.....experimentalにて./start.hで

192.168.3.10:8080でストリームを選ぶこともできた ここにはwwwがあった

最新版ではinput_raspicam.soがusr/local以下にしかできん どうもinput_uvc.soに

吸収されてしまったようだ ブルーバックスの例題は実施困難であった

注:https://ponkichi.blog/mjpg-streamer/ は参考程度

$ cd /usr/local/lib/mjpg-streamer
$ mjpg_streamer -o './output_http.so -w ./www -p 8080' -i './input_raspicam.so -x 640 -y 480 -fps 30 -q 10'

--------------------------------------------------------------------------

ラズベリーパイを始めよう 卒業問題 weblamp.py と templates/main.html

-------------------py---------------------------- 

from gpiozero import LED

from flask import Flask,render_template,request

app = Flask(__name__)


pins = {

 24:{'name':'coffee maker', 'state':'False'},

 25:{'name':'lamp', 'state':'False'}

}


led24=LED(24)

led25=LED(25)

led24.off()

led25.off()


@app.route("/")

def main():

  pins[24]['state']=led24.is_lit

  pins[25]['state']=led25.is_lit

  

  templateData = {

    'pins' : pins

    }

  return render_template('main.html', **templateData)

  

@app.route("/<changePin>/<action>")

def action(changePin, action):

  changePin = int(changePin)

  deviceName = pins[changePin]['name']

  if action == "on":

    if changePin == 24:

      led24.on()

      pins[24]['state'] = led24.is_lit

    if changePin == 25:

      led25.on()

      pins[25]['state'] = led25.is_lit

    message = "Turned " + deviceName + " on."  

  if action == "off":

    if changePin == 24:

      led24.off()

      pins[24]['state'] = led24.is_lit

    if changePin == 25:

      led25.off()

      pins[25]['state'] = led25.is_lit

    message = "Turned " + deviceName + " off"


  templateData = {

    'message':message,

    'pins':pins

  }


  return render_template('main.html', **templateData)


if __name__=="__main__":

  app.run(host='0.0.0.0',port=80,debug=True)

----------------html----------------------------------------------------------

<!DOCTYPE html>

<head><tilte>Current Status</title>

</head>

<body>

<h1>device listing and status</h1>

{% for pin in pins %}

<p>the {{ pins[pin].name }}

{% if pins[pin].state == True %}

   is currently on (<a href="/{{pin}}/off"> turn off</a>)

{% else %}

   is currently off (<a href="/{{pin}}/on"> turn on</a>)

{% endif %}

</p>

{% endfor %}


{% if message %}

<h2>{{message}}</h2>

{% endif %}

</body></html>

  

2022年12月9日金曜日

Linux programming

 https://zombie-hunting-club-c.hatenablog.com/entry/2017/11/05/192559#7-%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89 :: simple 

https://suzuzusu.hatenablog.com/entry/2021/02/28/190000 :: 多重受付

https://blanktar.jp/blog/2015/02/linux-c-fork-and-pipe fork/pipe

https://qiita.com/ngyuki/items/62b27f29316d8931102c     prefork server

https://hiroyukichishiro.com/daemon-in-c-language/#forksetsid daemon server

cf https://wireless-network.net/multi-thread-server/ :: pthreads server