Works

일단 IoT를 구축하기 위해서는 메인 서버가 필요합니다. 삼성의 스마트싱스같은 IoT 솔루션을 보면 대개 '허브'라는 개념이 존재합니다. IoT 허브는 Zigbee를 사용하는 장치들이 웹을 통해 제어될 수 있도록 중간다리 역할을 합니다. 이 프로젝트에서의 메인 서버는 허브의 역할을 함과 동시에 현재 서비스중인 IoT 솔루션의 클라우드 서버 역할을 동시에 하게 됩니다. 프론트엔드, 백엔드 프론트엔드는 웹에 접속했을 때 흔히 볼 수 있는 UI를 의미합니다. 이 프로젝트에서 프론트엔드는 React라는 자바스크립트 기반의 라이브러리를 사용합니다. 기존에는 HTML + CSS + Javascript를 통해 개발했지만 데이터 흐름이 매끄럽지 못하고 개발이 굉장히 복잡해지는 감이 있어 React를 새로이 사용하게 되..
정말 오랜만입니다. 그 동안 많은 일이 있었습니다. 이 블로그에 글을 남겼듯이 소소하게 부업으로 진행했던 채굴은 직장인 월급정도로 수익이 늘어났고, 덕분에 조금 더 여유롭게 IoT 프로젝트를 진행할 수 있게 되었습니다. 이런 점들이 달라졌습니다. Flask → Express로 백엔드를 변경했습니다. 웹 프레임워크는 다양합니다. 제가 많은 프레임워크들을 만져본 것은 아니지만, 되도록이면 자유도가 높은 프레임워크가 필요했습니다. Javascript는 태생이 웹을 위한 언어라 그런지 웹 관련해서는 파이썬 기반의 Django, Flask가 도저히 따라올 수 없는 자유도를 가지고 있음을 느껴 Node.js 위에서 굴러가는 Express 서버를 백엔드 서버로 사용하게 되었습니다. 플랫폼이 바뀌었습니다. 기존에는 R..
PCB 설계는 생각보다 복잡한 과정입니다. 그렇기 때문에 PCB를 설계하기 전에 어떤 식으로, 어떻게 굴러가는지 확인할 필요가 있습니다. 이전 포스팅에서 아주 간단하게 다뤄 드렸습니다만, 이번 포스팅에서 조금은 더 자세히 알아보도록 하겠습니다. 여기에서는 OrCAD를 기준으로 PCB 설계의 Workflow를 설명하겠습니다. 일단 OrCAD를 Trial 버전으로 설치를 해보셨다면, 뭔가 많이 설치되어 있는것을 확인하실 수 있습니다. 각 프로그램들에 대해 설명해드리겠습니다. OrCAD Capture | PCB Schematic을 디자인하는 툴입니다. OrCAD Capture CIS | Component data를 관리합니다. OrCAD PSpice A/D | 회로 시뮬레이션 / 분석을 위한 툴입니다. OrC..
라즈베리파이에 우분투를 올리고, 와이파이를 잡기 위해 여러 삽질을 해봤습니다. 가장 최고이고 편안한 방법을 찾아서 공유합니다. 기존의 방법은 다음과 같았습니다. 1. 유선랜에 연결한다. 2. sudo apt-get install network-manager를 설치한다. 3. sudo nmtui를 통해 TUI(Terminal User Interface) 환경에서 와이파이를 잡는다. 이게 잘 안되는 경우가 많아 다음의 방법으로 간단하게 잡을 수 있었습니다. 1. sudo nano /etc/netplan/50-cloud-init.yaml(없으면 50-init.yaml) 입력 후 수정 wifis: wlan0: dhcp4: true optional: true access-points: "ssid": passwor..
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 PCB 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 대부분의 것들은 거의 끝났습니다. 이제부턴, Intermediate 단계입니다. 지금까지 해온대로, 센서를 조금 바꾸고 HTML에서 메뉴를 조금 추가하고, ros에서 메시지나, 퍼블리셔나 어쨌든 프로토콜을 추가해서 사용한다면 원하는 기능을 모두 추가할 수 있습니다. 그러나, 저는 이 프로젝트의 완성도를 높이기 위해 직접 PCB를 설계해서 필요 부품들을 추가만 할 수 있도록 UNIT을..
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 모듈 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 rosserial로 아두이노에서 ROS 사용하기. 지금까지 ROS + roslibjs + Django 를 통해 ROS를 웹 환경에서 제어하는 데까지 성공했습니다. 이번에는 명령을 내리면, 실제로 그 작업을 수행하는 과정을 구현해보겠습니다. 아두이노에서 ROS를 Native로 사용하긴 어렵지만, rosserial을 이용하면 간단한 Publisher / Subscriber / Servic..
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 모듈 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 ROS Service Server 생성 이전 포스팅에서 roslibjs를 활용해 웹에서 데이터를 요청하고 받는 서비스 클라이언트를 생성했습니다. 위 다이어그램의 녹색 부위는 모두 완료한 셈입니다. 이제 붉은 부분을 해야 합니다. ROS에서도 요청을 받고 처리한 후 웹에 응답해줄 서비스 서버를 만들어야 합니다. 이번에는 C++ 기반의 ROS서비스 서버를 생성해보겠습니다. 아래의 명령어를..
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 모듈 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 roslibjs설치로 웹페이지에 생명 불어넣기 지금까지 HTML +CSS로 웹페이지를 꾸몄습니다. 이전 포스팅들에서 종종 비유했듯, 지금까지 그냥 기초공사와 외벽만 세우고, 인테리어만 했습니다. 전기 없고, 인터넷 없고, 수도와 하수구 없는 집에 사람이 살 수 없듯, HTML과 CSS자체만으로는 어떤 역할도 수행하지 못합니다. 이제 여기에 javascript를 통해 생명을 불어 넣어 ..
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 모듈 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 직접 만든 HTML 호스팅하기 지난 포스팅에서 python manage.py runserver 명령을 통해 서버를 실행해봤습니다. 이번에는 Dashboard가 될 페이지를 만들어 보고, 127.0.0.1:8000에 진입했을 때, 그 html 파일이 불러와지도록 해보겠습니다 ~/catkin_ws/src/cranberry_web/dashboard/templates/dashboard 에 i..
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 모듈 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 가장 먼저 해야 할 일 Django를 설치했으니 이제 웹서버를 구동해보도록 하겠습니다. 대부분 그렇듯, 프로젝트를 먼저 만들어야 합니다. cranberry_web이라는 이름의 프로젝트를 만들겠습니다. cd ~/catkin_ws/src/Cranberry django-admin startproject cranberry_web cd cranberry_web python manage.py m..
Phase 1 | ROS로 조명 및 공조 시스템 제어하기 1. 리눅스에서 ROS 환경 세팅하기 2. ROS 웹 Dashboard 구현 3. ROS와 웹 연동 4. ROS와 NodeMCU(ESP8266, ESP-12)연동 5. NodeMCU를 위한 모듈 설계하기 6. ROS로 NodeMCU 제어하기 7. 루틴 만들고 설정하기 가장 흥미로운 Front-end 생성 지금 하고 있는 ROS IoT 스마트홈 프로젝트는 IT 솔루션으로 치면 SI에 가깝다고 볼 수 있습니다. 대부분 이런 일을 할 때 가장 흥미로운 부분이 있다면 그건 아마 프론트엔드를 만드는 과정일 것입니다. 가장 큰 이유는 일단 상대적으로 구현하기 쉽고, 눈으로 그 결과를 바로 확인할 수 있기 때문입니다. 기획을 할 때도 대부분 프론트엔드를 먼저 ..
· Works/ROS
필요한 우분투와 ROS 버전 확인 설치 전, 리눅스 버전에 대해 설명드리겠습니다. ROS는 Debian, Windows 10 등 다양한 OS에서의 작동을 지원하지만 Ubuntu를 공식지원하며, Ubuntu 환경을 이용하는 유저가 절대다수입니다. 따라서 저희는 Ubuntu 환경에서 ROS를 설치하겠습니다. Ubuntu는 Native나 VM이나 큰 상관이 없습니다. 사용하시는 PC에 Ubuntu를 듀얼부팅으로 설치하기가 꺼려지신다면 VIrtualBox등을 이용해 설치하셔도 됩니다. Ubuntu 버전에 따라 지원되는 ROS의 버전이 다릅니다. 아래의 표에 적힌 Ubuntu 버전과 ROS 버전이 일치하지 않는다면 정상적으로 작동하지 않을 수 있습니다. Ubuntu Version ROS Version Ubuntu..
Whiteknight
'Works' 카테고리의 글 목록 (3 Page)