4월, 2022의 게시물 표시

Step6 스마트 화분 완성 결과

W5100S-EVB-PICO를 이용하여 먼 거리에서도 화분 상태를 확인하고, 자동으로 물을 줄 수 있는 간단한 스마트 화분을 완성하였다 완성한 스마트 화분은 특정 식물의 적정 온도 환경을 입력하여, LED로 현재 화분의 온도를 확인할 수 있으며(RED: BAD, GREEN: NOT BAD, BLUE: GOOD) 먼 거리에서도 스마트폰이나 PC에서 화분의 상태(온도, 습도, 조도, 토양 습도)를 확인할 수 있다 또한, 설정한 토양 습도에 따라 자동으로 물을 주기도 한다 아래는 작동 영상이다

Step5 클라우드 연결(Ethernet)

이미지
Step5 클라우드 연결(Ethernet) W5100S-EVB-PICO를 이용하여 측정한 다양한 데이터를 원거리에서 볼 수 있기 위해 클라우드 서버와 연결하였다  다양한 IoT 클라우드 서버 중 Ubidots 라는 클라우드를 선택하였다 해당 클라우드의 경우 간편한 UI/UX를 제공하였으며, 30일간 무료로 사용 가능하였다 다만, 메뉴얼이 모두 영어였기 때문에 구글 번역기를 꽤 많이 사용했다. 개발환경 Arduino IDE LAN Cable 유효한 MAC Address 1. Ubidots 연결하기 1-1. 계정 생성하기  ubidots.com 에 접속하여 "SIGN UP" 버튼을 눌러 계정을 생성한다 1-2. Device 생성하기 상단 메뉴 Devices - Devices - Add New Device(+) 를 누르고 Devices를 생성한다 생성시, "Blank Device" 로 생성 ps. 나중에 TEST 한 결과, W5100S-EVB-PICO에서 데이터 송신 시 자동으로 생성되므로, 1-2 번은 진행하지 않아도 된다 1-3. Token 확인 및 Ubidots 에 데이터 전송하기 Ubidots 사이트 내 프로필에서 내 Token을 확인 후 저장해야한다 "industrial.api.ubidots.com" 에 접속하거나 "169. 55. 61. 243" 에 접속 후 아래 포맷으로 데이터를 전송하면 된다 1-4. Ubidots 에 데이터 전송 코드 아두이노 Ethernet 예제 Web Client를 이용하여 Ubidots 서버에 접속 후 데이터 전송하는 함수를 만들었다 해당 코드는 DATA를 Device Label - Variable Label 에 전송 하는 함수이며, 이 함수를 이용하여 간단하게 데이터를 보낼 수 있다

Step4 워터 펌프 작동

이미지
Step4 워터 펌프 작동 W5100S-EVB-PICO를 이용하여 화분에 물을 주기 위해 아래 디바이스를 사용하였다 워터 펌프 - npm-4 12v (12v 워터 펌프 모터) 전원 제어 - 3.3v Relay Module  전원 - 1.5v 전지 8 Socket 개발환경 Arduino IDE 1. 워터 펌프 제어하기 아두이노용 워터 펌프와 모터 제너레이터를 사용할 수도 있었으나, 화분이 크고, 고 출력이 필요하다 생각하여, 12v 워터 펌프를 사용하였다 12v 전원의 경우 W5100S-EVB-PICO 에서 지원하지 않으므로, 외부 전원을 사용하였으며, W5100S-EVB-PICO 에서 전원을 제어하는 방식으로 설계하였다 (Relay Module) 1-1. 회로구성 Relay Module과 외부 전원, 워터 펌프는 아래와 같이 연결하였다 12V(- 극) - COM (Relay Module) || NC (Relay Module) - 워터펌프(- 극) 12V(+ 극) - 워터펌프(+ 극) W5100S-EVB-PICO와 Relay Module은 아래와 같이 연결하였다 VCC Pin : 3.3v GND Pin: GND IN Pin: GPIO 12 1-2. 워터 펌프 제어 아두이노 코드 GPIO 12번과 digitalWrite() 함수를 이용하여 아래와 같이 간단하게 완성하였다

Step3 토양 습도 측정

이미지
Step2 토양 습도 측정 W5100S-EVB-PICO를 이용하여 토양 습도측정을 위해 아래 디바이스를 사용하였다 토양 습도 - 아두이노 토양습도 센서 DM456 개발환경 Arduino IDE 1. 토양습도 측정하기 아두이노 토양습도 센서 DM456은 센서 부분을 토양에 꽂아서 토양의 습도를 측정할 수 있는 모듈이며, 별도의 라이브러리 추가 없이 아두이노에서 제공하는 analogRead( ADC PIN ) 을 이용하여 조도 값을 쉽게 측정할 수 있다 1-1. 회로구성 모듈의 AO Pin, VCC Pin, GND Pin 은 아래와 같이 연결한다 AO Pin : GPIO 27 (ADC 1, A1) VCC Pin : 3.3v GND Pin : GND 1-2. 토양습도 측정 아두이노 코드 GPIO 27번과 analogRead( ADC PIN ) 함수를 이용하여 아래와 같이 간단하게 완성하였다 GPIO 27번 Pin은 "A1" 로도 선언 가능하다 1-3. 토양습도 측정 결과 아래 그림과 같이 토양습도 측정 결과를 얻을 수 있으며, 건조할 때에는 1000 이상의 값이 나타나며, 센서를 물에 담궜을 때에는 측정 값이 떨어지는 것을 볼 수 있다 (붉은색 부분)

Step2 공기 중 온도, 습도, 조도 측정

이미지
Step2 공기 중 온도, 습도, 조도 측정 W5100S-EVB-PICO를 이용하여 공기 중 온도, 습도, 조도 측정을 위해 아래 디바이스들을 사용하였다.  공기 중 온도, 습도 - DHT11 module 조도 - CDS module 개발환경 Arduino IDE 1. 공기 중 온도, 습도 측정하기 DHT11 module은 공기 중 온도, 습도를 측정할 수 있는 모듈이며, Adafruit에서 제공하는 DHT 라이브러리를 사용하면, 쉽게 온도, 습도를 측정할 수 있다 1-1. 회로구성 모듈의 DATA Pin, VCC Pin, GND Pin 은 아래와 같이 연결한다 DATA Pin : GPIO 2 VCC Pin : 3.3v GND Pin : GND 1-2. 라이브러리 다운로드 툴 -> 라이브러리 관리 -> "dht11 검색" -> DHT sensor library 설치 1-3. 온도, 습도 측정 아두이노 코드 DHT에서 제공하는 예제를 이용하여 아래 코드를 완성하였다 예제코드에서도 볼 수 있지만, DHT11의 경우, 약 2초정도 지나야 정상적인 측정 데이터가 나오는 것을 확인할 수 있었다 2. 조도 측정하기 CDS module은 조도(빛의 세기)를 측정할 수 있는 아날로그 센서이며, 별도의 라이브러리 추가 없이 아두이노에서 제공하는 analogRead( ADC PIN ) 을 이용하여 조도 값을 쉽게 측정할 수 있다 2-1. 회로구성 모듈의 OUT Pin, VCC Pin, GND Pin 은 아래와 같이 연결한다 OUT Pin : GPIO 26 (ADC 0, A0) VCC Pin : 3.3v GND Pin: GND 2-2. 조도 측정 아두이노 코드 GPIO 26번과 analogRead( ADC PIN ) 함수를 이용하여 아래와 같이 간단하게 완성하였다.  3. 온도, 습도, 조도 측정 아두이노 코드 1번과 2번을 취합하여 아래 코드를 완성하였다 <온도 습도 조도 실행결과>

Step1 개발환경 세팅

이미지
W5100S-EVB-PICO를  제어하기 위해서는 몇가지 선택지가 있다 아두이노를 선택한 이유는 보편적이어서 관련 정보를 찾기도 쉽고 또한 피코 보드가 아두이노와 파이썬, C언어 등의 개발환경을 제공한다고 한다. 이 중에서 아두이노가 나에게 좀 더 편하기 떄문에 아두이노를 선택했따. 이제부터 아두이노의 개발환경 세팅 방법을 알아보려 한다. 1. 아두이노 설치 Arduino 홈페이지 혹은 Microsoft Store에서 Arduino IDE를 다운로드 후 설치 -  Arduino 공식 홈페이지 :  https://www.arduino.cc/en/software   2. 보드 매니저 및 URL추가 Arduino IDE에서 추가적인 URL을 입력 추가적인 URL :  https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json   환경설정 -> 추가적인 보드 매니저 URLs -> 추가적인 URL 입력 3. Raspberry Pi PICO 보드 추가   툴 -> 보드 -> 보드매니저 -> "Raspberry Pi Pico/RP2040" 설치 4.  Raspberry Pi Pico 선택 툴 -> 보드 "Raspberry Pi PICO" -> Raspberry Pi PR2040 Boards ->  Raspberry Pi PICO 선택 이렇게 설정하면 기본 설정은 끝이다.

스마트 화분 Overview

이미지
딱딱한 분위기의 사무실에 식물을 키우면 분위기가 더 좋아질 거라 생각했다. (출처 - 부엉이 곳간) 집에 부모님이 키우는 식물들만 좀 봤었고 내가 직접 키워본 적이 없어서 손이 덜 가고 키우기 비교적 수월하다는 선인장을 들여놨다.  (출처 - 오늘의 집) 그런데...월 1~2회 정도만 급수해야하는 걸 모르고 주 1~2회를 줬더니 얼마 못가서 뿌리가 썩었다. ㅠ.ㅠ 그 후 다시 식물 키우기에 도전하고자 미세먼지 제거에 탁월하고 키우기 쉽다는 수염 틸란드시아를 데리고 왔다. (출처 - 옥션)   습한 환경만 조성되면 무럭무럭 자란다는 얘기만 듣고 무작정 욕실에 걸어뒀다. 매일 샤워를 하면서 물을 머금을 것이고 집안 어디보다 습한 환경일 테니 잘 자랄 것이라고 기대했다. 하지만 틸란드시아도 죽어버렸다. 이유는 햇빛을 너무 못봐서였다. ㅠ_ㅠ 아직도 식물을 키울 생각이 있으나 식물 생장에 최적화된 환경을 어떠헥 조성해줘야 할지, 물은 언제 줬고 언제 줘야 하는지 등을 하나하나 메모하기엔 내 성격에 맞지 않아서 이를 알려주는 시스템이 있으면 어떨까? 라는 생각에 직접 개발해봤다 이 포스팅에서는  1. 개발환경을 어떻게 세팅했는지 2. 대기 중 온습도와 조도 측정 방법 3. 식물들에게 중요한 토양 습도 측정 방법 4. 직접 물을 공급해주는 워터펌프 동작법 5. 식물이 잘 자라고 있는지 데이터를 쌓아줄 클라우드 연결 로 이루어져 있다. 가성비를 고려하여,  유선 인터넷(Ethernet)과 컨트롤을 동시에 지원하는 W5100S-EVB-PICO 로 만들려고 한다.