아두이노 피지컬컴퓨팅 교구로 활용할 수 있는 실 생할용품 메이킹 프로젝트(워터맨IOT) 열두번째.
스마트폰 Blynk APP으로 원격지에서 토양수분값 확인하고 워터펌프를 가동시키는 기능의 구현
Blynk APP설정 : 다음과 같이 3개의 Widget을 생성하여 토양수분수치의 확인, 워터펌프의 가동시간 확인용 디스플레이 와 워터펌프의 기동용으로 사용한다.
Blynk 기능활용 아두이노 프로그램
- #include <Wire.h>
- #include <ESP8266WiFi.h>
- #include <BlynkSimpleEsp8266.h>
- int pinPower = D5;
- int pinRelay = D7;
- char ssid[30] = "pnit";
- char password [30] = "xxxxxxxxxxxxx";
- char Blynk_auth[50] = "0c5d9xxxxxxxxxxxxxxxxxxxx0acc8d62aa";
- int moist;
- int moistr;
- int go_stop;
- int time_on;
- long time_start = 0;
- void procBlynk() {
- if ( go_stop == 1 ) {
- time_on = ( millis() - time_start ) / 1000;
- Blynk.virtualWrite(V2, time_on);
- digitalWrite(pinPower, HIGH);
- delay(200);
- moistr = analogRead(A0);
- moist = map(moistr,1023,0,0,100) ;
- Blynk.virtualWrite(V3, moist);
- }
- if ( time_on > 20 ) {
- go_stop = 0;
- digitalWrite(pinRelay, LOW);
- digitalWrite(LED_BUILTIN, LOW);
- }
- }
- BLYNK_WRITE(V1) {
- Serial.println("V1 detect ");
- go_stop = param.asInt();
- if ( go_stop == 1 ) {
- digitalWrite(pinRelay, HIGH);
- digitalWrite(LED_BUILTIN, HIGH);
- time_start = millis();
- }
- else{
- digitalWrite(pinPower, LOW);
- digitalWrite(pinRelay, LOW);
- digitalWrite(LED_BUILTIN, LOW);
- }
- }
- void setup() {
- Serial.begin(115200);
- Serial.println("==waterman IOT START==");
- pinMode(pinPower, OUTPUT);
- pinMode(pinRelay, OUTPUT);
- digitalWrite(pinRelay, LOW);
- Blynk.begin(Blynk_auth, ssid, password);
- }
- void loop() {
- Blynk.run();
- procBlynk();
- }
4 line : 토양수분을 측정하기 위해 전원을 공급하기 위한 PIN
5 line : 워터펌프 전원을 제어하기 위한 PIN
7~9 line : 각자의 환경에 맞는 공유기 SSID/Password와 각자 프로젝트별 Blynk Auth Key
17~32 line : 센서값들을 읽고그 값을 Blynk에 전달하기 위한 함수
19~20 line : 펌프가동 시간을 계산하여 Blynk V2 pin 에 전달
21~25 line : 토양수분센서에 전원을 공급하고 값을 계산하여 Blynk V2 pin 에 전달
27~31 line : 펌프가동시간이 20초를 초과하면 자동으로 종료하기
34~47 line : Blynk Virtual PIN V1 에 대한 기능을 구현하는 함수
36 line: 스마트폰 Blynk APP에서 V1 상태 값을 Interger로 전달 받기
37-41 line: 스마트폰 Blynk APP에서 V1 상태. 즉, 버튼이 눌러져 있는지 여부에 따라 워터펌프 전원공급제어핀 활성화
55 line: Blynk Auth Token, 공유기SSID, 공유기암호를 주어 Blynk 시작
'아두이노 피지컬컴퓨팅 키트 > 워터맨IOT' 카테고리의 다른 글
(피지컬컴퓨팅키트) 워터맨 IOT 14. 종합시스템 프로그램 (1) | 2019.01.18 |
---|---|
(피지컬컴퓨팅키트) 워터맨 IOT 13. 설정기능 구현하기 (0) | 2019.01.12 |
(피지컬컴퓨팅키트) 워터맨 IOT 11. Blynk 소개와 설정 (0) | 2019.01.05 |
(피지컬컴퓨팅키트) 워터맨 IOT 10. IFTTT 기능활용 (3) | 2019.01.04 |
(피지컬컴퓨팅키트) 워터맨 IOT 9. IFTTT의 소개와 설정 (1) | 2019.01.04 |