공기정화 식물-인공지능-IOT 13

Moisturesensor_esp32_AI_TalkBack

그린와처에서 실행해야 할 코드 구조를 살펴보자. esp32 클라이언트에서 기본적으로 필요한 라이브러리는 Thingspeak.h 와 ThingSpeak 서버에 출력하기 위한 WriteAPI 값이다. 아울러 원격에서 esp32 클라이언트 보드를 조종하기 위해서는 TalkBack 기능을 설치해야 한다. 이는 원격에 해당하는 ThingSpeak 서버 해당 채널의 Private View 화면에서 Apps 의 메뉴 중 TalkBack이 있음을 알 수 있다. 누르고 들어가자. TalkBack 창을 살펴보면 이미 코딩하여 사용하던 파일이 있을 수 있다. 초록색 New TalkBack 버튼을 누르고 들어가면 오른 쪽 편집 창을 볼 수 있다. Name 은 새로운 파일명으로 편집 가능하다. 따라서 “PUMPONOFF” 로 ..

ESP32보드 SPS30 I2C + SparkFun CCS811+BME280 인터페이스 미세먼지 및 유해가스 농도 측정

SPS30 미세먼지 센서와 총량유해가스 센서 CCS811 및 BME280을 사진에서처럼 함께 설치해 보자. 두 종류의 센서 모두 I2C 인터페이스를 사용함으로 빵판 배선이 반드시 필요하다. PCB를 사용하지 않음으로 인해서 다소 복잡할 수도 있으므로 점퍼선 다발 배선 교통정리가 반드시 필요하다. 아두이노 IDE의 스케치->라이브러리 포함하기->라이브러리 관리를 클릭하며 라이브러리 매니저 팝업 창을 뛰운 후 아래와 같이 SparkFun_CCS811 라이브러리를 검색하여 BME280 과 CCS811 라이브러리를 각각 설치하자. 아울러 sps30 도 검색하여 sensirion-sps 라이브러리를 설치하자. 그밖에 Thingspeak.h 라이브러리도 IOT 작업을 위해서 설치하도록 하자. 한편 빌드 작업에서 다..

아두이노 우노 L293D DC모터 제어 실험

RC카 제작에 사용하는 DC모터를 제어해 보자. DC모터 제어 배선은 아래 그림과 같이 아두이노 우노와 DC모터 사용에만 한하기로 하자. DC모터의 배선은 디지털 3번 핀과 GND 핀을 사용하도록 배선한다. 이 DC모터를 제어하기 위한 아두이노 모터 제어 코드는 다음과 같다. int pin = 3;// 아두이노 PWM 디지털 핀 int rpm1 = 150;// DC모터 저속 회전 int rpm2 = 255;// DC모터 고속 회전 void setup() { Serial.begin(9600); pinMode(pin, OUTPUT); } void loop() { analogWrite(pin, rpm1); delay(5000); analogWrite(pin, rpm2); delay(5000); } 물론 이 코..

화분의 젖은 인공토 저항값 측정센서 제작, ThingSpeak 데이터 전송, Capacitive 센서와의 비교

화분에서 수분 값을 측정하기 위한 적절한 센서는 저장형과 Capacitive 두가지 유형이 있다. 그 중 저항형은 전극 자체가 수분에 용해될뿐 아니라 그 측정 값 정밀도가 의심된다. 따라서 다음과 같이 구리판 전극을 사용 제작하여 100K옴 저항을 사용하여 분압 배선하도록 한다. 인공토의 저항은 급수하였을 경우 100K~1M옴 범위까지 변동한다. 즉 측정 초기에 1.5V 수준에서 인공토 저항값이 커짐에 따라 5V 가까이 커지게 된다. 이러한 원리에 따라 수분에 용해되지 않는 구리판 전극을 제작해 보자. 구리판에 구멍을 뚫어 배선을 납땜한다. 배선도에 따라 아날로그 핀에 연결할 위치에서 배선을 분기하여 100K옴 저항을 연결 후 5V 커넥터를 만들고 수축튜브로 피복을 입힌다. 화분의 인공토 수분 상태와 실..

공기정화식물 화분 인공토 알맹이와 식물의 잔뿌리 조직 관찰

인공토로 채운 화분에서 식물의 잔뿌리는 인공토 알맹이 사이를 통과하면서 자라 수분을 흡수하는 것이 아니라 잔뿌리 자체가 인공토 알갱이 자체에 파고들어가 더욱 가는 잔뿌리들이 자라게 된다. 이러한 현상을 감안한다면 외적인 가속도를 많이 받는 차량 내부에 화분을 설치할 경우 특히 수분이 말라버려 대단히 건조한 상태에 놓여 있는 인공토 토양에서라면 인공토 알맹이들이 받게 되는 가속력에 의해 미세한 잔뿌리들이 손상을 받을 우려가 상당히 커진다. 공기정화식물은 가혹한 차량 실내 온도 조건에 따라 냉해나 열해를 받을 수도 있지만 한편으로는 가혹한 가속도 환경에서도 심각한 영향을 받을 가능성이 높다. 따라서 인공토에 공기정화정화 식물을 심은 화분을 실제 차량에 탑재하여 주기적인 범프에 의한 수직방향의 가속이나 또는 ..

차량 설치 스킨답서스 화분

차량에 스킨답서스 화분을 설치하자. 설치 위치는 에어백이 터지는 위치를 비켜나야 한다. 철판 접시에 장탈착이 가능하도록 화분 하단에 자석 단추를 본딩하여 설치한다. 화분에 물 공급은 직접 급수를 지양하고 가급적 자동급수장치를 사용하도록 하자. 동절기 차량에 스킨답서스 화분을 설치할 경우 스킨답서스 생존을 위한 환경 조건을 정확하게 맞춰 주어야 한다. 가장 중요한 조건이 온도 조건으로서 섭씨 15도 이상을 유지해 줘야 한다. 화분의 수분상태와 온습도 모니터링은 18650 리튬배터리를 사용하는 esp32 센서보드를 사용하도록 한다. 지난 밤 지하 주차장의 온도 스마트폰 테더링 관찰결과 3도 가량 낮은 12도를 유지하였으며 오전 양지바른 회사 주차장에서 관측된 온도는 22도에서 시작하여 현재 28도를 넘어가고..

3D 프린팅 AI 화분 물 머금기 성능 측정 실험

2단으로 쌓은 벽걸이 화분에서 각 화분별로 어느 정도의 물을 머금을 수 있는지 저울로 측정해 보자. 개별 화분 실험에 의하면 50~70ml 사이의 물을 붓고 새는지 확인해 보도록 한다. 50ml 면 전혀 새지 않으며 70ml 이면 제법 샌다. ᄄᆞ라서 60ml 수준에서 실험하도록 한다. 2단 상태에서 총 무게를 측정하면 587 gram 으로 측정되었다. 계량컵에 120ml를 넣은 후 상단에서 골고루 물을 붓고 새는지 살펴보자. 실험 후 8ml 가량의 물이 샜음을 확인하였다. 아울러 2단화분을 분리하여 무게를 측정해 보자. 윗화분은 351 gram 아랫화분은 353 gram 이 나왔다. 물을 붓기 전 건조 상태의 각각의 화분 무게는 293 gram 이었다. 즉 물을 부은 후 각 화분이 60 gram 정도의..

공기정화식물 Multi Label Image Classification Keras 머신 러닝

다양한 종류의 실내 공지정화식물 중 몇 가지를 선택하여 구성하는 그린월에서 얻어지는 카메라 이미지를 대상으로 classification 코딩을 해 보자. 개별 식물 단위를 대상으로 하는 classification 작업은 그다지 문제 될 것이 없겠으나 하나의 이미지 내에 2개 이상의 클라스들이 섞여 있을 경우 정확하게 포함된 클라스들의 존재 여부를 머신 러닝에 의해 감지해 낼 수 있어야 할 것이다. Multi-Label Classification을 위한 코드로서는 지금까지 상영된 수많은 7000 여개 이상의 영화 포스터를 대상으로 장르를 구별해 내는 Keras 오픈소스 예제 코드를 사용할 수 있다. 영화 포스터 한 장에는 영화 특성을 잘 표현할 수 있는 오브젝트들이 포함되어 있으며 장르별로 분석된 영화 특..

공기정화식물 식별 Keras 머신 러닝 결과 처리 분석

Fresh/Wilt 헉습 코드나 공기정화식물 종류를 식별하는 airpurifclasify.ipynb 코드 자체는 동일하며 단지 데이터만 다를 뿐이다. 현재 5 종류별로 각 5개의 이미지를 사용하는 머신 러닝에서 20% 의 validation 비율을 사용하게 되면 각 종류 별로 1개의 이미지를 validation 에 사용하게 된다. 그 인실률이 80% 라 함은 5종류별 각 1개의 이미지 검증 과정에서 5개중 2개가 탈락했다는 의미이다. 2개의 탈락은 라벨값 예측이 완전히 틀렸을 수도 있으며 또 다른 가능성은 on hot code 에 대응하는 확률계산이 제대로 이루어지지 못했을 가능성도 배제할 수 없다. 머신 러닝 validation 후 softmax에 의한 확률계산결과를 출력해보면 3개는 깔끔하게 계산되었..