지금 있는 걸로 IoT 같은 거 해요.

9789 단어 IoTlt
처음 뵙겠습니다.Qiita 첫 투고!
IoTLT Advent Calendaar 2017(neo)의 6일째를 맡게 해주세요!잘 부탁드립니다.
이 부가 달력을 쓰고 무엇을 할지 고민하기로 했지만 눈치챘을 때는 이미 3일 전...그러니까 뭘 사러 갈 시간이 없으니까 안에 있는 것만 사세요!이런 내용.(초보자용!)
필자의 규격
  • L 토치카 해봤어
  • 하지만 자세히 생각해 보면 실제로 인터넷을 통해 무엇을 한 경험이 없다
  • C 언어를 좋아해요
  • MacBook Air의 OS 과다로 인한 여러 가지 폐단
  • 3일 전 현실
  • 목표
    IoT는 인터넷 of Things이기 때문에 이번 목표는'인터넷'을 통해 뭔가를 제대로 하는 것이다.
    그래서 나는 집에 있는 마이크로컴퓨터로 스마트폰에 무엇을 알리고 싶다!
    준비물
  • 이전에 IoTLT에서 받은 GR-SAKURA FULLL
  • 홈 LAN 케이블
  • 네.집에 와이파이 모듈 같은 고급스러운 물건이 없어서 실을 씁니다.
    아두노 유노 등도 있었지만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 업그레이드부터 하고 싶다.)

    좋은 웹페이지 즐겨찾기