横井?
2017年後期専門ゼミにて配布したraspberry piは「4.SSHの設定」まで終わってます。
ここまでやって、raspberry piにmicroSDをいれると、起動できるようになる。
;接続先ホスト HOSTADDR = '133.55.174.76' ;ユーザ名 USERNAME = 'pi' ;パスワード設定 PASSWORD = 'raspberry' ;接続コマンド作成 COMMAND = HOSTADDR strconcat COMMAND ':22 /ssh /2 /auth=password /user=' strconcat COMMAND USERNAME strconcat COMMAND ' /passwd=' strconcat COMMAND PASSWORD ;接続 connect COMMAND ;================================================ ;ログファイル保存 wait '$' logopen "C:\raspberry\Project1\Debug\command.txt" 0 1 sendln "" wait '$' sendln "cd DHT11_Python" wait '$' sendln "python dht11_example.py" wait '$' logclose ;================================================ ;マクロ終了 end・133.55.174.76は、自分のraspberry piのIPアドレスに変える。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <windows.h>
#define STR_MAX 256
int main(void)
{
FILE *fp;
int str_max = STR_MAX;
char buf[STR_MAX];
int step, kk, n_line;
while (1) {
Sleep(3000);
fp = fopen("command.txt", "r");
if (fp == NULL) {
printf("can't open file\n");
return -1; /*abort();*/
}
n_line = 0;
while (fgets(buf, str_max, fp) != NULL) {
n_line++;
} //行数のカウント
fclose(fp);
fp = fopen("command.txt", "r");
for (kk = 0; kk < n_line - 1; kk++)//上からn_line-1行は読み飛ばす
{
fgets(buf, str_max, fp);
}
fscanf(fp, "%d\n", &step);
//printf("%d\n", step);
fclose(fp);
if (step >= 25) {
}
}
}
・このコードは、raspberry pi内のdht11_example.pyを温度の数字のみを表示するように変更すると使える。#if _DEBUG #pragma comment(lib, "opencv_calib3d2411d.lib") #pragma comment(lib, "opencv_contrib2411d.lib") #pragma comment(lib, "opencv_core2411d.lib") #pragma comment(lib, "opencv_features2d2411d.lib") #pragma comment(lib, "opencv_flann2411d.lib") #pragma comment(lib, "opencv_gpu2411d.lib") #pragma comment(lib, "opencv_highgui2411d.lib") #pragma comment(lib, "opencv_imgproc2411d.lib") #pragma comment(lib, "opencv_legacy2411d.lib") #pragma comment(lib, "opencv_ml2411d.lib") #pragma comment(lib, "opencv_nonfree2411d.lib") #pragma comment(lib, "opencv_objdetect2411d.lib") #pragma comment(lib, "opencv_ocl2411d.lib") #pragma comment(lib, "opencv_photo2411d.lib") #pragma comment(lib, "opencv_stitching2411d.lib") #pragma comment(lib, "opencv_superres2411d.lib") #pragma comment(lib, "opencv_ts2411d.lib") #pragma comment(lib, "opencv_video2411d.lib") #pragma comment(lib, "opencv_videostab2411d.lib") #else #pragma comment(lib, "opencv_calib3d2411.lib") #pragma comment(lib, "opencv_contrib2411.lib") #pragma comment(lib, "opencv_core2411.lib") #pragma comment(lib, "opencv_features2d2411.lib") #pragma comment(lib, "opencv_flann2411.lib") #pragma comment(lib, "opencv_gpu2411.lib") #pragma comment(lib, "opencv_highgui2411.lib") #pragma comment(lib, "opencv_imgproc2411.lib") #pragma comment(lib, "opencv_legacy2411.lib") #pragma comment(lib, "opencv_ml2411.lib") #pragma comment(lib, "opencv_nonfree2411.lib") #pragma comment(lib, "opencv_objdetect2411.lib") #pragma comment(lib, "opencv_ocl2411.lib") #pragma comment(lib, "opencv_photo2411.lib") #pragma comment(lib, "opencv_stitching2411.lib") #pragma comment(lib, "opencv_superres2411.lib") #pragma comment(lib, "opencv_ts2411.lib") #pragma comment(lib, "opencv_video2411.lib") #pragma comment(lib, "opencv_videostab2411.lib") #endif・opencv_lib.hpp作成が終わったら、Windowsの環境変数のpathにOpenCVの動的ライブラリを登録しましょう。
// opencvsample.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include "stdafx.h"
#include <opencv2/opencv.hpp> // インクルードファイル指定
#include <opencv2/opencv_lib.hpp> // 静的リンクライブラリの指定
using namespace cv; // 名前空間の指定
int main(int argh, char* argv[])
{
FILE *fp;
int str_max = 256;
char buf[256];
int step, kk, n_line;
cv::VideoCapture cap(0);//デバイスのオープン
//cap.open(0);//こっちでも良い.
if (!cap.isOpened())//カメラデバイスが正常にオープンしたか確認.
{
//読み込みに失敗したときの処理
return -1;
}
while (1) {
//Sleep(3000);
cv::Mat frame;
cap >> frame; // get a new frame from camera
//
//取得したフレーム画像に対して,クレースケール変換や2値化などの処理を書き込む.
//
cv::imshow("window", frame);//画像を表示.
fp = fopen("command.txt", "r");
if (fp == NULL) {
printf("can't open file\n");
return -1; /*abort();*/
}
n_line = 0;
while (fgets(buf, str_max, fp) != NULL) {
n_line++;
} //行数のカウント
fclose(fp);
fp = fopen("command.txt", "r");
for (kk = 0; kk < n_line - 1; kk++)//上からn_line-1行は読み飛ばす
{
fgets(buf, str_max, fp);
}
fscanf(fp, "%d\n", &step);
//printf("%d\n", step);
fclose(fp);
if (step >= 25) {
//cv::Mat frame;
//cap >> frame; // get a new frame from camera
//
//取得したフレーム画像に対して,クレースケール変換や2値化などの処理を書き込む.
//
//cv::imshow("window", frame);//画像を表示.
cv::imwrite("img.png", frame);
}
int key = cv::waitKey(1);
if (key == 113)//qボタンが押されたとき
{
break;//whileループから抜ける.
}
}
cv::destroyAllWindows();
return 0;
}
・stdafx.hのコード#pragma once #include "targetver.h" #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <tchar.h> #include <windows.h>