0
1

More than 3 years have passed since last update.

自宅学習_カメラキャプチャ

Last updated at Posted at 2019-12-01

カメラの分(キャプチャのみ)

# 元のコード https://tony-mooori.blogspot.com/2015/10/pythonwebpython.html
# カメラ選択 https://crimnut.hateblo.jp/entry/2018/04/04/123147

# -*- coding: utf-8 -*-
import numpy as np
import cv2
from time import sleep

#引数0でデフォルトのカメラ(デスクトップ)、-1で接続されたカメラ
cap = cv2.VideoCapture(0)

while(True):
    # フレームをキャプチャする
    ret, frame = cap.read()

    # 画面に表示する
    cv2.imshow('frame',frame)

    # キーボード入力待ち
    key = cv2.waitKey(1) & 0xFF

    # qが押された場合は終了する
    if key == ord('q'):
        break
    # sが押された場合は保存する
    if key == ord('s'):
        path = "photo.jpg"
        cv2.imwrite(path,frame)

# キャプチャの後始末と,ウィンドウをすべて消す
cap.release()
cv2.destroyAllWindows()

python読みとり(温度)

# -*- coding: utf-8 -*-
import numpy as np
import serial
import datetime
import re
from time import sleep

def queue(src, a):
    dst = np.roll(src, -1)
    dst[-1] = a
    return dst


def main():
    # 1次元配列の生成
    temps = np.zeros(10)
    ser = serial.Serial('COM3')  # Arduinoが接続されているコムポートを指定

    todaydetail = datetime.datetime.today()

    line = ser.readline()  # 行終端まで読み込む
    temp = line.rstrip()  # 行終端コード削除
    temp_a = str(temp).split(",")
    t = int(re.sub("\\D", "", str(temp_a[0])))/100
    h = int(re.sub("\\D", "", str(temp_a[1])))
    # キュー操作
    print(todaydetail.strftime("%Y/%m/%d %H:%M:%S"),t,h)

    ser.close()
i = 0
while(True):
    i = i+1
    main()
    sleep(1)
    if i == 10:
        break

arduino分(温度)

#include <DHT.h>        //ライブラリ読み込み

#include<Wire.h>
#include<Adafruit_GFX.h>
#include<Adafruit_SSD1306.h>

const int DHTPIN=7;     //7番pinをDHTpinに設定
#define DHTTYPE DHT11   // DHTの種類をDHT 11に設定

DHT dht(DHTPIN, DHTTYPE);//DHT11に関する情報を入力

Adafruit_SSD1306 display(-1);

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  Serial.begin(9600);   //9600bpsでシリアルポートを開く
  dht.begin();           //DHT11による計測開始
}

void loop() {

  float h = dht.readHumidity();     // 湿度を測定
  float t = dht.readTemperature();  // 温度を摂氏で測定


  Serial.print(String(t,1));
  Serial.print(",");
  Serial.println(String(h,0));

 // ディスプレイをクリア
  display.clearDisplay();

  // 出力する文字の大きさ
  display.setTextSize(2);
  // 出力する文字の色
  display.setTextColor(WHITE);
  // 文字の一番端の位置
  display.setCursor(10, 10);

  // 出力する文字列
 // display.println();
  display.print(String(t,1));
  display.print(" / ");
  display.print(String(h,0));

  // ディスプレイへの表示
  display.display();

  delay(2000);

}

ラズパイ(うまくいかない)

import re
from time import sleep

def queue(src, a):
    dst = np.roll(src, -1)
    dst[-1] = a
    return dst


def main():
    # 1次元配列の生成
    temps = np.zeros(10)
    ser = serial.Serial('/dev/ttyUSB0')  # Arduinoが接続されているコムポートを指定

    line = ser.readline()  # 行終端まで読み込む
    temp = line.rstrip()  # 行終端コード削除
    temp_a = str(temp).split(",")
    v = int(re.sub("\\D", "", str(temp_a[0])))


    # キュー操作
    print(v)
    ser.close()
i = 0
while(True):
    i = i+1
    main()
    if i == 100:
        break

URL(OPCV)

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1