LoginSignup
7
7

More than 5 years have passed since last update.

C言語でECHONET Lite家電を操作

Last updated at Posted at 2016-10-30

はじめに

C言語でECHONET Liteによる家電操作のサンプルコードを載せます
※ECHONET Lite(ISO/IEC 14543-4-3)

やりたいことは
○ 家電製品のON,OFF制御

C言語以外で実行したいときは以下を参照する(今回と同じことが書いてあります)
Ruby版
Python版

環境

os : windows 7
コンパイラ : GNU Compiler Collection(gcc)
対象家電 : 空気清浄機(ECHONET Lite対応)
    =>  sharp KI-EX1100

サンプル

動作状態をONにする

send.c
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

void main(void)
{
  int udp_socket;
  struct sockaddr_in addr;

  char msg[]={
    0x10,0x81,
    0x00,0x00,
    0x05,0xFF,0x01,
    0x01,0x35,0x01,
    0x61,0x01,
    0x80,0x01,
    0x30
  };

  udp_socket = socket(AF_INET, SOCK_DGRAM, 0);
  addr.sin_family = AF_INET;
  addr.sin_port = htons(3610);
  addr.sin_addr.s_addr = inet_addr("192.168.2.166");

  sendto(udp_socket,msg,sizeof(msg), 0,(struct sockaddr *)&addr, sizeof(addr));
  close(udp_socket);
}

① 上記サンプルでは対象の家電を「空気清浄機」にしている。
エアコンなどに変更したい場合は
11-19行の中を変更する。

(例えば) エアコンの動作状態をONにしたい場合は
0x05,0xFF,0x01,
   ↓
0x01,0x30,0x01,
 に変更する

詳しい方法は以下を参照する
ECHONET Liteの電文 作成方法

② IPアドレスの指定
24行目の
inet_addr("192.168.2.166")
は、空気清浄機のIPアドレスが記載されている。
実行する時は各自の環境に合せて変更する必要がある。

上記の①,②を気をつければ実行が可能である。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7