Tag Archives: Blink

C.H.I.P. (2) Web IoT

話題のIoTが、Raspberry Piですでに試したが、今度9ドルコンピュータC.H.I.Pでいろいろ体験すると思う。

まずWebから、LEDのON/OFFを試す。

1)環境作成:

最新状態にする

root@chip:~# apt-get update
root@chip:~# apt-get upgrade

localesを再インストールする。

root@chip:~# apt-get purge locales
root@chip:~# apt-get install locales
root@chip:~# dpkg-reconfigure locales (en_US.UTF-8 を選ぶ)

#これをしないと、下記のエラーは延々と出る。

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

apache2インストール

root@chip:~# apt-get install apache2
root@chip:~# a2enmod cgi.load
root@chip:~# /etc/init.d/apache2 restart

c環境をインストールする。

root@chip:/home# apt-get install gcc make

2)プログラミング

rootの実行権限でLEDを操作するから、最初Perlで簡単に作れると考えたが、うまくいかない。

下記の参考ページで、C言語で作った。

root@chip:/usr/lib/cgi-bin# cat on.c
#include        <stdio.h>

int main()
{
system(“/usr/sbin/i2cset -f -y 0 0x34 0x93 0x1”);
printf(“Content-type: text/htmlnn”);
printf(“<HTML><BODY>”);
printf(“<H2>Hello! On</H2>”);
printf(“</BODY></HTML>”);
return 0;
}
root@chip:/usr/lib/cgi-bin# cat off.c
#include        <stdio.h>

int main()
{
system(“/usr/sbin/i2cset -f -y 0 0x34 0x93 0x0”);
printf(“Content-type: text/htmlnn”);
printf(“<HTML><BODY>”);
printf(“<H2>Hello! Off</H2>”);
printf(“</BODY></HTML>”);
return 0;
}
root@chip:/usr/lib/cgi-bin#

コンパイルする

cc -o on on.c
cc -o off off.c

rootの実行権限を与える

chmod +s /usr/lib/cgi-bin/o*

3)プログラミング実行

最初に、コマンドラインで、LEDのOn/Offを確認する。

root@chip:~# /usr/sbin/i2cset -f -y 0 0x34 0x93 0x1 #On
root@chip:~# /usr/sbin/i2cset -f -y 0 0x34 0x93 0x1 #On

ブラウザから、LEDのOn/Offを試す

http://192.168.0.104/cgi-bin/on
http://192.168.0.104/cgi-bin/off

順調なら、話題のIoTが、まずWebから、LEDのON/OFFを試すことができた。

2016-03-08 (1)

2016-03-08 (2)

これから時間が空いたら、Raspberry Piの温度センサー、WebCameraもこちらに動かしてみる。

あとiBeaconの近接通知機能が試したいので、iBeaconのモジュールを注文した。

参考:

http://null-byte.wonderhowto.com/how-to/introduction-c-h-i-p-by-next-thing-co-iot-hacking-device-0168749/

Raspberry Pi 液晶表示盤のLED制御

数か月前、Raspberry Pi に液晶表示盤を付けたが、バックライトのLEDは常にONのため、夜は眩しい。GPIOからON/OFF制御可能にしたい。

回路図がないのため、ネットでいろいろ調べて、バックライトのLEDは、GPIOに繋ぐと、3.3V に直結したタイプあるそうです。

WebIOPiをインストールして、ブラウザから、すべてGPIO端子ON/OFFして見たが、バックライトのLEDがON/OFF現象が認めない。つまり、購入したものは3.3V に直結したタイプらしい。

基盤の結線を探し、切断してGPIOにつなぎ直し方法もあるが、なかなか決心とタイミングが必要ね。

たまたま液晶表示盤は、PCD8544 LCD使うらしい。そのPCD8544の制御方法を探す際、PCD8544-utils ( https://github.com/acidum/PCD8544-utils )見つかり、おまけに、液晶表示盤改造でバックライトのLED制御する方法まで書いた。小さな抵抗を溶かして、180度回転し、ジャンパー線でコネックターまで繋ぐ方法。

タイミングを見て、改造に取り込んだ。特に上記URLに説明した凹みを作って結線することなく。ケース入りだからそのまま結線でも問題ないと。

2015-04-27 21.51.582015-04-27 21.52.45

結線の正面と裏面、遂に成功した。手元に結線がなく、古い結線付きコネックターの結線をカットして再利用。

2015-04-27 21.51.58

近眼鏡と虫眼鏡の組み合わせて些細作業を進み、一度小さな抵抗が跳ねて見失い、諦めかけた時もあった。

2015-04-27 21.56.23

セット組み直して、WebIOPiから、21番PIN(GPIO9)のON/OFFで、バックライトのLEDがON/OFFが確認した。

これてRaspberry Piに状態変更があるとき、メッセージが届いたとき、バックライトのON/OFF、Blinkなどで表現する手法も増えた。

 

参考文献 肩に乗せてもらった巨人達: