숙련 된 개발자가 IoT를 시작하는 방법


10

저는 다양한 기술과 실시간을 사용하는 숙련 된 개발자입니다. 컴퓨터, 태블릿 또는 모두가 알고있는 친숙한 장치가 아닌 장치를 개발하는 방법을 배우고 싶습니다.

글로벌 쇼핑 사이트는 2 채널 릴레이 모듈, nodeMCU 개발 보드 및 IoT와 관련된 더 많은 하드웨어와 같은 IoT 하드웨어를 제공하는 것으로 나타났습니다. 나는 무엇을 시작 해야할지 전혀 모른다 .

코딩 방법을 알고 있다고 가정하면 첫 번째 IoT 장치 개발을 시작하려면 어떻게해야합니까?


"기타"장치에는 일반 컴퓨터뿐만 아니라 프로세서 또는 마이크로 컨트롤러가 있으며 성능, 사용 가능한 메모리 등에 차이가 있습니다.
Bence Kaulics

9
'경험이 풍부한 개발자'와 '시작하는 방법'질문 사이에 연결이 끊어진 것 같습니다. 매우 간단합니다. 현재 귀하와 관련된 응용 프로그램 (가열, 조명, 자동화)을 찾아서 구현하십시오. 가되면 특정 질문, 당신은 여기에 좋은 답변을해야한다 - 대부분 그들은 원래 프로토 타입에 대한 개선 또는 반복에서 오는 것입니다. 제시된 바와 같이,이 질문은 실제로 의견을 요구하고 있으며, 정답이 분명하지 않습니다.
Sean Houlihane 2012

3
나는 질문의 핵심에 도달하려고 시도하지만 원본 텍스트의 일부는 유지하려고 편집했습니다. OP @TheUnreal이 두 번째 부분에 대해 물어 봅니다. "IoT에 참여하려면 자원이 풍부한 회사가되어야합니까? 아니면이 세상에서도 개인도 그렇게 할 수 있습니까?" 나는 여전히 관련있는 질문이라고 생각하기 때문에 별도의 질문으로.
Simon Munro 2012

답변:


14

이것은 매우 광범위한 질문이지만, 당신뿐만 아니라 다른 사람들에게도 유용한 몇 가지 일반적인 지침을 제공하려고 노력할 것입니다 (따라서 이미 알고있는 것을 게시하면 사과드립니다).

센서 읽기에 대해 문의하는 경우 이는 원격 측정 이며 반드시 IoT 일 필요 는 없습니다. 독립형 PC에서 일부 측정을 읽고 표시하는 많은 프로젝트를 코딩했습니다.

연결된 하드웨어를 제어하려는 경우 SCADA 입니다. 다시, 반드시 인터넷에 연결될 필요는 없습니다.

다음은 IoT에 대한 전반적인 느낌을주는 SCADA 다이어그램입니다. 다이어그램 의 PLC 는 IoT 지원 장치의 센서 및 컨트롤입니다.

SCADA 아키텍처

하드웨어 권장 사항 에서 센서 및 컨트롤러에 대한 하드웨어 권장 사항 을 요청할 수 있습니다 .

또한 코드가 있으면 Stack Overflow 에서 문제에 대한 조언을 얻을 수 있습니다 .

일반적으로 IoT for industry는 클라이언트 / 서버 모델과 관련되며 클라이언트는 하드웨어 장치를 측정 / 제어하고 서버에서 명령을보고 / 수신합니다. 서버에는 일반적으로 데이터베이스가 있으며 관리 및 경보에 대한 보고서를 생성 할 수 있습니다 (수신 된 데이터에 따라 원격 하드웨어가 재구성 / 종료하도록 지시 할 수 있음).

휴! 그 길을 벗어난 소개입니다. 이제 손이 더러워졌습니다.

코딩의 핵심에 들어가려면 소켓을 살펴보고 TCPUDP 의 차이점을 이해하십시오 .

다행스럽게도 수십 년 동안 대부분의 까다로운 작업을 라이브러리에 포함 시켰으므로 RESTful 서비스를 읽어 보는 것이 가장 좋습니다. 귀하의 언어에 따라 수많은 무료 온라인 자습서, 코스 및 비디오가 있습니다. C는 전통적인 임베디드 언어이며, 일부는 C ++을 사용하지만 물론 알고 있거나 편안하게 느끼는 것을 사용하십시오. Python은 매우 인기 있고 배우기 쉬우 며 Raspberry Pi의 권장 언어입니다.

개인적으로, 나는 버그를 알아내는 것이 더 쉽기 때문에 컴파일 된 언어를 해석하는 것을 선호하지만 선택은 전적으로 당신에게 달려 있습니다. USB, 이더넷을 통해 주변 장치에 액세스 할 수있는 뛰어난 지원을 제공하며 업계에서 여전히 일반적인 직렬 포트입니다.

서버 측의 경우 전 세계 서버의 90 % 이상이 여전히 PHP에서 실행되고 있습니다. 그러나 현재 JavaScript로만 수행 할 수 있고 두 언어를 배우고 싶지 않은 브라우저 앱을 코딩하는 사람들이 주로 NodeJS를 사용하고 있습니다. 파일 시스템 및 주변 장치에 액세스하는 브라우저 코드에 대한 제한으로 인해 브라우저 기반 IoT 앱을 개발하지 않는 것이 좋습니다 (그러나 스마트 폰을 위해 개발하려는 경우 Cordova 와 같은 것을 언급 할 것입니다).

시작하려면 Raspberry Pi (Python 또는 C로 코딩)를 권장합니다 .

라즈베리 파이 보드

그리고 나는 * 센서 모자를 강력히 추천합니다. 이것은 단지 예일 뿐이지 만 비싸지 않으며 다음을 포함합니다.

  • 자이로 스코프 – 각속도 센서 : +/- 245 / 500 / 2000dps 가속도계
  • 선형 가속도 센서 : +/- 2 / 4 / 8 / 16g
  • 자력계-자기 센서 : +/- 4/8/12/16
  • 가우스 기압계 : 260 – 1260 hPa 절대 범위 (정확도는 온도 및 압력, 정상 조건에서 +/- 0.1 hPa에 따라 다름)
  • 온도 센서 (0-65 ℃ 범위에서 +/- 2 ℃까지 정확한 온도)
  • 상대 습도 센서 (20-80 % rH 범위에서 +/- 4.5 %, 15-40 ℃ 범위에서 +/- 0.5 decC로 정확)
  • 8x8 RGB LED 매트릭스 디스플레이
  • 작은 5 버튼 조이스틱

센서 보드

그러면 일부 데이터를 수집하여 서버에보고 할 수 있습니다. 데이터를 받고 표시하기 위해 온라인에서 무료 서비스를 찾을 수 있습니다. 다른 SO 사이트에서 일부를 보았지만 어디에 있는지 잊어 버렸습니다.

그러나 아마도 자신의 서버를 코딩하고 싶을 것입니다. 프로그래밍 언어로 PHP를 추천합니다. Linux의 경우 LAMP (Linux, Apache, Mysql & PHP)가 제공됩니다. Windows의 경우 WAMP (Windows… 등) 를 설치해야합니다 .

당신은 선택할 수 있습니다. 저는 산업 응용 분야에서 10 년 이상 XAMPP 를 사용해 왔습니다 . 당신은하지 않습니다 ( "육년 전에 내 자신의 SO 질문에 대한 shaless 플러그를, SQLite는 그냥뿐만 아니라 역할을 할 수 MySQL을 사용하는 SQLite는 또는 MySQL이? 결정하는 방법? "). CRUD에 대해서도 배워야 합니다.

클라이언트 / 센서에서 수신 한 데이터를 바탕으로 간단한 명령으로도 명령을 다시 보낼 수 있습니다 ( "온도가 너무 높음"으로 인해 산업 시스템에서 밸브가 닫힐 수 있음).

실시간으로 경보를 발생시킬 수 있습니다 (온도가 너무 높다는 이메일을 보내십시오).

또한 보고서 생성에 대해 생각할 수도 있습니다. 수신 된 데이터를 보여주는 표로 시작하십시오. 차트 또는 더 멋진 것을 고려하십시오. CSV ( Comma Separated Values) 로 내보내는 옵션을 추가 하여 최종 사용자가 추가 분석 및 조작을 위해 데이터를 스프레드 시트로 가져올 수 있습니다.

당신이 경우 않는 당신이 멋진보고 싶어 결정, 당신은 할 수 있습니다 내가 지금 브라우저에서 보고서 물건 클라이언트 측의 많은 일을 이동 한 것을 몇 년 후, PHP에서 그것을 할,하지만.

일반적으로 원칙을 보려면 단일 페이지 애플리케이션AJAX에 대한 개요를 얻으십시오 . 나는 개인적으로 많은 연구를하고 프로그래밍 언어로 Google의 AngularJS 를 선택 했지만 ( 자습서 가 많고 지원 이 많음 ) 자유롭게 JS, Jquery 등을 자유롭게 사용할 수 있습니다.

브라우저를 코딩하기로 결정한 경우 서버 측에서 NodeJ 를 사용해야 하므로 새로운 프로그래밍 언어를 배우면됩니다.

너무 많은 선택? 죄송합니다 :-(

나는 이것이 당신에게 조언을 해주기를 희망하지만, 질문을 자유롭게하고 여기에 빠진 일반적인 조언이 있는지 알려주세요.


1
고마워 Mawg, 당신이 내가 이미 알고 알고있는 질문의 대부분이 아니라고 말한 대부분의 사람들은 몇 년 동안 PHP와 Javascript뿐만 아니라 corodva와 협력하고 있습니다. UNO R3를 구매하고 거기서 어떻게 진행할 수 있을지 생각합니다.
TheUnreal

1
나는 글을 쓰기 시작했고 멈출 수 없었다 :-) 나는 그것이 다른 사람들을 도울 수 있기를 희망한다. 나는 코르도바를 잘 모른다. '전화 하드웨어, 라임 카메라, SIM, 틸트 센서에 액세스하는 데 좋지만 직렬 포트에 액세스 할 수 있습니까? 그것은 업계 에서 많이 사용되기 때문에 ; 랩톱에 사용하는 USB to serial converter를 사용하면 USB를 통해 데이터를 전송할 수 있습니까? 그리고 이더넷? 계속 ...
Mawg는 모니카 복원

1
... JS는 알고 있지만 임베디드 프로세서에서는 사용하지 않는 것이 좋습니다. 당신 은 할 수 있지만 확실히 정상은 아닙니다. 아마도 파이썬이나 C를 집어들 시간이 있습니까? 아니면 UNO R3 <-> 서버 <-> 브라우저를 의미합니까? 아두 이노를 이미 알고 있다면 꼭 사용하십시오. 나는 R Pi로 전환하지만 그것은 내 개인적인 취향입니다. . 학습 프로젝트를 염두에두고 있습니까? 힌트, 힌트… iot.stackexchange.com/questions/675/… :-)
Mawg는 Monica를

9

숙련 된 개발자는 논리를 이해하고, 코드를 읽고 쓰고, 이해하고, 기타 중요한 기술을 이해할 수 있습니다. 아마도 당신이 가지고 있지 않은 것은 기본 전자 장치에 대한 이해와 작은 장치에서 실행되는 데스크탑에서 코드를 얻는 기술입니다.

잘못된 수준의 복잡성으로 뛰어 들면 까다로울 수 있으며 너무 빨리 포기할 수 있습니다. 예를 들어, 사람들은 ESP8266과 NodeMCU를 권장합니다. 올바른 보드를 얻을 필요가없고 개발 보드에 칩을 장착해야하며 소프트웨어를 가져와야하며 무언가에만 연결해야합니다. 그런 다음 JavaScript를 실행할 수 있습니까? 그것은 당신이 필요로하는 많은 다른 기술이며, 당신은 그 단계 중 하나를 포기할 수 있습니다.

내 추천은 Arduino로 시작하는 것입니다. Arduino가 제조사 커뮤니티에서 차별화를 가져온 곳은 Arduino를 USB 포트에 연결하는 것이 얼마나 쉬운 지에 따라 컴파일, 빌드, 배포 체인이 모두 정렬되어 있습니다. 일부 코드를 작성하고 일부 LED를 매우 빠르게 깜박일 수 있습니다.

또한 공식 Arduino 스타터 키트 부터 시작하는 것이 좋습니다 . 매우 간단하지만 지침이 쉽고 유용한 전자 비트 및 조각 (빵 보드, 점퍼 와이어, LED 등)이 유용합니다.

아두 이노가 얼마나 기본적인지 잘 모르겠습니다. 너무 복잡한 것을 시도하기 전에 전자 제품 및 실습 부품에 대한 열정을 먼저 얻으십시오. 전자 장치가 흥미롭고 더 많은 것을 원한다면 Arduino를 사용하고 더 복잡한 키트를 얻으십시오. BOE Shield-Bot 로봇을 구입했습니다 . 로봇은 최고이거나 저렴한 로봇은 아니지만 서보를 제어하는 ​​방법에 대해 자세히 설명하는 훌륭한 자습서가 있습니다. 또한 훨씬 유용한 비트가 많이 있습니다.

이를 통해 서버 측 소프트웨어를 포기하거나 다시 가져 오거나 더 많은 비트, 납땜 인두, 더 많은 보드 및 구성 요소를 구입할 수 있습니다. 머지 않아 우리와 같은 깨진 꿈의 서랍이 생길 것이다.

Pi를 너무 빨리 사용하지 않는 것이 좋습니다. 그것은 컴퓨터가 아닌 컴퓨터이며, 아날로그 입력과 같은 이해의 여정을 시작할 때 필요한 중요한 기능을 가지고 있지 않습니다. Arduino를 매우 빠르게 능가 할 것입니다 (인터넷에 매우 쉽게 연결되지 않음).하지만 이것이 즐길 수있는 곳인지 확인하기에 좋은 곳입니다.


1
이것은 내 질문에 가장 가까운 대답입니다. 감사합니다.
TheUnreal

6

나는 당신의 첫 번째 질문에 계속 대답 할 것입니다.

당신이 배우고 싶다면 IoT에 관한 책을 추천 할 수는 있지만 직접 검색 할 수 있다고 생각합니다. 그것이 분명하다면, 당신은 당신 자신의 작은 프로젝트를 시작하는 것이 좋습니다. 그것이 실제 문제에 직면하면서 가장 잘 배우는 방법입니다.

무엇을 만들지 결정해야합니다. 다음은 시작하기위한 영감과 멋진 아이디어입니다.

Arduino 프로젝트 -> 마이크로 컨트롤러

라즈베리 파이 프로젝트 -> 마이크로 프로세서 (더 강력한)

hackaday.com- > 혼합 구성 요소

무엇을하고 싶은지 알고 나면 프로젝트 요구 사항을 생각해 내야합니다. 마이크로 컨트롤러, 센서, 액추에이터, 통신 프로토콜 등

가장 인기있는 장치는 Arduino , Raspberrypi 및 기타 모든 친척, 비글 본 블랙 , 양파 등입니다. 가격이 다르고 다른 센서와의 호환성 및 인기도는 더 많습니다. 인기있는 것들은 호환성이 높고 포럼에서 더 많은 지원을합니다.

우리는 당신의 프로젝트에 근거한 요구 사항을 도와 줄 수 있도록 도와드립니다. 행운을 빕니다!


이미 아이디어가 있지만이 세계로 뛰어 들기 전에이 세상을 경험하고 싶습니다. 나는 Uno R3를 구매하기 시작하고 내가가는 즉시 질문을 게시 할 것이라고 생각합니다.
TheUnreal

1
Arduino Uno는 물리적 항목을 제어하는 ​​데는 좋지만 기본적으로 더 나은 마이크로 컨트롤러 또는 컴퓨터를 추가해야하기 때문에 네트워크 프로토콜에 적응하는 데 비용이 많이 듭니다. 때때로 당신은 모두 다른 시간은 네트워크에 직면 시스템을 가지고 한 부분을 찾을 수 대표 아두 이노 같은에 전기 제어 작업
크리스 스트래튼

2

다른 사람들은 질문의 첫 번째 측면에 초점을 맞추 었습니다. 나는 후자에 초점을 맞출 것입니다. 누구나 IoT에 참여할 수 있는지 또는 많은 리소스를 보유한 대기업이어야하는지 물었습니다.

태그 를 탐색하면 모든 서버 쪽이 이미 수행 된 IoT 장치가 있음을 알 수 있습니다. Nest cam, 온도 조절기 등, Amazon Echo, Google Home, 스마트 오븐, 냉장고 등 "모든 사람"만 구입할 수있는 IoT 장치가 많이 있습니다.

많은 신차조차도 원격 제어 또는 감지 대상이 될 수 있지만 아직 통제 대상이 아닐 수도 있습니다. :)

이것은 첫 번째 질문에 대한 답변으로 이어집니다.

첫 IoT 장치 개발을 시작하려면 어떻게해야합니까?

반드시 개발부터 시작할 필요는 없습니다. 더 간단한 것으로 시작할 수 있습니다. 당신이 그것의 개발 측면에 들어가기를 원한다면, 당신 일부 사람들이 제안한 것처럼 간단히 뛰어들 있지만, 간단하게 시작하고 더 복잡한 영역으로 점차 이동할 수있는 옵션이 있습니다.


1
그리고 iot.stackexchange.com/questions/675/… 보다 시작하는 것이 더 좋은 곳은 어디 입니까?
Mawg는 모니카 복원
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.