[아두이노#306] (앱인벤터#17) 화분1개를 관리하는 소규모 스마트팜!(Appinventor BT 시리즈/녹칸다/포로리야공대가자)
프로그래밍/앱인벤터 2021. 7. 12. 22:31
(앱인벤터#17) 화분1개를 관리하는 소규모 스마트팜!(Appinventor BT 시리즈)
-이번 시리즈는 녹칸다의 앱인벤터(Appinventor) 시리즈 이다!
-앱인벤터는 스마트폰쪽의 어플리케이션(앱)을 아주 간단한 블럭놀이로 구현할 수 있는 도구이다!
-화면을 화려하게 꾸미기에는 한계가 있지만 스마트폰 앱만드는데 진입장벽이 높으므로 간단히 구현된다면 땡큐이다!
-앱인벤터의 모든 내용을 살펴보는 강의가 아니고 아두이노를 제어하기 위해 필요한 부분으로만 구성한다!
-녹칸다는 앱인벤터 전문가가 아님에 주의하자!(아두이노를 재미있게 활용하기 위해서 데려온 친구라고 생각하자)
-앱인벤터라는 툴을 사용하기 위한 진입장벽을 낮추기 위해서 녹칸다가 한발짝 정도 앞서서 예제를 이끌고 나간다!
-스마트폰으로 아두이노를 제어하기 위해서는 ①블루투스(bluetooth)를 이용한 방법과 ②웹통신을 이용한 방법, ③MQTT를 이용한 방법 정도인것 같다!
-3가지 방법중 ①번을 메인테마로해서 진행되는 Appinventor BT 시리즈이다!
-이번편은 블루투스를 메인으로 하는 시리즈의 가장 끝판대장이 되는 예제이다!
-녹칸다가 가진 조합중에 가장 규모가 큰 스마트팜을 앱인벤터에서 표현해보자!
-그러나 실생활에 가까운 스마트팜의 구현은 예제 특성상 어렵겠고 제한사항은 근거리에 있는 화분 1개를 스마트폰을 이용해서 모니터링하고 관리해보는 것으로 한다!
-일단 아두이노 우노를 이용해서 아래 열거된 센서를 최대한 연결해보자!(연결하다가 핀이 부족하면 뺄수도 있음)
-온습도센서(DHT-11), 이산화탄소센서(MH-Z19B), 광센서(CDS), 토양습도센서, 토양온도센서
-워터펌프, 유량센서(YF-S401), 비접촉수위센서
-녹칸다가 주말동안 실습용 스마트폰 화면 크기에 맞춰서 UI를 대략 구상해보았다!
-프로젝트 파일로 저장해놓았으니 일단 어떤 전략을 구상하는지 살펴보자!
-실제 데이터 전달은 JSON으로 전달하면 될 것 같다!
-아두이노에서 앱인벤터쪽으로 블루투스를 이용해서 모든 센서 데이터를 JSON으로 넘긴다!
-앱인벤터에서 아두이노쪽으로 제어되는 명령은 워터펌프 제어 명령 뿐이므로 심플하게 구성할 수 있을 듯 하다!
-앱인벤터 시즌1의 최종결과물이므로 아무래도 상당히 어려울 것이나 1~16편 내용을 꼼꼼히 살펴보았다면 불가능한 것도 아니다!
(간단한 UI로 결과 출력 및 제어)
(최대한? 화려하게 구현한 UI로 결과 출력 및 제어)
(아두이노용 공통 코드)
관련라이브러리(DHT11)
https://github.com/adafruit/DHT-sensor-library
관련라이브러리(MHZ19B)
https://github.com/strange-v/MHZ19
관련라이브러리(ds1820)
https://github.com/milesburton/Arduino-Temperature-Control-Library