Study & Project ✏️/node.js 🐣 7

[AWS nvm 설치] AWS, Linux, Linux2, CentOS에서 NVM 설치하기

AWS 및 CentOS에서 nvm을 설치하는 법을 알아보기 전에 왜 설치해야 하는지 알아보자. 왜 NVM을 사용해야할까? 1. nvm은 node version manager의 약자다. 2. nvm에서 여러 버전의 node.js를 설치하고 관리할 수 있으며, 각각 별도의 글로벌 모듈을 설치할 수 있다. 3. nvm을 이용해서 각 버전에 따른 테스트를 빠르게 진행할 수 있다. 다음과 같은 이유로 nvm을 설치해서 사용해야 할 메리트가 굉장히 큰데, AWS나 Linux운영체제에서는 apt-get으로 nvm을 설치할 아카이브가 없다. 그래서 nvm을 설치하는 법을 설명하겠다. 1. nvm설치 AWS에서 Linux를 쓰거나 Ubuntu를 쓰면 sudo apt-get install wget AWS에서 Linux2를..

[socket.io] 프로젝트 준비6 - 아두이노 Socket.io

마지막 웹 페이지는 chart.js를 이용해서 멋들어지게 만들고 싶었으나, 프론트는 정말 마지막의 마지막에 완성하면서 하려고 한다. 그래서!!! 이번 글에서는 4. 웹으로 아두이노 데이터 보내기 를 마무리로 해보겠다. 저번 3. 아두이노에서 보내는 데이터는 다른 이름의 socket으로 보내기 에 이어서 웹으로 다른 이름의 socket을 만들어줬다. // index.html의 script부분 html부분에는 div태그 안에 p태그가 있고 그 부분에 온도 값을 표시해주려고 한다. 아두이노에서 랜덤한 값을 데이터로 보내주고, 웹에서 사용하는 'temp'라는 소켓으로 데이터를 보내주기 위해 잠깐 아두이노 코드를 수정해줬다. // Arduino안의 함수 void socketIOEvent(socketIOmessag..

[socket.io] 프로젝트 준비5 - 아두이노 Socket.io

이번 주말에는 일이 있어서 공부를 하나도 못했다. 저번 글 이후로 Socket.io를 계속 공부했었는데 Socket.io는 꾸준히, 탄탄하게 개발되고 있는 좋은 프로젝트 같다. 이번 글에서는 2. Sever에서 DB에 데이터 보내기 3. 아두이노에서 보내는 데이터는 다른 이름의 socket으로 보내기 4. 웹으로 아두이노 데이터 보내기 중에서 2. Sever에서 DB에 데이터 보내기 3. 아두이노에서 보내는 데이터는 다른 이름의 socket으로 보내기 를 해보겠다. 첫 번째 문제점은 서버에서 아두이노로 데이터를 요청할 때, setInterval()말고는 대안이 없었다는 것이었다. 근데 이 setInterval()을 함수로 만들어서 사용하게 되면 setInterval()을 마구 호출했을 때 마치 여러 함수..

[socket.io] 프로젝트 준비4 - 아두이노 Socket.io

마지막 챕터인 4번째 챕터다 이번 글의 목표는 4. DB에서 소켓 기록 확인 이지만 복잡한 구성이기 때문에 또다시 잘게 쪼개면, 1. DB 생성 후 CRUD구성 2. Sever에서 DB에 데이터 보내기 3. 아두이노에서 보내는 데이터는 다른 이름의 socket으로 보내기 4. 웹으로 아두이노 데이터 보내기 이렇게 나눠놨었다. 오늘은 node.js를 이용하고 mariaDB와 연동되는 DB CRUD를 해보겠다. 필자는 mariaDB 설치 후 HeidiSQL을 이용해서 테스트를 진행했다. mysql을 사용하지 않은 이유는 나중에 상업적으로 사용할 수도 있고, 버전에 따른 오류가 너무 많이 나서 중간에 mariaDB로 갈아탔다. 시간이 2배로 걸렸다!!!!! 화남 화남 mariaDB는 https://mariad..

[socket.io] 프로젝트 준비3 - 아두이노 Socket.io

앞의 글에서는 Web(mobile) - Sever - Arduino 의 연결을 테스트했다 이번 글에서는 Web에서 입력한 메세지로 Arduino를 제어하는 걸 해보겠다. 오늘의 목표 3. Front에서 websocket에 접근 후 아두이노에 변동사항 적용 여기서 Front라고 함은 브라우저에서 입력한 데이터를 말한다. 연결 방향은 Front에서 입력 -> Server가 다시 클라이언트에 메세지 전달 -> 아두이노가 해석 후 동작 간단하지만 꽤 복잡하다. 우선 기본 틀에서 천천히 보자 Front에서 입력을 하면 Server가 받고 다시 Client에게 보내는 부분 (만약에 받은 msg와 보내는 msg의 형식이 바뀌길 원한다면 io.emit 부분의 msg를 바뀌게 만들면 될 것 같다) 이제 아두이노가 해당 ..

[socket.io] 프로젝트 준비2 - 아두이노 Socket.io

앞의 프로젝트 준비 글에서는 라즈베리파이에서 돌릴 node.js socket.io 서버를 구현했다. 이번 글에서는 그 서버에 접속할 아두이노 Client 부분을 완성해보겠다. ㄷㄷ 목표 2. 아두이노(Client)에서 socket에서 접근 아두이노 보드는 ESP8266이 기본 탑재되어 있는 Wemos D1R1을 사용하고 있다. 5000원 미만에 pin도 넉넉하고 여러 프로젝트에서 사용하기에 편하다. webSocket을 기반으로 Socket.io가 만들어졌고 TCP를 기반으로 webSocket이 만들어졌다는데 사실 잘 모른다 이번 프로젝트에서 사용할 라이브러리는 바로 이 녀석! Markus Sattler 형님의 라이브러리인데 웹소켓 관련 별점이 제일 높다. 찾기 힘들다면 여기로 해서 zip 라이브러리를 추..

[socket.io] 프로젝트 준비 - 아두이노 Socket.io

스마트팜과 연동되서 사용할 수 있는 아두이노 - websocket - Front 프로젝트를 구상했다. websocket에서 DB까지 연동되는 프로젝트인 만큼 또다시 열심히 해 보장 프로젝트 구상도 이번 프로젝트 목표 1. 라즈베리파이(Server)에서 node.js를 이용한 socket 구동 2. 아두이노(Client)에서 socket에서 접근 3. Front에서 websocket에 접근 후 아두이노에 변동사항 적용 4. DB에서 소켓 기록 확인 우선 모든 목표는 윈도우에서 테스트 후 라즈베리파이에서 최종 테스트를 마무리할 예정이다. 1. 윈도우(Server)에서 node.js를 이용한 socket 구동 윈도우에서 2가지를 준비해서 테스트해보겠다. 1. socket의 서버 부분 2. 브라우저에서 임시 테..