지금 있는 걸로 IoT 같은 거 해요.
9789 단어 IoTlt
IoTLT Advent Calendaar 2017(neo)의 6일째를 맡게 해주세요!잘 부탁드립니다.
이 부가 달력을 쓰고 무엇을 할지 고민하기로 했지만 눈치챘을 때는 이미 3일 전...그러니까 뭘 사러 갈 시간이 없으니까 안에 있는 것만 사세요!이런 내용.(초보자용!)
필자의 규격
IoT는 인터넷 of Things이기 때문에 이번 목표는'인터넷'을 통해 뭔가를 제대로 하는 것이다.
그래서 나는 집에 있는 마이크로컴퓨터로 스마트폰에 무엇을 알리고 싶다!
준비물
아두노 유노 등도 있었지만GR-SAKURA FULL 처음부터 LAN 커넥터가 있어 골랐다.또한 웹 컴파일러를 사용할 수 있기 때문에 새로운 것을 설치할 필요가 없어 매우 편리하다.보살펴 주셔서 감사합니다.
자!!
거푸집을 준비해서 이걸 썼어요.
V2.20명은 아두노의 라이브러리를 이용할 수 있어 정보도 쉽게 활용할 수 있다는 인상을 준다.
프로젝트 이름을 입력하여 프로젝트를 만듭니다.
이번엔 어렵지 않은 일로grsketch.cpp 파일만 변경합니다.
이더넷 연결
우선, IP 주소를 표시해서 이더넷에 연결할 수 있는지 확인하고 싶습니다.
맥 주소가 임의인 것 같습니다.
gr_sketch.cpp
#include <Ethernet.h>
byte mac[] = {
0x00, 0xAA, 0xBB, 0xCD, 0xDE, 0x12 };
// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;
setup 함수 내에서 DHCP를 통해 연결합니다.참고로 setup 함수는 처음에 한 번만 불러요.
이렇게 하면 연결 시퀀스에 IP 주소가 표시됩니다.
(mac부터 USB로 마이크로컴퓨터를 연결하고 단말기에서
$ ls /dev/tty.*
연결 중인 직렬 장치로 확인한다.$ screen デバイス名 ボーレート(今回は9600)
후 연결이 성공했습니다.Serial.println () 의 내용을 표시합니다.자세한 내용은 언급하지 않습니다.)gr_sketch.cpp
void setup()
{
...
Serial.begin(9600);
while(!Serial.available()); // wait to press key.
Serial.read();
// start the Ethernet connection:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
while(1);
}
// print your local IP address:
Serial.println(Ethernet.localIP());
}
이더넷 연결이 가능한지 확인하면while(!Serial.available());
리뷰가 제공됩니다.IFTT에서 알림 준비
LT 같은 사이트에서도 많이 이용하다 보니 몇 년 전에 등록만 했던 IFTT를 처음 사용해 봤다.가장 일반적인 응용 프로그램이므로 LINE에게 알립니다.
IFTT의 웹 사이트에서 Aplet을 만듭니다.
this에서 웹hooks를 선택하여 임의의 이벤트 이름을 지정하고 트리거를 만듭니다.
that 선택 LINE에서 보낼 메시지를 입력합니다.
또한value1~3을 사용하여 내용을 변형시킬 수 있습니다.
여기까지, 종료를 설정합니다.LINE에게 알립니다.
자신의 열쇠가 웹훅스의 Docomentation 페이지로 간다고 적혀 있어 확인이 필요하다.
쓰기 원본
GR-SAKURA와 함께 있던 파란색 버튼을 누르면 LINE에게 알립니다.
Webhooks의 Doocumentation을 참조하여 POST 또는 GET 요구 사항을 제시하십시오.
gr_sketch.cpp
void loop()
{
...
if (digitalRead(PIN_SW) == LOW)
{
char json[] = "{\"value1\":\"Hello World!!\",\"value2\":\"ボタン押したよ!!\"}";
char size[2];
// if you get a connection, report back via serial:
if ( client.connect(host, 80) )
{
Serial.println("connected to IFTTT server"); // for debug
// Make a HTTP request:
sprintf(s, "POST /trigger/(イベント名)/with/key/(キー) HTTP/1.1");
Serial.println(s); // for debug
client.println(s);
client.println("Host: maker.ifttt.com");
client.println("Cache-Control: no-cache");
client.println("Content-Type: application/JSON");
client.print("Content-Length: ");
sprintf(size, "%d", strlen(json));
client.println(size);
client.println();
client.println(json);
delay(500);
}
}
...
}
확인!!네, 라인에서 이런 알림이 오는 걸 확인했어요!와!
총결산
그래서 처음으로 IoT 같은 일을 제대로 했다.
GR-SAKURA FULL에 LAN 커넥터가 있어서 너무 좋아요...사실 그 후에도 센서로 트리거를 만들어 봤어요!즐거우니까 실용적인 것들과 집안의 에피소드도 해보고 싶어요.(사실 나는 앱을 만들어서 뭔가를 하고 싶어서 OS 업그레이드부터 하고 싶다.)
Reference
이 문제에 관하여(지금 있는 걸로 IoT 같은 거 해요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ikppp_73___/items/f5ce6bbeb7391f48979a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)