Edited at

C言語でECHONET Lite家電を操作

More than 1 year has passed since last update.


はじめに

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アドレスが記載されている。

実行する時は各自の環境に合せて変更する必要がある。

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