본문 바로가기

IoT 디바이스 활용81

Kotlin - 객체지향 프로그래밍 - 클래스와 상속, overloading, override, Interface, abstract, static, object, data class Kotlin 객체지향 프로그래밍 클래스와 상속 ex01_class.kt package oop // class passwd(변수명: 데이터형, ..){} 으로 생성자를 만들어쓰기도 한다. class TestClass{ var name : String = ""; // 기본 생성자 constructor(){ println("기본생성자"); } // 오버로딩된 생성자 constructor(name : String ){ this.name = name; println("$name 을 입력받은 생성자"); } } // kotlin에서는 기본적으로 상속이 거부되어 있다. // 선조클래스를 open으로 지정해야 한다. open class ParentClass { var name : String = this.toStrin.. 2020. 10. 20.
Kotlin - 기본 - main 함수, 변수 선언, 숫자형 변수, 문자형 변수, 범위, 함수, Any Type, 제어문, 레이블, 컬렉션, 예외 처리, Null 처리 Kotlin의 기본 main 함수 코틀린 프로그램 실행의 진입점(entry point) fun main(args : Array){ } ex01_first.kt package basic fun main(args : Array){ println("안녕하세요. kotlin입니다") // 종결자 없이도 실행가능 } args 선언하고 사용하지 않아 오류 : 지금은 무시하자 .kt 파일 → (Kotlinc) → Java + *.jar : java VM 이 있어야한다. > java -jar ex01_first.jar : 오류 메시지 출력 X 변수 선언 var 변수명 = 값 : 가장 많이쓰는 형식 ex02_variable.kt package basic fun varTest() { // 1. 변수의 타입을 미리 정함 v.. 2020. 10. 20.
Kotlin - 개발환경 구축 Kotlin 개발환경 구축 OpenJDK 설치 https://jdk.java.net/java-se-ri/13 Windows 10 x64 Java Development Kit 다운로드 C:\jdk-13로 압축 해제 JAVA_HOME 환경 변수 추가 값: C:\jdk-13 PATH 환경변수에 값 추가 C:\jdk-13\bin Kotlin 컴파일러 설치 https://kotlinlang.org/docs/tutorials/command-line.html PATH 환경 변수 값 추가 C:\kotlinc\bin 확인 > java --version > kotlinc -version Vscode Kotlin 확장팩 설치 Kotlin language 2020. 10. 20.
Security Camera - Object Detection API (라즈베리파이) Object Detection API (라즈베리파이) 홈페이지 https://github.com/tensorflow/models/tree/master/research/object_detection Protocol Buf 설치 리눅스 $ sudo apt-get install protobuf-compiler $ protoc --version libprotoc 3.6.1 기본 환경 설치(라즈베리파이) tensorflow 설치 $ sudo apt install gfortran libopenblas-dev liblapack-dev libhdf5-dev $ mkdir ~/temp $ cd ~/temp $ wget http://1.229.109.140:3562/tensorflow/tensorflow-2.2.0.arm.. 2020. 10. 20.
Security Camera - Object Detection API (윈도우) Object Detection API (윈도우) 홈페이지 https://github.com/tensorflow/models/tree/master/research/object_detection Protocol Buf 설치 윈도우 https://github.com/protocolbuffers/protobuf/releases/tag/v3.1.0 protoc-3.1.0-win32.zip 다운로드 압축 해제 c:\workspace\tf\protoc-3.1.0-win32 PATH 환경 변수 추가 c:\workspace\tf\protoc-3.1.0-win32\bin 기본 환경 설치(윈도우) tensorflow 설치 > conda activate iot (iot) > pip install tensorflow (iot).. 2020. 10. 20.
Security Camera - 카톡 메시지 보내기 카톡 메시지 보내기 설정 https://developers.kakao.com/ 플랫폼 설정 pc와 라즈베리파이 주소를 넣어준다. 카카오 계정 로그인 설정 라즈베리파이 주소를 준다. (PC는 혹시 몰라서) 접근권한 관리 카톡 메시지 보내기 앱 만들기 / Access Token 얻기 kakao 앱 추가 python manage.py startapp kakao settings.py INSTALLED_APPS = [ : 'kakao.apps.KakaoConfig' ] kakao/views.py from django.shortcuts import render from django.views.generic import TemplateView, FormView # from kakao.forms impo.. 2020. 10. 20.
Security Camera - MJpeg stream(Django) Motion JPEG 앱 만들기 가상환경 활성화 : > conda activate iot 디렉토리 추가 : C:\workspace\iot_web_service\ 프로젝트 생성 : > django-admin startproject mysite 디렉토리 명 변경 : mysite > iot 앱 추가 : > python manage.py startapp mjpeg Code로 열기 : C:\workspace\iot_web_service\iot\ Test test01.html MJpeg 확인 핸드폰 카메라가 실시간으로 웹 상에서 확인 된다. MJpeg용 HTTP 응답 메시지 HTTP/1.1 200 OK Content-Type: multipart/x-mixed-replace; boundary=frame --frame.. 2020. 10. 20.
MongoDB - PyMongo PyMongo 패키지 설치 pip install pymongo 데이터베이스 접속 PYMONGO-EX/ex01.py from pymongo import MongoClient # db 서버 접속 db_client = MongoClient("mongodb://localhost:27017/") # 기존 데이터베이스이름 목록 출력 print(db_client.list_database_names()) 문서 하나 삽입 PYMONGO-EX/ex02.py from pymongo import MongoClient from datetime import datetime import random db_client = MongoClient("mongodb://localhost:27017/") iot_db = db_client[&.. 2020. 10. 20.
MongoDB - 셸 경험하기 - 도큐먼트 생성·조회·수정·삭제·트랜잭션 MongoDB 셸 경험하기 개발툴 MongoDB for VSCode 확장팩 CONNECTIONS > Create New Playground > use('testDB'); Azure Cosmos DB 확장팩 (선택) Robomongo https://robomongo.org/download Simple GUI for beginners > portable version 컬렉션과 데이터베이스 더 알아보기 데이터베이스와 컬렉션의 삭제와 수정 데이터베이스 상태 조회 컬렉션 상태 조회 실습 > use testDB > db.createCollection("cappedCollection", { capped: true, size: 10000 }) > db.cappedCollection.insertOne({x.. 2020. 10. 20.
MongoDB - 이해하기 - 설치, 소개, 구조, 데이터 타입 MongoDB 이해하기 설치 https://www.mongodb.com/ Software > Community Server > Download > 2개 체크 해제 환경변수 PATH 등록 : C:\Program Files\MongoDB\Server\4.4\bin 소개 NoSQL (No SQL DBMS) NoSQL DBMS의 네 가지 분류 MongoDB 소개 관계형 모델과 MongDB 모델 관계형 모델과 MongoDB 모델의 도식 차이 언제 어떻게 써야 할까? 스키마가 자주 바뀌는 환경 분산 컴퓨팅 환경 MongoDB 실행 서버 실행 > mongod c:\data\db 디렉토리가 있어야 함 디폴트 데이터 저장 디렉토리 없으면 에러 클라이언트 실행 > mongo MongoDB 구조 MongoDB 구성 요소 B.. 2020. 10. 20.
MQTT - raspberry MQTT - raspberry $ sudo apt install mosquitto mosquitto-clients $ sudo pip3 install paho-mqtt $ ps : 현재 터미널에서 실행 중인 프로그램 확인 $ ps -elf : 현재 동작하는 모든 프로그램 확인 $ ps -elf | grep mosq : mosq 단어가 들어있는 라인 필터링 PYMONGO-EX 폴더 P:\workspace\09_PYMONGO-EX로 이동 $ pip install pymongo MongoDB 설정 서비스 등록 C:\Program Files\MongoDB\Server\4.4\bin\mongod.cfg 파일 C:\data 로 이동 명령 프롬프트 > 관리자 권한으로 실행 > mongod --install --con.. 2020. 10. 20.
MQTT - Python Client - Paho MQTT Python Client - Paho Paho 모듈 paho-mqtt 모듈 MQTT Python Client 모듈 설치 $ sudo pip3 install paho-mqtt > pip install paho-mqtt api 문서 https://www.eclipse.org/paho/clients/python/docs/ 구독자(Subscriber) 개발 절차 MQTT 클라이언트 클래스 인스턴스화 브로커 연결 토픽 구독 신청 토픽 수신시 호출할 핸들러 등록 토픽 수신 대기 토픽 수신시 처리 - 핸들러 호출 발행자(Publisher) 개발 절차 MQTT 클라이언트 클래스 인스턴스화 브로커 연결 필요시 토픽 발행(전송) 클라이언트 클래스 인스턴스화하기 : Client( ) Client(client_id=.. 2020. 10. 19.