맥으로 라즈베리파이 피코 환경설정

이미지
라즈베리파이 피코를 좀 가지고 놀려고 환경 설정에 관한 구글링을 좀 해보니 대부분 윈도우 기반이어서 환경 설정하는데 조금 시간이 걸렸다 먼저 준비물 1. 라즈베리파이 피코 2. 마이크로 USB케이블 (안드로이드 5핀이랑 비슷한데 조금 다르다) 아 ! 맥북은 USB-C타입면 꽂을 수 있기 때문에 일반적으로 시중에서 판매하고 있는 USB-A타입의 케이블은 연결할 수 없을 수도 있다. 위 사진처럼 USB c to 마이크로 USB 케이블을 사거나 아니면 기존에 사용하고 있는 USB 허브가 있다면 거기에 있는 USB포트를 이용해서 연결하면 된다. 나는 이런 허브를 이용하고 있다. 이렇게와 제어할 맥OS가 깔려있는 맥북이나 아이맥등을 준비하면 된다. 다 준비 되었다면 글 순서대로 따라하면 된다 1. 라즈베리파이 피코와 맥북 연결 이렇게 허브에 마이크로 USB케이블을 물려 라즈베리 파이 피코와 연결하고 허브를 맥북에 연결했다. 연결할 때 그냥 연결하면 제대로 연결이 안되는지 아무 일도 일어나지 않는다. 피코에 보면 작은 버튼이 하나 있는데 BOOTSEL이라고 쓰여 있다 이걸 꾹 누른채 마이크로 USB 케이블을 연결해줘야 한다. 정리하자면 1. 아무것도 연결하지 않은 피코보드에 부트셀(BOOTSEL)버튼 을 누르고 있는 채로 2. 마이크로USB케이블 연결 이렇게 진행하면 된다. 그리고 파인더(바탕화면에서 CMD+N)를 켜보면 아래 사진과 같이 RPI-RP2가 연결된게 보인다 이렇게 파인더 -> 위치에서 봐도 RPI-RP2가 있는 걸 볼 수 있다. 여기까지 했으면 이제 라즈베리파이 피코 펌웨어를 업데이트 해주면 된다. 2. 라즈베리파이 피코 펌웨어 업데이트 https://www.raspberrypi.com/documentation/microcontrollers/ 저 링크를 타고 들어가면 아래와 같은 화면이 나오는데 저기서 우측에 있는 MicroPython을 클릭 해준다 그리고 밑으로 내리다 보면 이런 곳이 나오는데 여기서 펌웨어를 다운로드 해준다 ㅁㄴ CMD+F를 눌러서

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 선택 이렇게 설정하면 기본 설정은 끝이다.