본문 바로가기

Software

M5Stack ELM327 Bluetooth OBD 데이터 뷰어 차량의 OBD 포트를 통해 차량내 제공 하는 데이터를 요청 응답 받아 표시하는 기능을 구현하는 방법에 대해 소개해드립니다 데이터 가시성을 위해서 LCD가 포함된 M5Stack 개발 보드를 사용하였습니다 m5stack.com/ M5Stack - Modular Rapid ESP32 IoT Development Board - ESP32 dev kits Open-source modular toolkits for IoT devices based on ESP32-updated version of ESP8266. With stackable modules, user-friendly IDE, enabling rapid and high-quality prototyping, STEM education, engineering.. 더보기
아두이노 OBD 시뮬레이터 (Arduino OBD Simulator) ELM327 블루투스 OBD 툴을 구매하여 사용하다보니 실제 OBD 데이터가 어떻게 요청하고 응답하는지 직접 보고 싶은 생각이 들게 되었습니다. OBD WiKi 문서를 참조하면 데이터 포맷을 유추 할 수 있습니다만 en.wikipedia.org/wiki/OBD-II_PIDs#CAN_(11-bit)_bus_format OBD-II PIDs - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search OBD-II PIDs (On-board diagnostics Parameter IDs) are codes used to request data from a vehicle, used as a diagnostic tool. S.. 더보기
Git 사용법 Git 사용법 일단 이글은 기존에 SVN(Subversion)만 사용해봤던 필자가 GIT을 처음 접하면서 많이 사용하는 커맨드를 익힌 내용을 공유하여 저와 같은 초심자가 리눅스 환경에서 Git 사용에 있어 도움이 되었으면 하는 바람에 정리하여 남겨봅니다 일단 Git은 저장소 개념의 서버가 필요하고 이를 자신의 PC에서도 구축이 가능하고 또는 온라인에서 서비스하는 GIT서비스인 github.com을 활용하는 두 가지 방법으로 저장소를 준비할 수 있습니다 하지만 Git서버를 직접 운영하는것은 아무래도 설치부터 보안접속이나 외부접속등에 대한 세팅까지 복잡할수 있기에 온라인 저장소인 gihub.com 를 사용하기로 합니다 github.com은 2019년 1월 현재 공개 저장소는 무제한 사용가능하고 비공개 개인저.. 더보기
Modbus RTU & libmodbus modbus와 libmodbus 활용 Modbus RTU 프로토콜 구조 Modbus RTU는 RS-485 시리얼 통신을 활용하는 마스터-슬레이브 구조를 사용하며 이 구조에서는 마스터는 슬레이브에 요청을 보내고 응답을 기다립니다Modbus RTU는 1대 다통신이나 다대 다구조로 마스터에서 255개의 슬레이브와 통신 할 수 있습니다일반적으로 센서나 액츄에이터 디바이스들을 슬레이브를 센서로 부터 데이터를 받는 디바이스는 마스터로 정의합니다 Modbus RTU 프로토콜의 구성단위는 PDU(Protocol Data Unit)로 불리우는 Function Code와 DATA 구성 단위와PDU에 Additional address와 Error Check가 앞뒤로 붙어 ADU(Application Data Unit)으로 .. 더보기
ThingsBoard ThingsBoard 수많은 IoT 플랫폼들중 사용자 GUI까지 잘구성되어 있는 IoT 플랫폼이 있어서 사용해 보고 간단히 평해보려고 합니다 IoT 플랫폼을 도입하고자하는 사업장이나 개인에 도움이 되었으면 좋겠습니다 ThingsBoard (https://thingsboard.io) 는 문서화가 잘 되어 있어 문서와 동영상을 참조하면 어느 정도까지 사용에 문제가 없습니다다만 이 글에서는 이러한 내용을 찾아보고 실행하고 익히는 과정의 이해를 가능한 줄여보고자 작성하였습니다 ThingsBoard는 일반적으로 우리가 알고 있는 클라우드 기반의 IoT 플랫폼의 구조를 따르고 있습니다 Cloud 또는 Private Cloud에 ThingsBoard를 설치하고 ThingsBoard에 센서/액츄에이터나 그밖의 디바이스.. 더보기
Online IDE (arduino, mbed) Online IDE 8비트 MCU를 사용하고 싶은 경우는 ATmega를 사용하는 Arduino를 사용하는 것과ARM MCU를 사용하고 싶은 경우는 STMicroelectronics의 NUCLEO 지원 보드를 사용하는 것을 추천하여 봅니다 Arduino의 경우는 제품으로는 Uno나 Nano를 mbed의 경우는 NUCLEO-F042K6나 NUCLEO-F091RC 제품군을 추천합니다 일단 Uno와 Nano는 ATmega328P 를 사용한 보드로 하드웨어 스펙은 다음과 같습니다 항목 Uno Nano MCU ATmega328P ATmega328P 동작 전압 5V 5V 디지털 입출력 핀 14개 22개 PWM 디지털 핀 6개 6개 아날로그 입력 핀 6개 8개 Flash 메모리 크기 32 Kbyte 32 Kbyte S.. 더보기
Node-RED Node-RED node.js와 javascript 기반의 시각화도구로 노드라고 불리우는 컴퍼넌트들을 가지고 웹상에서 플로우챠트 형태로 노드를 배치하여 노드간 파이프라인 형태로 기능을 구현 가능한 툴 입니다 설치이미 node.js가 설치되어 있다는 가정하에$ npm install node-red로 간단하게 설치 가능합니다설치 이후에는$ node-red 로 실행한 뒤 http://127.0.0.1:1880 으로 접속한뒤 작업을 수행하면 아래와 같은 기본 인터페이스를 볼 수 있습니다 예제로 알아보는 사용법 좌측의 작은 항목들로 구성되어 있는 Palette라고 불리는 공간에는 기본적으로 포함되어 있는 노드들이 보이며 가운데 작업공간에 필요한 노드를 배치하고 우측 상단의 Deploy를 클릭하면 실행되게 되는 구.. 더보기
Ocean IoT Platform Ocean IoT Platform 최근들어 IoT, AI란 단어가 실생활에 밀접하게 접하고 있음을 느낍니다 특히 Internet of Things(사물인터넷)은 앞으로도 계속적으로 그 시장을 넓혀갈 것이 자명한 사실이라 예상됩니다 이러한 추세에 맞춰 IoT 영역의 플렛폼들의 시장을 선점하기 위해 치열한지 이미 수년째 되고 있는게 사실입니다 그러한 IoT에 대한 아키텍쳐로는 국제적으로 oneM2M과 OCF란 굵직한 단체가 이끌고 있으며 그밖에 자신들만의 고유한 플렛폼을 보유한곳도 있습니다 oneM2M 아키텍쳐를 사용한 오픈소스로 - eClipse OM2M ( http://www.eclipse.org/om2m )- KETI Ocean ( http://developers.iotocean.org )- OpenM.. 더보기
node.js npm node.js npm (node package manager) 사용법 #>npm install 'package name'=> package name을 설치하되 현재 실행 디렉토리에서만 사용하게 됩니다=> 지역패키지설치는 실행 디렉토리에 node_modules 폴더가 생성되며 그하위에 설치됩니다 #>npm install 'package name' -g=> package name을 설치하되 시스템 공용영역에 설치하여 어느 디렉토리에서든 전역으로 사용하게 됩니다 npm에서는 패키지 관리를 실행되는 디렉토리에 있는 package.js 파일로 관리하며 이 파일의 기본 포맷형태로 생성하기 위해서 다음 명령을 수행합니다#>npm init #>npm install 'package name' --save=> packag.. 더보기
MQTT MQTT (Message Queuing Telemetry Transport)- 다수 클라이언트 연결에 적합한 발행 중계 구독 네트워크 방식 - 신뢰성을 위한 단계별 QoS를 제공- 프로토콜이 차지하는 리소스 점유를 최소화- 낮은 품질의 네트워크에서의 장애 단절에 대한 보완- MQTT over TLS 로 전송 보안 기능 제공위와 같이 MQTT의 구조는 발행자(Publisher)가 임의 주제(Topic)로 데이터를 중계인에 전송하면 사전에 구독자(Subscriber)가 구독한 주제가 일치하는 경우 구독자에게 데이터를 전달하는 방식으로 동작합니다 MQTT QOSMQTT는 QOS(Quality of Service)를 제공하며 이 설정에 따라 발행자가 발행한 메시지가 어느정도 수준으로 구독자에게 전달될 것인지에 .. 더보기