Projects
-
Face mask detection system using Deep learningProjects/Deep learning 2020. 8. 31. 11:37
Motive As COVID-19 virus are spread widly, nothing's important than wearing mask for prevection. So I made a device to detect whether mask is on to place it at an entrance Architecture ESP32 and PC are connected as server-client. based on ESP32 camera web server example. starts server and manipulated on PC by http request ESP32 communicates with Arduino by pin output. Added arduino nano due to l..
-
[아두이노]딥러닝을 이용한 마스크 인식/알람 시스템Projects/Deep learning 2020. 8. 31. 11:33
개발 목적 코로나 19 바이러스가 재 확산하는 지금, 감염 확산을 막기 위해 마스크 착용은 그 어느 때보다 중요하다. 그래서 건물 입구 등에 설치되어 마스크 착용 여부를 인식하는 기계를 만들기로 했다. 설계 ESP32와 PC는 서버와 클라이언트의 관계로 연결된다. ESP32 카메라 웹서버 예제를 베이스로 만들었다. 서버를 열고 PC에서 http 리퀘스트를 보내어 조작하도록 한다. ESP32와 아두이노는 Pin출력으로 소통한다. ESP32 자체의 핀 만으로 알람 시스템을 구현하기에는 부족해서 아두이노 나노를 추가했다. 부품 구성 부품목록 ESP32 cam Arduino nano PIR sensor piezo buzzer RGB LED Resistor 기타 (브레드보드, 배터리) 간단한 부품들을 사용했다. ..
-
IoT 발아기(11) - IIS 시작하기Projects/Arduino 2020. 2. 21. 07:57
인터넷 정보 서비스(IIS) 관리자를 통해 사이트를 추가하고 실행한다. 실행하는 목적은 ASP.NET MVC5를 이용해 만든 웹사이트로 JSN-270과 http 요청을 통해 PIN을 컨트롤하고 센서값을 받아와서 사이트 상에 차트형식으로 나타내기 위함이다. 그리고 더 나아가 카메라를 통해 실시간으로 확인 할 수 있도록 구현할 계획이다. IIS 설치 [제어판]-[프로그램]-[Windows 기능 켜기/끄기]-[인터넷정보 서비스]체크-[확인] IIS관리자를 실행하고 사이트를 추가한다. 사이트 이름과 실제 경로를 설정해준다. 찾아보기를 클릭하거나 웹 주소창에 [Localhost:(포트번호)]를 치면 사이트가 뜬다. 500.19는 아주 자주 발생하는 에러중에 하나다. 이외에도 401, 404.3, 404.7, 40..
-
IoT 발아기(10) - 어플리케이션으로 JSN-270 컨트롤하기(AppInventor)Projects/Arduino 2020. 2. 20. 08:01
지난시간에 아두이노 코드를 수정해서 이런식으로 있었던 하이퍼텍스트부분을 모두 제거했다. 매우 불친절한 인터페이스인데(주소창 입력을 통해서만 컨트롤 가능), 쉽게 컨트롤 할 수 있도록 어플리케이션을 만들었 다. http://ai2.appinventor.mit.edu/ http://ai2.appinventor.mit.edu/ ai2.appinventor.mit.edu 앱 인벤터를 사용하면 앱 개발부터 빌드까지 아주 쉽고 간단하게 할 수 있다. 정말로 쉽다. 디자이너 부분에서 컨트롤을 드래그 앤 드롭 해서 추가할 수 있다. 블록에서 각 컨트롤에 맞게 로직을 설정할 수 있다. 블록코딩이기 때문에 누구나 쉽게 만들 수 있다. 텍스트박스 *2 : 주소창, 온도센서값 출력창 스위치 *4 : 10~13번 핀 On/Of..
-
IoT 발아기(9) - 아두이노 코드 수정Projects/Arduino 2020. 2. 20. 07:33
아두이노 코드 수정 아두이노의 4개의 핀을 각각 컨트롤 하려고 하다보니 http return으로 처리하는 부분의 코드가 너무 길어졌다. 이렇게 문자열이 많을수록 아두이노 전역변수 동적메모리의 사용이 느는데 아두이노 우노의 메모리는 그리 크지 않다. 그러다보니 이렇게 안정성에 문제가 생길 수 있다는 메시지가 뜬다. PROGMEM 키워드를 써서 플래시 메모리로 할당함으로써 줄이는 방법도 있다. 간단하게 Serial.println("String"); ↓ Serial.println(F("String")); 이렇게 처리해주면 된다. 하지만 불필요하고 긴 코드를 먼저 간략하게 수정했다. HTTP를 리턴하는 부분을 하이퍼텍스트만 남기고 모두 잘라냈다. 그리고 핀 컨트롤 부분도 다음과 같이 switch문으로 수 정했다..
-
IoT 발아기(8) - 포트포워딩Projects/Arduino 2020. 2. 19. 16:22
현재 와이파이에 연결된 JSN-270에 로컬이 아닌 외부에서 접속을 하려면 어떻게 해야할까? AP(Access Point, 공유기)는 하나의 공인 IP를 할당받는다. 그리고 공유기에 연결된 기기들은 그 공인IP를 공유한다. 공유하는 기기들도 각각의 아이피를 할당받는데 그게 바로 로컬IP(사설IP, 가상IP)다. 주로 192.168.0.x의 형식이다. 그럼 외부 네트워크의 기기에서 접속하고자 하는 공인IP에 접속하면? 어느 기기로 접속해야 할지 알 방법이 없다 그래서 필요한 작업이 '포트포워딩'이다. 외부 포트를 아이피 뒤에 입력하면 내부 아이피로 연결시켜주는 약속이다. 192.168.0.1로 들어가면 있는 공유기 설정에서 포트포워딩 설정을 할 수 있다. IpTime 기준으로는 [관리도구]-[고급설정]-[..
-
IoT 발아기(7) - JSN270 연결Projects/Arduino 2020. 2. 17. 07:14
와이파이로 JSN270을 웹서버에 연결한다. 서버와 클라이언트 개념에 대해 짚고가자. 1. 서버와 클라이언트 (1) 서버와 클라이언트란? 서버는 일반적으로 클라이언트에게 네트워크를 통해 서비스를 제공하는 시스템을 말하는데, 여기서 클라이언트는 서비스를 사용하는 사용자 혹은 사용자의 단말기를 가리킨다. 자세히는, 서버는 웹페이지, 사이트, 또는 앱 등을 저장하는 컴퓨터이다. 클라이언트의 장비가 웹페이지에 접근하기를 원할 때, 서버로부터 클라이언트의 장치로 웹페이지의 사본이 다운로드 된다. 클라이언트는 웹 사용자의 인터넷이 연결된 장치들과 이런 장치들에서 웹에 접근할 수 있도록 하는 소프트웨어(크롬, 파이어폭스 등)이다. 서버와 클라이언트가 통신을 하는데(클라이언트가 서버에 원하는 것을 요청하면 서버가 그에..