③ ESP8266으로 인감 센서 정보 취득
소개
이 기사는 전자 공작의 기초부터 ESP8266이라는 Wifi 기능을 가진 Arduino 호환 단말기를 사용하여 취득한 정보를 M2X라는 센서 정보를 받아 그래프 표시 해주는 클라우드 서비스에 센서 정보를 올리는 곳까지 커버한 기사입니다.
모두 4개의 기사로 구성되어 있습니다.
①부터 차례로 봐 주세요.
① 간단한 회로를 만들어 전자공작의 기본을 습득한다
ぃ tp // 코 m / 우동 ws222 / p 리즈 / 6f11904f30 ~ f540dc37
②ESP8266(Arduino)에 간단한 프로그램을 업한다
ぃ tp // 코 m / undo ws222 / p ri / / 60d086 a 5909d2bf39
③ ESP8266으로 인감 센서 정보를 취득한다 (←본 기사)
h tp : // 쿠이타. 코 m / 우동 ws222 / p 리오 / 6b 00f795c8cb30c
④ ESP8266에서 취득한 센서 정보를 M2x에 업로드
ぃ tp // 코 m / 우동 ws222 / p 리즈 / 9d77 c3 0094b78 a 4db
기사 개요
여기에서는, ESP8266을 사용해 인감 센서의 정보를 취득해, 센서가 사람을 검지했을 때에 LED를 점등시켜 봅니다.
프로그램 및 회로 작성
회로 만들기
브레드 보드에 다음 회로를 만듭니다.
프로그램 만들기
다음 프로그램을 작성하여 보드에 씁니다.
PIR_to_M2X.ino/**
* 人感センサの情報を取得し、人を検知したらLEDを一秒点灯させる。
*/
#include <Arduino.h>
#include <stdio.h>
#include <string.h>
#include <ESP8266WiFi.h>
//人感センサを示す番号
#define PIR_MOTION_SENSOR 4
//緑のLEDを示す番号(15番ピンに接続)
#define GREEN_LED 15
int loopCount = 0; //現在のループ数
int detectedCount = 0; //人感センサの検知回数
/**
* 人感センサの情報をチェックし、現在の検知状態を調べる。
*/
boolean isPeopleDetected(){
int sensorValue = digitalRead(PIR_MOTION_SENSOR);
if (sensorValue == HIGH){ //検知状態
return true; //yes,return ture
}
else if(sensorValue == LOW){ //未検知状態
return false; //no,return false
}
}
/*
* 人感センサをチェックし、結果をコンソールに出力
*/
void sensePIR() {
loopCount++;
int returnValue = 0;
//センサの状態を調べて、周りに人がいるかをチェック
if (isPeopleDetected()==true) { //人がいたら
digitalWrite(GREEN_LED, HIGH); //人感センサ検知したらLED点灯
detectedCount++;
Serial.printf("PIR1:find someone! loopCount=%d detectedCount=%d\n",loopCount,detectedCount);
}
else { //人がいなかったら
digitalWrite(GREEN_LED, LOW); //人感センサ検知なければLED消灯
Serial.printf("PIR1:no one can find..loopCount=%d \n", loopCount);
}
}
/**
* 準備開始(最初に呼ばれる関数)
*/
void setup(){
Serial.begin(115200);//シリアルポートを通信速度115200で開始
Serial.println("start setup");
pinMode(PIR_MOTION_SENSOR, INPUT); //ピンを入力状態にセット
pinMode(GREEN_LED, OUTPUT); //ピンを出力状態にセット
Serial.println("end of setup");
}
/**
* セットアップの後に連続して呼ばれる
*/
void loop(){
sensePIR();//人感センサの状態チェック
delay(1000);//一秒待機
}
동작 확인
인감 센서에 손을 대었을 때, LED가 점등하면 성공입니다.
다음 기사: ④ ESP8266에서 취득한 센서 정보를 M2x에 업로드
ぃ tp // 코 m / 우동 ws222 / p 리즈 / 9d77 c3 0094b78 a 4db
Reference
이 문제에 관하여(③ ESP8266으로 인감 센서 정보 취득), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/windows222/items/e6bcea0bef795c8cb30c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
여기에서는, ESP8266을 사용해 인감 센서의 정보를 취득해, 센서가 사람을 검지했을 때에 LED를 점등시켜 봅니다.
프로그램 및 회로 작성
회로 만들기
브레드 보드에 다음 회로를 만듭니다.
프로그램 만들기
다음 프로그램을 작성하여 보드에 씁니다.
PIR_to_M2X.ino/**
* 人感センサの情報を取得し、人を検知したらLEDを一秒点灯させる。
*/
#include <Arduino.h>
#include <stdio.h>
#include <string.h>
#include <ESP8266WiFi.h>
//人感センサを示す番号
#define PIR_MOTION_SENSOR 4
//緑のLEDを示す番号(15番ピンに接続)
#define GREEN_LED 15
int loopCount = 0; //現在のループ数
int detectedCount = 0; //人感センサの検知回数
/**
* 人感センサの情報をチェックし、現在の検知状態を調べる。
*/
boolean isPeopleDetected(){
int sensorValue = digitalRead(PIR_MOTION_SENSOR);
if (sensorValue == HIGH){ //検知状態
return true; //yes,return ture
}
else if(sensorValue == LOW){ //未検知状態
return false; //no,return false
}
}
/*
* 人感センサをチェックし、結果をコンソールに出力
*/
void sensePIR() {
loopCount++;
int returnValue = 0;
//センサの状態を調べて、周りに人がいるかをチェック
if (isPeopleDetected()==true) { //人がいたら
digitalWrite(GREEN_LED, HIGH); //人感センサ検知したらLED点灯
detectedCount++;
Serial.printf("PIR1:find someone! loopCount=%d detectedCount=%d\n",loopCount,detectedCount);
}
else { //人がいなかったら
digitalWrite(GREEN_LED, LOW); //人感センサ検知なければLED消灯
Serial.printf("PIR1:no one can find..loopCount=%d \n", loopCount);
}
}
/**
* 準備開始(最初に呼ばれる関数)
*/
void setup(){
Serial.begin(115200);//シリアルポートを通信速度115200で開始
Serial.println("start setup");
pinMode(PIR_MOTION_SENSOR, INPUT); //ピンを入力状態にセット
pinMode(GREEN_LED, OUTPUT); //ピンを出力状態にセット
Serial.println("end of setup");
}
/**
* セットアップの後に連続して呼ばれる
*/
void loop(){
sensePIR();//人感センサの状態チェック
delay(1000);//一秒待機
}
동작 확인
인감 센서에 손을 대었을 때, LED가 점등하면 성공입니다.
다음 기사: ④ ESP8266에서 취득한 센서 정보를 M2x에 업로드
ぃ tp // 코 m / 우동 ws222 / p 리즈 / 9d77 c3 0094b78 a 4db
Reference
이 문제에 관하여(③ ESP8266으로 인감 센서 정보 취득), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/windows222/items/e6bcea0bef795c8cb30c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
/**
* 人感センサの情報を取得し、人を検知したらLEDを一秒点灯させる。
*/
#include <Arduino.h>
#include <stdio.h>
#include <string.h>
#include <ESP8266WiFi.h>
//人感センサを示す番号
#define PIR_MOTION_SENSOR 4
//緑のLEDを示す番号(15番ピンに接続)
#define GREEN_LED 15
int loopCount = 0; //現在のループ数
int detectedCount = 0; //人感センサの検知回数
/**
* 人感センサの情報をチェックし、現在の検知状態を調べる。
*/
boolean isPeopleDetected(){
int sensorValue = digitalRead(PIR_MOTION_SENSOR);
if (sensorValue == HIGH){ //検知状態
return true; //yes,return ture
}
else if(sensorValue == LOW){ //未検知状態
return false; //no,return false
}
}
/*
* 人感センサをチェックし、結果をコンソールに出力
*/
void sensePIR() {
loopCount++;
int returnValue = 0;
//センサの状態を調べて、周りに人がいるかをチェック
if (isPeopleDetected()==true) { //人がいたら
digitalWrite(GREEN_LED, HIGH); //人感センサ検知したらLED点灯
detectedCount++;
Serial.printf("PIR1:find someone! loopCount=%d detectedCount=%d\n",loopCount,detectedCount);
}
else { //人がいなかったら
digitalWrite(GREEN_LED, LOW); //人感センサ検知なければLED消灯
Serial.printf("PIR1:no one can find..loopCount=%d \n", loopCount);
}
}
/**
* 準備開始(最初に呼ばれる関数)
*/
void setup(){
Serial.begin(115200);//シリアルポートを通信速度115200で開始
Serial.println("start setup");
pinMode(PIR_MOTION_SENSOR, INPUT); //ピンを入力状態にセット
pinMode(GREEN_LED, OUTPUT); //ピンを出力状態にセット
Serial.println("end of setup");
}
/**
* セットアップの後に連続して呼ばれる
*/
void loop(){
sensePIR();//人感センサの状態チェック
delay(1000);//一秒待機
}
Reference
이 문제에 관하여(③ ESP8266으로 인감 센서 정보 취득), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/windows222/items/e6bcea0bef795c8cb30c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)