IoT 인프라 개선(2) - AWS IoT Core & AWS Amplify
·
개발/AWS
기존글에 이어서 작성 https://heeyodev.tistory.com/1 IoT 인프라 개선 현재 근무하는 회사의 인프라는 다음과 같이 구축되어있다 지금의 구조가 된 이유는 인터넷이 끊겼을 때를 대비하여, 각각 Local DB를 두고, 연동을 하는 방식으로 사용을 하고 있다. 여기서 문제 heeyodev.tistory.com 이제 인터넷을 끊길것을 대비해서 Edge마다 DB 인스턴스를 다 돌리고 있는 상황인데, 이러면 문제가 Sync 깨지는 문제 발생 발생 안한다고 하는데 과연 발생이 안하는걸까 아니면 발생해도 모르는걸까 싶긴 하다만.. 1(Remote):1(Local)로만 Sync 되도록 되어있는 프로그램의 구조 확장 불가능 Remote DB의 변경사항을 확인하기 위해서 지속적으로 SELECT 날리..
AWS IoT 장치 프로비저닝(2) - Fleet Provisioning
·
개발/AWS
이전 글에 이어서 https://heeyodev.tistory.com/7 AWS IoT 장치 프로비저닝(1) - JITP/JITR/MAR 나중에 AWS로 인프라 마이그레이션 해야 할 때 알아둬야 하는 내용을 미리 공부하는 차원에서 기록. Aws official doc이 있다. https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/iot-provision.html.. heeyodev.tistory.com Fleet Provisioning Fleet Provisioning provides two ways to provision devices with unique credentials after they are delivered to end customer..
AWS IoT 장치 프로비저닝(1) - JITP/JITR/MAR
·
개발/AWS
나중에 AWS로 인프라 마이그레이션 해야 할 때 알아둬야 하는 내용을 미리 공부하는 차원에서 기록. Aws official doc이 있다. https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/iot-provision.html 디바이스 프로비저닝 - AWS IoT Core Fleet Hub가 사물의 연결 상태 데이터를 인덱싱하도록 하려면 사물 이름이 연결 요청에 사용된 클라이언트 ID와 일치하도록 사물을 프로비저닝하고 구성합니다. docs.aws.amazon.com 저기 문서에서 PDF 문서 볼 수 있는 곳이 있는데, https://d1.awsstatic.com/whitepapers/device-manufacturing-provisioning.pdf ..
SSH Tunnel - Reverse Proxy Server 만들어보기(방화벽 우회)
·
개발/Project
오픈소스로 개발을 해보려고 하는데 컨셉 정리부터 해보려고 글을 작성한다. 일단 IoT 장치들 같은 경우에는 위대한 방화벽 뒤에 설치가 되고, 그 방화벽 설정은 내가 변경할 수 없는 경우가 많다. 실제로 회사 다니면서 이에 대한 문제로 1~2주간 머리를 싸맨 적이 있는데, 그때 내가 이용한 것이 SSH Reverse Tunneling이었다. 당시 개념 이해에 도움을 받은 글 https://unix.stackexchange.com/questions/46235/how-does-reverse-ssh-tunneling-work How does reverse SSH tunneling work? As I understand this, firewalls (assuming default settings) deny all..
CAN 통신 serialize(?) - uart 처럼 쓰기
·
개발/MCU
음.. 통신을 CAN으로 했는데 기존 232 프로토콜 하고 맞춰서 사용을 해야 하는 상황이다. 그래서 overlay 느낌으로, can 드라이버 위에다가 can_serialize로 명명해서 하나 만든 후, write 할 내용은 ring buffer 에 넣고 8바이트 TX 하게 한다. 그리고 TX 완료 인터럽트 뜰때마다 전송할 거 있으면 8바이트 혹은 그 이하로 꺼내서 전송해주도록 했다. read 내용은 RX 인터럽트 뜨면, ring buffer에 때려 넣고 상위단에 콜백 때려주는 식으로 만들었다. 타깃 MCU는 STM32F103RB이다. 일단 can 드라이버 작성해둔 것인데 can.c -> write 함수 (아래에 중하다 보는 부분을 풀어 적어놨다.) // can.c typedef struct { uint..
STM32 MCU C언어 통신 인터페이스 설계(1)
·
개발/MCU
Linux를 사용하면서 File descriptor를 보면서 공부를 했었다. 이와 같은 형태로 UART, SPI 등등 간단하게 설계를 해두면 통신 사양 등에 변경을 해야될 때 매우 편할 것 같다는 생각이 들었다. 예를 들어서 센서 값을 RS485로 뿜어주는 MCU가 있다고 해보자. 대충 이런식으로 소스 작업이 되어 있을 것이다(예제용으로 대충 짠 것이라 컴파일 안된다.) // rs485.c void rs485_send(uint32_t to_send, uint32_t len) { HAL_UART_TRANSMIT(to_send, len); } // sensor_gather.c sensor_t sensors[] = { sensor_1, sensor_2}; void gather_sensor(void) { // ..
Linux PCAN CAN to USB(Peak system) 드라이버 설치 체크
·
개발/Linux
PCAN을 Orange Pi 보드에 붙이려고 했는데, OS 이미지 경량화 때문인지 커널 설정에 Device Driver가 꺼져있었다. PCAN 사이트에 이를 확인하는 방법이 나와있다 -> cmd에 각 커맨드를 때렸을 때 PCAN driver 설치 여부 확인 grep PEAK_ /boot/config-`uname -r` 여기서 아무것도 안 나오면 드라이버 설치를 해야 한다. PCAN device init 상태 확인 lsmod | grep ^peak 장치가 연결되어 있으면 peak_usb 던 뭐던 나올 것이다. CONFIG_CAN_PEAK_USB=y로 m이 아닌 y로 되어있으면 lsmod에 안 나오는 것 같더라. 아무튼 제일 첫 번째 커맨드 쳤을 때 정상적으로 나오면 설치되어있는 것이다. lsmod 명령어 ..
Orange Pi 4 / Armbian - OS 이미지 빌드
·
개발/Linux
여러분들의 시간을 아끼고, 내가 나중에 까먹고 또 삽질할까 봐 적어둔다. OS 이미지 빌드하게 된 이유 1. PCAN 디바이스 드라이버 활성화 2. 빌드 방법 파악해서 차후 Orange Pi나 Armbian으로 배포용 이미지 제작 방법 알아두려고 3. https://heeyodev.tistory.com/3 일단 타깃은 Orange Pi 4 Lts이다. 원래 Raspberry pi를 사용해서 프로젝트 진행했었는데, SD카드 관련해 이슈 발생할까 봐 eMMC 달린 오랜지를 쓰기로 했다. 회사 사람들이랑 RPi CM4 모듈로 보드 만들어서 쓰기로 했으나, CM4 모듈은 어디서도 살 수가 없더라.. 반도체 대란 언제 끝남?.. 무튼 이제 작업을 시작할 것인데, Orange Pi는 Armbian의 Build to..