///
Search
💹

6주차 Wemos R1 D1 아두이노 보드와 각종센서사용법

초음파 센서

연결방법 (아두이노 → 초음파센서) 3V로 꽂을것!
3V 3V
GND GND
D13/SCK Trig
D12//MISO Echo
보트레이트 속도 : 9600rates
소스코드
int trig = D13; // 변수 trig를 생성하고 2를 대입한다 int echo = D12; // 변수 echo를 생성하고 3을 대입한다 void setup() { Serial.begin(9600); pinMode(trig, OUTPUT); // trig(2)핀을 출력모드로 설정한다 pinMode(echo, INPUT); // echo(3)핀을 입력모드로 설정한다 } void loop() { digitalWrite(trig, HIGH); // trig(2)핀에 HIGH신호를 보낸다 delayMicroseconds(10); // 0.01초 digitalWrite(trig, LOW); // trig(2)핀에 LOW신호를 보낸다 int distance = pulseIn(echo, HIGH) * 17 / 1000; // 변수 distance = echo핀이 다시 HIGH신호를 받기까지의 시간 * 17/1000 Serial.print(distance); // 변수 distance를 출력한다 Serial.println("cm"); // 문자열 cm을 출력하고 줄바꿈 delay(100); // 딜레이 0.1초 }
Arduino
복사
실물 화면

온습도센서 DHT11

센서 이미지
연결방법(아두이노 센서)
5V가운데 핀
GND전원입력쪽(-)
D13/SCK/D5신호출력(S)
보트레이트 속도 : 9600rates
라이브러리 설치방법 2가지로 알려드립니다.
DHT11.zip
2.1KB
라이브러리 매니저를 활용한 설치
소스코드
#include "DHT.h" #define DHTPIN D5 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); Serial.println(F("DHTxx test!")); dht.begin(); } void loop() { delay(2000); float h = dht.readHumidity(); float t = dht.readTemperature(); float f = dht.readTemperature(true); if (isnan(h) || isnan(t) || isnan(f)) { Serial.println(F("Failed to read from DHT sensor!")); return; } float hif = dht.computeHeatIndex(f, h); float hic = dht.computeHeatIndex(t, h, false); Serial.print(F("Humidity: ")); Serial.print(h); Serial.print(F("% Temperature: ")); Serial.print(t); Serial.print(F("°C ")); Serial.print(f); Serial.print(F("°F Heat index: ")); Serial.print(hic); Serial.print(F("°C ")); Serial.print(hif); Serial.println(F("°F")); }
Arduino
복사
실물화면

빗물감지센서

연결방법 (아두이노 센서)
5V +
GND -
D13/SCK/D5S
보트레이트 속도 : 9600rates
소스코드
int analogPin = D5; // 워터센서 D5 연결 선언 int led = D3; // LED D3 포트 연결 선언 //여기에서는 led 연결은 안함 int val = 0; // 전류변화값 변수선언 // 아두이노 자체 led에서도 점멸이 됨 // 물이 닿으면 1023을 리턴함 void setup () { pinMode(led, OUTPUT); // D3 포트를 LED OUTPUT 으로 설정 Serial.begin (9600); // 시리얼모니터 설정 } void loop() { val = analogRead(analogPin); // analogPin 의 변화값(전류값)을 읽음 if (val > 100) // val 값이 100이 넘으면 (전류가 100이 넘으면) { digitalWrite(led, HIGH); // LED ON } else // val 값이 100이하면 (전류가 100이하면) { digitalWrite(led, LOW); // LED OFF } Serial.println(val); // 시리얼모니터에 전류값 표시 delay (500); }
Arduino
복사
실질적인 화면
센서 이름 물어보시는 분들 많아서 아래의 첨부 이미지를 붙여 드립니다.