pinewell's farmer blog 農業と電子工作、ソフトウェア、バイク、車

2013年3月26日

副業に勤しむ・・・。

Filed under: てんさい,副業 — pinewell @ 7:54 PM

朝5:30に起きて、ハウスがプラスの温度になるのを待ち、シルバを6:30頃に剥ぐ。
9:00くらいには温度が上がりすぎるのでハウスのドアをあけたり内側の垂れ幕ビニールの上部のみを下ろして
温度管理。おおよそ20~30℃にしたい。
15:00くらいにはドアを閉める。
16:00くらいになると15℃くらいにさがり、今日の場合は16:15にシルバを掛ける。
基本的に外出は無理。副業に勤しむには持って来い・・・・。
ずいぶん捗った。

2013年3月25日

育苗監視システムのモニター?

Filed under: てんさい,副業,農業機械 — pinewell @ 7:00 PM

今日は午後からコンバイン車庫にOP3人が集合して、バックモニターや無線機などの機材を剥ぐ。
1時間くらいで終了。ワシの育苗監視システムのコトを話すと、興味があり無線LANの環境もあるという、OPが。
同じ集落ということもあるし、ワシも予備パーツが複数あるので1台作成することに。
モニター価格での提供となる。
必要機材のリストを作ってみると、部材で15,000円強。高いのはWLAE-AG300N。これを他の安いのに変更したい・・。
さっそくamazonでPlanexの品物をポチる。その他Arduinoやら液晶ディスプレイやら。
機材が揃えば製作にかかれるのだが、その前に副業のPOSシステム+分析帳票をさっさと仕上げなければ・・・。

今後、同様のシステムは月額幾らの契約にしないとイカンな。
中古パーツやらで固めてるから機材の所有権はワシにしておいて、修理が必要ならパーツで交換した方が良いし。
月額だと育苗時期に集中してしまうか・・・?

2013年3月21日

吹雪・・・、68を点検へ。

Filed under: 副業,農業機械 — pinewell @ 7:00 PM

札幌ではこの時期に積雪100cmを越えているのは数十年ぶりだそうだ。
今日は吹雪。昨日の暖かさはどこへやら。
一日中副業に勤しむ。
午後、68を点検へ。自走して行くのかと思ったら、キャリーカーで引き取りにきた。

2013年3月18日

完全オフ。が、副業を。

Filed under: てんさい,副業 — pinewell @ 7:00 PM

今日は朝からドンヨリした天気。
ハウス内の温度も上がりすぎず、放って置ける。
農作業は完全オフ。

明日の納品に備えて副業に勤しむ。

2013年2月16日

Fedora18でのNVIDIAプロプラ、死活監視。

Filed under: 副業 — pinewell @ 8:55 PM

Fedora18ではまだ頻繁にカーネルアップが行われる。
うっかり更新してしまうと、プロプラドライバのkmod-nvidiaが間に合っておらずフォールバックモードに落ちる・・・・。

んで、これまで(Fedora16まで)はNVIDIAから落としてきて自前でbuildしていたのだが、なにやらエラーでbuildができない。
なので、kmod-nvidiaを使用していたのだが。
今日もうっかりカーネルをアップしてしまい、kmod-nvidaが間に合わなくなった。NVIDIAのファイルもアップされていたので
buildできるだろうと勝手に思っていたのだがやはりエラー。
戻すのもためらわれ、原因調査。
NVIDIAから落としてきていた古めのプロプラドライバを実行。version.hが無いとのエラー。
・・・某掲示板でversion.hの話があったなぁ、と思い出す。vmwareplayerでの話だった。
version.h -> ../generated/uapi/linux/version.h にシンボリックリンク。これでbuildできた。助かった。
いつのころからかFedoraでは?version.hの配置が変わったようで。
簡単に書いているが、解決まで2時間くらいかかった。

もう一つ。
ウチは60Aの契約をしているのだが、ごくごく稀にブレーカーを落とす。
IHを2つ、ご飯を炊いて、ポットでお湯、電子レンジに加湿器。これらを一気に使うとトンだ。
自室はUPSを3台構成しているのでサーバーやらLS-GL類は無事。
すっかりヌケていたのが、2階に設置しているLS-GLでのmotionカメラ。
それもその日に札幌へ出張しているときに気づいた。外出先で確認したいものなのに。やれやれ。
と、いうわけで死活監視を設置することに。UPSで守られたサーバーから必要なものに。
さしあたり、netcat でと思って nc -z host としてみたらそんなオプション無い、と。
不思議に思い、rpm -qf /usr/bin/nc してみるとnmap-ncat-6.01-9.fc18.x86_64。
CentOS6.3では nc-1.84-22.el6.x86_64、モノが違う。

さてさてと思い、CentOSのSRPMをbuildし直して置き換えようととしたらnmap-ncatがあるから
ncはイランだろ、のメッセージ。–forceしたらヤバいと思い、いったんremoveを試みる。
そうすると、結構な量の依存関係が。特にlibvirt関係はヤバい。
仕方なく、SPECファイルを書き換え書き換え、nczなるパッケージを作成。
別物としてインストールして解決。
$ncz -z ls-gl 80
Connection to ls-gl 80 port [tcp/http] succeeded!
死活監視の第一歩。PHPインターフェースでcmanのようなものができたら良いな~。

2013年2月13日

Fedora16->Fedora18

Filed under: 副業 — pinewell @ 8:04 AM

ようやくFedora16からFedora18に移行完了。足掛け3日くらい?
評判どおり、デスクトップまわりは一際使い辛いことになっている。
” No irq handler for vector “はirqbalanceを止める、/etc/modprobed.d/e1000e.confに
alias p16p1 e1000e
alias p56p1 e1000e
options e1000e IntMode=1
を記載。
Fedora18からはTeamingとなるようだが、設定がよくわからなかったので、
旧来からのbondingを使用。NetworkManagerは殺す。

パッケージのsynergyが使えなかった(接続と切断を繰り返す)のでソースからコンパイルした。
KVMによる仮想環境はWindowsServer2003R2がハードディスクを見失い、起動しなくなった。
これはハードディスクにVirtIOを使用していたため。IDEに変更してOK。
PT3も無事に移行。STZ版とした。まぁこっちでは録画はしていないのだが。
今回よりシステムをSSD 32GBにした。
SSDでは /boot と / 。fstabにdiscardオプションを追加。
元々の/bootと/はパーティションを合わせてraid1。/varにマウントして使用する。

2013年2月3日

aquosremocon構想

Filed under: 副業 — pinewell @ 8:57 AM

RaspberryPiで、KURO-RSとの接続。
GPIOのTX,RX使ってのaquosとの接続。
GPIOで自作スイッチとの接続。
GPIOでSFCPADの接続。
が、できた。
lighttpd+PHP5+AJAXでのWebリモコン。
これはできた。関連ファイル群は (wwwroot)/remocon/ フォルダにまとめられている。
*.phpファイルと、リモコン送信用のデータファイル各種、kuro-rs送信用のプログラムとaquos送信用のプログラム。

自作スイッチとSFCPADでのaquosコントロールはこれから。
(今現在はスイッチでaquosへのコントロールコマンド送信はできている。)
スイッチは6個で電源切と各種入力切替のみ。これで運用してみたが実質足りない。
・電源切だけではなく、やはりリモコンと同様に入り切りがしたい。
・入力切替も1~6だけではなく、一つのボタンでテレビに戻したい。地デジ・BS・CS。
・SFCPADの上下でボリューム、左右でチャンネル。SELECTで入力切替(トグル)。
・Aで電源。BでBS。Yで地デジでXがCS。LRはとりあえず保留。
これを実現するとなると、aquosへのコマンド送信だけでは無理。kuro-rsの操作が必要。
aquosへのコマンド送信だけなら、実行ファイル1つで済んだのだが、kuro-rsの操作となると
リモコンデータのファイルが必要。
う~ん、汎用的にするなら/etc/aquosd/ 以下に設定ファイル一切合切を置くように作るのだけど・・。
正直、すでにwebリモコン用のファイルがすでにあるので冗長的で面倒だ。
逆に考えると、ソケットを用いたdaemonを作って、webリモコンについてもこのdaemonに任せるのが
本筋だなぁ・・、とか。
すでにkuro-rsdとか作ってらっしゃる方もいるようだし。

2013年2月2日

RaspberryPiにスーパーファミコンのコントローラを繋ぐ。

Filed under: 副業,未分類 — pinewell @ 5:52 PM

PS2のコントローラを繋ぎたかったのだが、Arduino用のサンプルのみで敷居が高かった。
アナログ部分は使わないので、”ピコーン!”と閃いた。スーパーファミコンのコントローラならもっと簡単じゃね?と。

で、検索してみるとサンプルっぽいもの。さらに、Arduinoに繋ぐlibraryがとても簡潔でわかりやすい。
ので、ハードオフにてドナーとなるコントローラをゲット。1つ105円。
ジャンク本体でもあれば尚良かったのだが、それは無かった。もう扱ってないのだろうか。(ジャンクじゃ無いモノはあった)

さっそくコネクタ部分をばらしてみると、7pinありそうなコネクタだったが、実際は5pin。
電源とGND、その他3pin。Arduinoに繋いで動作確認。問題無し。電源を3.3Vにしてみたが、これも問題無し。
搭載チップMC14021のデータシートでも問題なさそうだった。

電源はraspiの3.3Vから取得。ササササッとコードを書いて、raspiでの動作も確認。
以下ソース

#include <stdio.h>
#include <stdlib.h>
#include <bcm2835.h>
#include <signal.h>
#include <string.h>
#include <strings.h>
#include <unistd.h>
 
#define PIN_DATA  RPI_V2_GPIO_P1_13   //Red
#define PIN_CLOCK RPI_V2_GPIO_P1_11   //Yellow
#define PIN_LATCH RPI_V2_GPIO_P1_15   //Orange
                                      //Brown = Ground
				      //White = VCC
#define SFCPAD_B_BTN	0x0001
#define SFCPAD_Y_BTN	0x0002
#define SFCPAD_SELECT	0x0004
#define SFCPAD_START	0x0008
#define SFCPAD_UP 	0x0010
#define SFCPAD_DOWN	0x0020
#define SFCPAD_LEFT	0x0040
#define SFCPAD_RIGHT	0x0080
#define SFCPAD_A_BTN	0x0100
#define SFCPAD_X_BTN	0x0200
#define SFCPAD_L_BTN	0x0400
#define SFCPAD_R_BTN	0x0800
 
uint16_t readsfcpad() {
	int i;
	uint16_t b;
	uint16_t d;
	uint8_t dataval;
 
		b = 1;
		d = 0;
        	dataval = 1;
		bcm2835_gpio_write(PIN_LATCH,LOW);
		usleep(250);
		for (i = 0;i < 16;i++ ){
			dataval = bcm2835_gpio_lev(PIN_DATA);
			//printf("dataval:%d \n",dataval);
			if ( dataval == 0 ) {
				d = d | b;
			}
			b = b<<1;
			bcm2835_gpio_write(PIN_CLOCK,HIGH);
			usleep(500);
			bcm2835_gpio_write(PIN_CLOCK,LOW);
		}	
		bcm2835_gpio_write(PIN_LATCH,HIGH);
	return d;
}
 
int main(int argc,char **argv)
{
	//GPIOを初期化
	if (!bcm2835_init()) { 
		printf("bcm2835 init error.\n");
		exit(1); 
	}
 
	//PINの設定
	bcm2835_gpio_fsel(PIN_DATA ,BCM2835_GPIO_FSEL_INPT);
	bcm2835_gpio_fsel(PIN_CLOCK,BCM2835_GPIO_FSEL_OUTP);
	bcm2835_gpio_fsel(PIN_LATCH,BCM2835_GPIO_FSEL_OUTP);
 
	//VCCまでプルアップ
	bcm2835_gpio_set_pud(PIN_DATA,BCM2835_GPIO_PUD_UP);
 
	//SFC_PAD との通信初期化
	bcm2835_gpio_write(PIN_CLOCK,LOW);
	bcm2835_gpio_write(PIN_LATCH,HIGH);
 
	uint16_t rd;
	while(1) {
		//ボタンの状態を読み、
		rd = readsfcpad();	
		if (rd != 0) {
			//ビット演算により、ボタンが押されているか
			if ( (rd & SFCPAD_B_BTN	) == SFCPAD_B_BTN)  { printf("B\n");   }
	                if ( (rd & SFCPAD_Y_BTN	) == SFCPAD_Y_BTN)  { printf("Y\n");   }
			if ( (rd & SFCPAD_SELECT) == SFCPAD_SELECT) { printf("Sel\n"); }
			if ( (rd & SFCPAD_START	) == SFCPAD_START)  { printf("Sta\n"); }
			if ( (rd & SFCPAD_UP 	) == SFCPAD_UP )    { printf("UP\n");  }
			if ( (rd & SFCPAD_DOWN	) == SFCPAD_DOWN)   { printf("Do\n");  }
			if ( (rd & SFCPAD_LEFT	) == SFCPAD_LEFT)   { printf("Le\n");  }
			if ( (rd & SFCPAD_RIGHT	) == SFCPAD_RIGHT)  { printf("Ri\n");  }
			if ( (rd & SFCPAD_A_BTN	) == SFCPAD_A_BTN)  { printf("A\n");   }
			if ( (rd & SFCPAD_X_BTN	) == SFCPAD_X_BTN)  { printf("X\n");   }
			if ( (rd & SFCPAD_L_BTN	) == SFCPAD_L_BTN)  { printf("L\n");   }
			if ( (rd & SFCPAD_R_BTN	) == SFCPAD_R_BTN)  { printf("R\n");   }
		}
	}
}

2013年1月30日

ノートパソコン

Filed under: 副業 — pinewell @ 9:47 AM

以前より15,000円くらいのWindowsVista以降搭載ノートパソコンを探していた。
なかなか無くて、タブレット+USBキーボード+スマフォのテザリングでリモートデスクトップでも
良いかと思っていた所、先日、某市のハードオフにて5,000円のノートパソコンを発見。
数あるジャンク品のなかで、それだけはHDD有り。(OSは無し)
raspiやらLS-GLで2.5inchHDDが欲しかったこともあり、先日札幌で中古を探しても安くなかった。
仮にHDDを1,500円で買ったとしてもノートPCが3,500円で買えることになる。
安めのSSDを買って換装すればまだまだ使えるだろうと。
Lenovo 3000 C200。スペックは、
CPU ●CeleronM 430(WindowsVistaモデル)
チップセット ●945GM(WindowsVistaモデル)
メモリ ●1GBに増設済み
ディスプレイ ●15.0V型TFT液晶(1,024×768ドット)
HDD ●80GB
光学ドライブ ●CD-RW&DVDコンボ・ドライブ、
無線LAN 標準装備(Lenovo IEEE802.11b/g ワイヤレスLAN(Wi-Fi準拠))
だった。
スマフォで検索しても、10,000円より下ということは無かったので、思わず購入。

自宅に戻り、HDDのチェックを行い問題無いことを確かめ、Windows7をインストール。問題無し。おぉ、使えるねぇ。
裏を見て、簡単に外せるネジと蓋を開けてみる(3ヶ所)。
メモリはBuffaloの1GBx1枚に換装されている。・・・あれ?これってウチで以前BuffSHOPのジャンク箱に入っていたメモリが使えるじゃん。
って、ことで1GBx1枚が2GBx2枚の4GBに換装。(が、チップセットの制限で3GBまでの認識となる。)
HDDの蓋を開けてみると換装は容易。NTT-XストアでSP032GBSS2T10S25 を発注。3,703円。
もうひとつの蓋はCPUファンとCPUソケットの蓋だった。ワシはあまりノートパソコンを買っていなかったので知らなかったのだが、
この頃のCPUはSocketMで構成されており、CPUの換装も容易だった。
まぁしかしBIOSの対応状況はメーカー製PCということで不明。
Celeron M430は 1.73 GHz (133×13) / FSB533MHz ということなので、FSB800MHzは対応していないかもしれない。
悩んだ結果、中古価格もこなれている Core2 Duo T5600/1.83G/667 をチョイス。ヤフオクゲット。
無事、BIOSでも認識して換装成功となった。

SSD・CPU・メモリーが換装されて、新生Lenovo 3000 C200。
心配だったのはCore2Duoの発熱。Windows8proをインストールしてOCCTを動作させたところ、MAX84℃で高値安定。
1時間のテストを乗り越えたのでまぁ通常使用には問題無いだろうと思う。

本体:5,250円
SSD:3,703円
メモリ:死蔵品だったので0円
CPU:2,160円
——————–
Total: 11,113円
予定どおり、15,000円以内で必要十分なスペックのノートPCが手に入り満足。

SSDの効果もあるがWindows8は起動が早くて良い。ただ、他に良い所は無い。はっきり言って使い辛い。

・・・本当はDELLのCore i3 搭載15インチノート 24,980円が欲しかったのだが。(新規かつ法人限定だったため購入不可だった)

2013年1月28日

RaspberryPiのリモコン化3

Filed under: 副業 — pinewell @ 2:40 PM

リモコンのindex.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
<title>リモコン</title>
<script type="text/javascript">
<!--
function sendIr(cmdstr,port){
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open('GET', 'sendIr.php?cmdstr='+cmdstr+'&port='+port, true);
    xmlhttp.onreadystatechange = function()
        {
            if (xmlhttp.readyState == 4  && xmlhttp.status == 200)
            {
 
            }
        }
    xmlhttp.send(null);
}
function sendrs(cmdstr){
 
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open('GET', 'sendrs.php?cmd='+cmdstr, true);
    xmlhttp.onreadystatechange = function()
       {
            if (xmlhttp.readyState == 4  && xmlhttp.status == 200)
            {
 
            }
        }
    xmlhttp.send(null);
}
 
//-->
</script>
</head>
<body>
<div style="text-align: center">テレビ<br>
<hr>
<INPUT type="Button" value="電源ON"       name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('TVPWR',3);">
<INPUT type="Button" value="電源OFF"      name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendrs('1');">
<br>
<INPUT type="Button" value="チャンネル↑"   name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendrs('7');">
<INPUT type="Button" value="チャンネル↓"   name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendrs('8');">
<br>
<INPUT type="Button" value="ボリューム↑"   name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('TVVOU',3)">
<INPUT type="Button" value="ボリューム↓"   name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('TVVOD',3)">
<br>
<INPUT type="Button" value="Blu-Ray"     name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendrs('2');">
<INPUT type="Button" value="LinkTheater" name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendrs('3');">
<br>
<INPUT type="Button" value="AVAMP"       name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendrs('4');">
<INPUT type="Button" value="PS2"         name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendrs('5');">
<br>
<INPUT type="Button" value="Wii"         name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendrs('6');">
<INPUT type="Button" value="入力切替"      name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('TVINP',3)">
<br>
<INPUT type="Button" value="地デジ"        name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendrs('9');">
<INPUT type="Button" value="BS"          name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendrs('10');">
<br>
<INPUT type="Button" value="CS"          name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendrs('11');">
<INPUT type="Button" value="消音"          name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendrs('12');">
 
<hr>AVアンプ<br>
<INPUT type="Button" value="電源"          name="btnTVPOWOFF" style="WIDTH: 290px; HEIGHT: 36px" ONCLICK="sendIr('AMPPWR',1)">
<br>
<INPUT type="Button" value="ボリューム↑"   name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPVOU',1)">
<INPUT type="Button" value="ボリューム↓"   name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPVOD',1)">
<br>
<INPUT type="Button" value="BD/DVD"      name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPBD',1)">
<INPUT type="Button" value="CBL/SAT"     name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPCBL',1)">
<br>
<INPUT type="Button" value="STB/DVR"     name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPSTB',1)">
<INPUT type="Button" value="GAME"        name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPGAME',1)">
<br>
<INPUT type="Button" value="PC"          name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPPC',1)">
<INPUT type="Button" value="AUX"         name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPAUX',1)">
<br>
<INPUT type="Button" value="AM"          name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPAM',1)">
<INPUT type="Button" value="FM"          name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPFM',1)">
<br>
<INPUT type="Button" value="TV/CD"       name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPTV',1)">
<INPUT type="Button" value="NET"         name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPNET',1)">
<br>
<INPUT type="Button" value="USB"         name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPUSB',1)">
<INPUT type="Button" value=""            name=""  style="WIDTH: 142px; HEIGHT: 36px" >
<br>
<INPUT type="Button" value="↑"           name="btnTVPOWOFF" style="WIDTH: 290px; HEIGHT: 36px" ONCLICK="sendIr('AMPUP',1)">
<br>
<INPUT type="Button" value="←"           name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPLEFT',1)">
<INPUT type="Button" value="→"           name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPRIGHT',1)">
<br>
<INPUT type="Button" value="↓"           name="btnTVPOWON"  style="WIDTH: 290px; HEIGHT: 36px" ONCLICK="sendIr('AMPDOWN',1)">
 
<br>
<INPUT type="Button" value="ENTER"       name="btnTVPOWOFF" style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPENT',1)">
<INPUT type="Button" value="RETURN"      name="btnTVPOWON"  style="WIDTH: 142px; HEIGHT: 36px" ONCLICK="sendIr('AMPRET',1)">
</div>
</body>
</html>

index.htmlからajaxで呼ばれるsendrs.php

<?php
	if (!isset($_GET['cmd'])) { $cmd=1;} else {$cmd=$_GET['cmd'];}		 
	exec(dirname(__FILE__)."/sendrc ".$cmd);
?>

同じくsendIr.php

<?php
	if (!isset($_GET['cmdstr'])) { $cmdstr="NULL";} else {$cmdstr=$_GET['cmdstr'];}
	if (!isset($_GET['port'])) { $port=1;    } else {$port=$_GET['port'];}
	exec(dirname(__FILE__)."/sendIr ".$cmdstr." ".$port." /dev/ttyUSB0");
?>

これで、スマフォでもリモコンが快適に。
とりあえず、AVアンプとテレビだけだが。
なにかケースを作らなければ。

« Newer PostsOlder Posts »

Powered by WordPress