最近の投稿
最近のコメント
表示回数の多いページ

Archive for the ‘電子工作ネタ’ Category

クルマやバイクなどのメカ好きにはたまらないパラダイスを発見!アップガレージで3KJエンジンとE51エルグランドのリアガーニッシュをGET!

今年もお盆の時期がやってまいりました。。。

無宗教の小生にとっては、何の意味もないイベントではあるものの、世の中は夏休みシーズンとなることに合わせて、小生も夏休みです。。。

 

 

先日、ネットをウロウロしていると、メカ好きにはたまらないお店を発見!

 

アップガレージってお店です!

 

このお店には、クルマやバイクなんかの中古部品を販売していて、中でも訳ありパーツは、ちょっとした修理ができる方々であれば、もう超激安で部品を調達できます。

小生も間違いなく、そちら側のちょっとした修理をするのに生き甲斐を感じるタイプなので、もうこういうお店はパラダイスです。

自宅の近くにもあるみたい。。

 

とりあえず、サイトの在庫商品を探してみると。。。

 

3KJエンジンがなんと2990円!!!

E51エルグランドのリアアッパーガーニッシュが1990円!!!

 

もう、最高です!

お宝の山!!!

 

しかも、3KJエンジンは名古屋中川店、E51リアアッパーガーニッシュは大阪門真店といずれも、今回の夏休みで大阪に帰省する時の経路で寄っていける範囲!!

 

もうこれは寄ってGETするしかないということで。。。

 

GETしちゃいました。。。リアガーニッシュは、以前に試作品として作ってみた流れるウインカーにでもしてみましょうかね。。。

(詳しくは、祝!『流れるウインカー』解禁!ということなのでちょっと作ってみる!(とりあえずブレーキランプを流してみる実験編 を見てね)

 

3KJエンジンは、今のパワー不足なエンジンをスワップさせるために、全部オーバーホールしてバリバリに仕上げましょうかね!

(以前はこんなことやってます!3KJ君のメンテナンスでもやりましょうかね。。。  とか もう27年もの!3KJ JOG君のエンジンオーバーホールをやってみた!

 

お得なパーツをGETでき、秋に向かって、かなり楽しみができました!

すんばらしいお店で超おすすめ!

Pocket

古いバッテリーを再生する???本当か?デサルフェーターを試してみる!!!

以前よりかなり気になっていたデサルフェーターなるもの!!!

 

クルマのバッテリーに使われている鉛蓄電池を長期使用可能にするといったものであったり、劣化した状態のモノを復活させるといったようなことを可能にするよいうもんですな。。。

Alastair Couperさんという方が、ずいぶん以前に実証実験されてそれなりに効果があったということで、電子工作に詳しい方々がいろんな改良を加えて亜種が巷で発生してますね。。。

 

そもそも、鉛蓄電池というものは、充電しているときではない状態(放電中ですね)では、電極の鉛に結晶ができてしまう状態となって、それが電池そのものの容量を減少させてしまう原因となってしまう性質なようです。。。

これをサルフェーションようで、この結晶を電気的な衝撃によって破壊して、元の状態に戻すための装置をデサルフェーターとか、パルサーとかいうようです。。。

(小生は高校生の時は化学が得意で、高校生の3年間の定期試験で唯一、100点をとった科目ではあるものの、今となっては、なんの役にはたってないですね。。。)

 

小生は、毎日のようにクルマにはお世話になっているので、E51エルグランド君のバッテリーは、あまりこのサルフェーションというような状態にはならないとは思えるものの、以前に作成した自作ソーラーパネルで使用しているバッテリーは、太陽光が当たっていない夜間は、ぜんぜん充電されないんで、ほぼ放電状態となり、サルフレーションは当然ながら発生してしまうんですよね。。。

 

ということいで、今回は、ソーラーパネル用のバッテリーのデサルフェーターを作ろうととりあえず計画してみた。。。

 

ネット先人の情報を集めて、いざ製作してみようと部品を探してみると。。。。

この仕組みの肝である、電力を集めていっきに吐き出す役割のコイルがどうやっても入手できません。。。

ネットの情報なんかでは、いろんなバージョンがあるようで、トロイダルコイルで9A1000uHを使ってなんてものもありましたが、とても、おなじみの秋葉原の秋月でも町田のサトー電気でもそんな規格のモノは入手できず。。

 

さらにいろいろネット情報で調べるも、いろんなバージョンがあってもう訳がわかりません。。。。ホンマに効果のあるバージョンってどれなんやろか。。。さっぱりわかりまへん。。。

 

基本的な動作原理は、一定周期でパルスを発生させて、そのパルスに続く余韻(?)で、固着したサルフェーションを溶解して元の希硫酸に還元させるってことなんでしょな。。。

その還元させるためのパルスがどのくらいの周期でどのくらいの電圧で与えればいいのかってことで、いろんなバージョンがあるってことなんでしょう。。

 

まぁいづれにせよ、この手のモノのノウハウは全くと言っていい程、ないので、なんか実績のあるものを元にいろいろと改良をした方が、この手のモノを理解できる早道かと思い、いつもの中国のaliexpressで完成品があるか調べてみました。。。。

 

やっぱりあるもんですね。。。

Alastair Couperさんのオリジナル回路に近いものが製品化してるようです。。。

 

っで、入手してみたのがこれ!

US$で10$弱くらいなんで、日本円にして1000円ちょっと!



(上記のバナーをクリックして検索条件に”desulfator”と入力すれば出てきますよ!!!)

 

 

これなら、部品集めのためにアキバへ行ったり、秋月の送料払ってたりするより安いんで、まずはこれを買ってみました。。

ホンマに効果があるかもわからんですしね。。

 

 

そんで、以前に作ったソーラーパネルに。。。。

(製作した時の記事はこちら いやー大変やった!ソーラーセルをつなぎ合わせてソーラーパネルをDIYしてみた! )

繋がってるバッテリーにつないでみました。。。

こんな感じ。。。。

これも2年間くらい充電もしてないような放置状態でしたが。。。。

いちおうは、端子間電圧で13.14V!!!

まぁお日様が結構当たってるときやったから、まぁまぁ発電してる状態だったんでね。。。ええかんじやったんかね。

つないだら、コイルから発生するキーンっていう高周波な音がして動作してるんやなーって感じです。。。

 

念のために比重を計ってみるのと電極の状態をみてみると。。。

>【照明・電工関連】 AP バッテリーハイドロメーター [アストロプロダクツ・ASTROPRODUCTS]

価格:518円
(2017/3/26 06:57時点)
感想(0件)

プラス側から1番目は。。。

全然イケるやん!!!あんまりサルフレーションないカモね、、、

 

2番目は。。。。。。

おっ!これはギリギリってとこの比重!!!

電極の見た目は特にサルフレーションはないみたいやけどなー

 

3番目は。。。

これもなかなかええ感じ。。。

これも、電極の見た目は特にサルフレーションはないみたい。。。。

 

4番目は。。。。。

 

これもなかなかええ感じ。。。

これも、電極の見た目は特にサルフレーションはないみたい。。。。

 

5番目は。。。

 

これもなかなかええ感じ。。。

これも、電極の見た目は特にサルフレーションはないみたい。。。。

 

最後!6番目。。。。

まぁこれも大丈夫かな。。。

 

ということで、バッテリー自体は特に問題はなさそう。。。

でも、太陽電池で充電してることもあるので、太陽光が無い夜間は放電してしまうんで、とりあえずデサルフェーターつけときゃサルフレーションはつかないかな。。。。

 

まぁしばらくつけといてどうなるか観察してみよー!!!

 

Pocket

秋月のコンデンサの容量を計れる デジタル容量計キット 06001 を作ってみた

ここ最近は、なんだかんだで電子工作をする機会が多く、電子工作では多くの場合に使われる抵抗やコンデンサに触れる機会も当然増えるわけです。。。

この抵抗は抵抗の本体に数本の色の帯が描かれて、その抵抗が何Ωかがわかるようになってたりしますね。。。

【一般財団法人日本アマチュア無線連盟さんの抵抗のカラーコード(抵抗値)の読み方】

http://www.jarl.org/Japanese/7_Technical/lib1/teikou.htm

 

しかしながら、50歳を超えたオヤジの視力では、この小さなパターンを識別するにはハードルは高く、さらに、微妙な色の違いなんてわかりゃしまへん!!

1/4Wくらいの大きさであればなんとかガンバる気にはなるものの、1/8Wサイズであればもう無理!!!

なのでテスターを使って判別します。。。

抵抗は簡単にテスターで測って判別ができるものの、そういえばコンデンサって容量を測るってできないのかなって疑問が。。。

ピコクラスのコンデンサは、抵抗より判別は厳しく、虫眼鏡でみてもなにが書かれているのかサッパリわからん。。。

なので、この容量を測れるものがあれば便利やなーと思ってさっそくグーグル先生に聞いてみると。。。。

やっぱりあるんですね。。。C メーターっていうんですね。

 

でも、毎日、電子工作するわけでもなく、ましてやプロでもないので、わざわざ高価なCメーターを買うのももったいない。。。

 

ってことで、いつもの秋月電子で探してみると。。

 

ありました!!

デジタル容量計キット 06001

http://akizukidenshi.com/catalog/g/gK-03145/

 

これなら950円くらいなんでまぁいいかということで早速購入!

こんな感じ。。。

まぁ組み立てキットなんでみんなバラバラな状態ですな。。

さっそく組み立て開始。。。

まずは高さの低い抵抗からはんだ付け。。。

ウワサの1/8W抵抗。。。。うー!!!!見えん!!!!

やっぱりテスターで測って判別。。。

コンデンサやらダイオードやらクリスタルやらを取り付けて。。。

ICソケットやスイッチ、DCコネクター、7セグを取り付けて完成!!!

キットの中にはICソケットは板バネと丸ピン、プッシュボタンは小さなタクトスイッチとちょっと大きなプッシュボタンの2種類が入っててどちらかを選べるようになってます。。

小生は丸ピン好きなので丸ピンのソケットと、年寄りなんで大きいプッシュボタンを選択です!

 

っでいよいよ動作確認してみることに。。。

 

動作電源の仕様は、8〜16V 30mAってことみたいなので、手持ちの12V2Aのスイッチング電源をつないで確認

 

電源をつないで、プッシュボタンを押してとりあえず0にリセットさせて測定してみる。。。

まずは使い古しのケミコンの50V4.7uF

測定結果は、4.76uF!

いい感じ。。。

次は積層セラミックの0.1uF!

測定結果は、124nF???

nFって単位はあまり使われないのでわかりにくいけどuFに換算すると0.124uFですな。。。

これもいい感じ。。。

次はポリプロピレンの0.15uF

測定結果は、168nFなので0.168uF!!

これもいい感じ。。

 

比較できる計測器がないので正しいかは正確に判断はできんけど、まぁそれなりの数値が出てるから大丈夫やろ!

そう信じることにしよ!

まぁそれなりに使えそうです!

これでちっちゃな表記を読まなくてすみそうや!!!

やれやれ。。。。

 

追記

ちょっとした知人(実は会社のえらい人なんですよ。。。じつは。。。)がraspberry piを活用していろんなことをやってる様子を記したブログをはじめました!

ぜひ、当サイト共々、よろしくお願いします。。

【60爺の手習い】

http://www.mizutan.com/

 

Pocket

IoT支える有望なデバイスを使って今度は、ESP-WROOM-02を使ってさらに、MCP3208でAD変換をして多くのアナログデータを制御してみた!

前回、ESP8266のnodemcpバージョンを使って、ソーラーパネルで発電してバッテリーに蓄電する電圧ロガーを作ってみましたが。。。

今回は、また新たにESP8266のESP-WROOM-02バージョンを使って、前回のバッテリー電圧だけじゃなくて、ソーラーパネルの発電量とソーラーパネル周辺の明るさをデーター化できるように新たに作ってみました。。。

 

ESP8266はすでにご存じの通り、アナログ入力のポートは1個しかなくて、アナログセンサーなどを複数つなぐのはちょっと面倒なことをしなけりゃいかんかったんですよね。。。

そんならデジタルデバイスを使えばええやんというご意見が聞こえてきそうですけど、アナログデバイスは、価格が安いとか、回路が簡単いうメリットがあるし、なにより、”味のある数値”(なんじゃそりゃ!)が出るということもあり結構すきなんですよねー!

 

ということもあり、ESP8266で使えるアナログポートを増やして、たんまり、アナログな味に浸れるバージョンを前回の発展形として作ってみました。。

 

今回は、前回3つ入手したうちの2つ目の種類である、ESP-WROOM-02を使ってみます。

今回は、アナログ入力が3つ必要となるので、ESP8266とMCP3208というADコンバーターをSPIで繋いで、アナログポートを増やして作ります。。

 

これは、前回使用した、nodemcpバージョンのように、USBシリアルやら、レギュレータやらは一切なくて、単にチップだけで構成されています。

なので、単純にプログラムを書き込むだけでも、それなりのUSBシリアルを介した回路を組んでやる必要があるんですよね。。

 

詳しくは、ESP8266 書き込み でググってみてください。。

 

まぁ、ネットの情報を元に作ってみたのがこんな感じ。。。

上のブレッドボードのヤツが今回作ってみたやつ!

(下は前回製作した、nodemcuバージョンのやつですな。)

 

右上の青い変な形をしている基盤に乗っかってるのが、ESP-WROOM-02

 

その下のちょっと小さな基盤が、USBシリアルコンバーター

 

こんな感じ。。。

 

 

ブレッドボードのちょうど中心にあるのが、ADコンバーターのMCP3208

こんな感じ。。

まぁフツーのICの形なんで、見た目わかりません。。。

このADコンバーターは8ch分のアナログ入力が可能で、12bitの分解能力がある優れもの!

でも300円弱なんでコストパフォーマンスは高いですな。

 

これに、0chには、バッテリーの端子間電圧

1chには、ソーラーパネルの電圧

2chには、CDSを付けて、明るさを数値化していることにしてみました。。

 

っで、肝心かなめのプログラムは。。。

<br />
extern &quot;C&quot;{<br />
 #include &lt;spi.h&gt;<br />
 #include &lt;spi_register.h&gt;<br />
 }<br />
 #include &lt;ESP8266WiFi.h&gt;<br />
 #include &lt;ESP8266HTTPClient.h&gt;&lt;/pre&gt;<br />
char ssid[] = &quot;xxxxxxxxxxxxx&quot;;<br />
char password[] = &quot;xxxxxxxxxxxxxxxxxxxxxxx&quot;;<br />
int wifipin = 16;<br />
int accpin = 5;</p>
<p>void setup() {</p>
<p>Serial.begin(115200);<br />
Serial.println(&quot;&quot;);</p>
<p>spi_init(HSPI);</p>
<p>pinMode(wifipin,OUTPUT);<br />
pinMode(accpin,OUTPUT);</p>
<p>delay(1000);</p>
<p>digitalWrite(wifipin,LOW);<br />
connectWifi();<br />
digitalWrite(wifipin,HIGH);</p>
<p>delay(1000);</p>
<p>}</p>
<p>void loop() {</p>
<p>digitalWrite(accpin,HIGH);</p>
<p>String value_data = get_value();</p>
<p>String acc_url = &quot;http://xxxxxxxxxxxxxxxxxxxxxxx?&quot;;<br />
String url_string = acc_url + value_data;</p>
<p>Serial.println(url_string);</p>
<p>char buf[256];<br />
url_string.toCharArray(buf,256);</p>
<p>String result_data = getPageSource(buf);</p>
<p>Serial.println(result_data);<br />
digitalWrite(accpin,LOW);</p>
<p>delay(60000);</p>
<p>}</p>
<p>void connectWifi() {</p>
<p>WiFi.disconnect();<br />
delay(250);</p>
<p>Serial.println(&quot;&quot;);<br />
Serial.println(&quot;Status : &quot; + WiFi.status());<br />
Serial.println(&quot;SSID : &quot; + WiFi.SSID());</p>
<p>WiFi.mode(WIFI_STA);<br />
delay(100);<br />
WiFi.begin(ssid, password);</p>
<p>Serial.println(&quot;ssid : &quot; + String(ssid));</p>
<p>while (WiFi.status() != WL_CONNECTED) {<br />
Serial.print(&quot;.&quot;);<br />
delay(500);<br />
}<br />
Serial.println(&quot;&quot;);<br />
Serial.println(&quot;connected!&quot;);<br />
}</p>
<p>String getPageSource(char host[]) {</p>
<p>Serial.println(host);</p>
<p>HTTPClient http;</p>
<p>http.begin(host);<br />
int httpCode = http.GET();</p>
<p>String result = &quot;&quot;;</p>
<p>if (httpCode &lt; 0) {<br />
result = Serial.println(&quot;Error!&quot;);<br />
} else if (http.getSize() &lt; 0) {<br />
result = &quot;size is invalid&quot;;<br />
} else {<br />
result = http.getString();<br />
}</p>
<p>http.end();<br />
return result;<br />
}</p>
<p>String get_value() {</p>
<p>uint32 val0 = check(0);<br />
uint32 val1 = check(1);<br />
uint32 val2 = check(2);</p>
<p>String vale_data = &quot;ba=&quot; + String(val0) + &quot;&amp;so=&quot; + String(val1) + &quot;&amp;br=&quot; + String(val2);</p>
<p>Serial.print(&quot; Battery Voltage : &quot;);<br />
Serial.println(val0);<br />
Serial.print(&quot; Solar Pannel Voltage : &quot;);<br />
Serial.println(val1);<br />
Serial.print(&quot; Brightness : &quot;);<br />
Serial.println(val2);</p>
<p>return vale_data;</p>
<p>}</p>
<p>uint32 check(int channel) {<br />
uint8 cmd = (0b11 &lt;&lt; 3) | channel;</p>
<p>const uint32 COMMAND_LENGTH = 5;<br />
const uint32 RESPONSE_LENGTH = 12;</p>
<p>uint32 retval = spi_transaction(HSPI, 0, 0, 0, 0, COMMAND_LENGTH, cmd, RESPONSE_LENGTH, 0);</p>
<p>retval = retval &amp; 0x3FF; // mask to 10-bit value</p>
<p>return retval;<br />
}</p>
<p>

こんな感じ。。。

多くのネットの諸先輩方の献身的な情報公開によってSPIの接続のとこをはちょっと悩みましたけど。。。

なんとか動きました!!!

 

この情報で取得した結果は、前回同様!!

http://norisuke.servehttp.com/denatsu-graph.html に公開してますんで見てみてね!

 

 

Pocket

IoTには欠かせない代物のESP8266を使ってソーラーパネルの充電状態を監視する電圧ロガーを作ってみた!

以前に製作した自作ソーラーパネルは順調に稼働して、バッテリーはいつも満充電状態で保てており、しかも、中国製デサルフェーターもつけていて、サルフェーションも発生させないようにしてとりあえず安心安心です。。。

いよいよ4月となり、春がやってきて、お天道様も活発に活動されてきてるので、ますますソーラー発電は、いい感じに発電してくれるだろとは思ってはいるものの、そういえばその充電状態ってどんな感じなんだろうかとふと疑問が。。。

それならばということで、近頃のなんでもインターネットに繋いじゃうという、『IoT』のブームに乗っかって、自作ソーラーパネルで発電した電力を蓄電池に充電するときの、バッテリー端子間の電圧を一定周期で測って、それを見れるようにしちゃいましょう!!!

 

そんな安易な考えのもと、どんな仕様にするかを検討。。。

とりあえず、自作ソーラーパネルも充電システムもベランダにあるので、ケーブルを室内に引き込むのはイヤなので、取得した電圧は、WiFiで飛ばして、自前クラウドのIoT用ノードのWebサーバにアクセスしてデータベースに格納するっという感じにすることとしましょう!

 

まずは、デバイス探しということで。。。

まぁ探すも何も、こんな仕様であれば、もうこいつしかないです!!!

 

ESP8266!!!

 

これは素晴らしいデバイスです!

中国のEspressif Systemsって会社が作っているデバイスで、32ビットのRISC CPUを積んでいて、なんとWiFiモジュールも搭載されていて、完全互換ではないものの、Arduinoとの一部互換もあり、IDEもそのまま使えるというもの!

今のIoTを支える便利なデバイスですね。。。

 

しかも安い!

 

秋月電子なんかでも取り扱っていて、デバイスだけなら、¥550!( Wi-Fiモジュール ESP-WROOM-02 )

スイッチサイエンスでは、USBシリアル変換もついたブレイクアウトボードとして販売してて、¥2160!( ESPr® Developer(ESP-WROOM-02開発ボード )

 

でも、秋月のは安いとはいえ、USBシリアルやらロジックレベルコンバーターだの追加せにゃいかんし、はじめて使うデバイスとしてはチトメンドクサイ。。。

スイッチサイエンスのは、そのまま使えそうな感じやけど、少々高い。。。

 

ならばということで、いつものAliexpressで探してみると。。。。

ありました。。

 

USBシリアル変換は、Ch340gを搭載した、 nodemcuのESP8266

お値段は、US $2.98! だいたい日本円で350円弱ってとこですかね。。

(上記のバナーから、ESP8266 nodemcu で検索すれば出てきますよ!)

 

とりあえずうまくいくかいかんかもわからんので、とりあえずこれを発注!

そんで、来たのがこれ!

まぁスイッチサイエンスのヤツの仕様とほぼ同じです。。。

 

これを動かすために早速プログラム作成するわけやけど。。。

そもそも、このデバイスは完全にArduinoに準拠しているわけではないので、いろいろと開発するには準備が必要ですな。。

まぁ安いデバイスやのにそれなりに使えるんでガマンガマン。。。

 

まずは、ArduinoのIDEをダウンロードしてきます。。。

URLは、https://www.arduino.cc/en/main/software

動作環境は、Windowsだけでなく、LinuxやらMacOS Xなんかもあるんでまぁお好きなのをどうぞ。。。

 

とりあえずインストールしたら、ESP8266を使うためには、Boad Managerに追加せなばならないので、

[ファイル] – [環境設定]を開いて、”追加のボードマネージャのURL”に、http://arduino.esp8266.com/staging/package_esp8266com_index.json を設定しておきます。

こんな感じ。。。

次は、ボードのデータをダウンロードですわ。。。

[ツール] – [ボード]  – [ボードマネージャ]を選択して、たぶんリストの一番下にある”esp8266 by ESP8266 Community”ってのを選んでインストールしちゃいます。。。

これで、とりあえずはIDEのインストール完了!

 

あとは、USBのデバイスドライバのインストール!

このnodemcuは、USBデバイスにCh340gが乗っかってるんで、 http://www.wch.cn/download/CH341SER_ZIP.html この辺のサイトからダウンロードしてインストールしちゃってください。。

 

これでとりあえずは、開発ができるお膳立てが完了!!

いよいよ、デバイスとIDEをインストールしたマシンをUSBで接続して、仮想シリアルポートとしてデバイスが参照できていれば接続完了ってことですな!

 

っで、いよいよプログラムを書くわけですが、、、

このESP8266には、1ポートだけアナログ入力のポートがあって、ここにバッテリーの電圧をかけて、AD変換した値を読み取って、Webサーバへ飛ばすって仕様なのでそんなに難しくはないンですけど。。。

注意せにゃいかんのが、フツーのArduinoの仕様であれば、アナログ入力は、0~5Vの10bit分解ではあるものの、このESP8266は、0~3.3Vの10bit分解ってことらしいです。。。

なので、発電して、バッテリーにかかる電圧は、最大で15Vくらいにはなると思うんで、これを分圧抵抗回路を介して、15Vを3.3Vくらいにしてから、アナログ入力ポートに突っ込まなければなりませんね。。。

こんな感じ。。。

最大で15Vを3.3VくらいにするためのR1とR2の組み合わせを考えないかんのですけど、便利なサイトがありました。。。

http://sim.okawa-denshi.jp/teikokeisan.htm

このサイトの素晴らしいところは、VINとVOUTを指定すると、各系列の市販されている抵抗種類に合わせて組み合わせを割り出してくれます!素晴らしい!!!!

 

ここの計算結果によると。。。R1には3.9KΩでR2には1.1KΩとなりました。。。

でもそんな抵抗は手持ちにはないので、結局のところは、合成抵抗で近似値を作って回路を作ります。。。

 

っで、とりあえずブレッドボードで回路を作って見たのが。。。。

こんな感じ。。。

手持ちの電源が12Vしかなかったんで、左側は3端子レギュレーターで3.3Vと5Vを作ってます。。。

とりあえず、esp8266は3.3Vで動かすようにして、手持ちの抵抗を探しまくって、結局のところ3本で合成抵抗を作って、3.9kΩと1.1kΩを作ってます。。。

LEDは、WiFiのコネクションが正常な状態の時は、点灯させるためと、電圧を測定している時からWebサーバへのデータ転送が完了するまでの間に点灯させるためのアクセスランプを付けて見ました。。。

 

っで、この回路で稼働させるためのプログラムはこんな感じにしてみました。。。

(数多くのネットに掲載されていらっしゃる諸先輩方のプログラムを多く流用させてもらいました。。。感謝です。。)

</p>
<p>#include &lt;ESP8266WiFi.h&gt;<br />
#include &lt;ESP8266HTTPClient.h&gt;</p>
<p>char ssid[] = &quot;xxxxxxxxxxxxx&quot;;<br />
char password[] = &quot;xxxxxxxxxxxxxx&quot;;<br />
int wifipin = 4;<br />
int accpin = 5;</p>
<p>void setup() {</p>
<p>Serial.begin(115200);<br />
Serial.println(&quot;&quot;);</p>
<p>pinMode(wifipin,OUTPUT);<br />
pinMode(accpin,OUTPUT);</p>
<p>delay(1000);</p>
<p>digitalWrite(wifipin,LOW);<br />
connectWifi();<br />
digitalWrite(wifipin,HIGH);</p>
<p>delay(1000);</p>
<p>}</p>
<p>void loop() {</p>
<p>digitalWrite(accpin,HIGH);</p>
<p>double value = analogRead(A0);<br />
double value_org = value;</p>
<p>Serial.println(value);</p>
<p>value *= 3.3;<br />
value /= 1024;<br />
value /= 1.1;<br />
value *= 3.9;</p>
<p>String acc_url = &quot;http://xxxxx.xxxxx.xxxx/xxxxx.xxxx?xxxxxx=&quot;;<br />
String acc_data = String(value);</p>
<p>String url_string = acc_url + acc_data;<br />
url_string = url_string + &quot;&amp;value=&quot; + String(value_org);</p>
<p>Serial.println(url_string);</p>
<p>char buf[128];<br />
url_string.toCharArray(buf,128);</p>
<p>String result1 = getPageSource1(buf);</p>
<p>Serial.println(result1);<br />
digitalWrite(accpin,LOW);</p>
<p>delay(60000);</p>
<p>}</p>
<p>void connectWifi() {<br />
WiFi.mode(WIFI_STA);<br />
WiFi.begin(ssid, password);</p>
<p>while (WiFi.status() != WL_CONNECTED) {<br />
Serial.print(&quot;.&quot;);<br />
delay(100);<br />
}</p>
<p>Serial.println(&quot;connected!&quot;);<br />
}</p>
<p>String getPageSource1(char host[]) {</p>
<p>Serial.println(host);</p>
<p>HTTPClient http;<br />
http.begin(host);<br />
int httpCode = http.GET();</p>
<p>String result = &quot;&quot;;</p>
<p>if (httpCode &lt; 0) {<br />
result = Serial.println(&quot;Error!&quot;);<br />
} else if (http.getSize() &lt; 0) {<br />
result = &quot;size is invalid&quot;;<br />
} else {<br />
result = http.getString();<br />
}</p>
<p>http.end();<br />
return result;<br />
}</p>
<p>

こっちが、ESP8266用のプログラムで。。。。

受け側のWebサーバ側のプログラムはお手軽に書けるようにPHPにしてみました。。。

</p>
<p>&lt;?php<br />
if(isset($_GET['denatsu'])){</p>
<p>echo &quot;GET denatsu ---&gt; &quot;.$_GET['denatsu'].&quot;&lt;br&gt;&quot;.PHP_EOL;<br />
echo &quot;GET value ---&gt; &quot;.$_GET['value'].&quot;&lt;br&gt;&quot;.PHP_EOL;</p>
<p>$db = new SQLite3('/tmp/denatsu.sqlite3');</p>
<p>echo &quot;SQL ---&gt; &quot;.&quot;insert into denatsu values('&quot;.date('Y/m/d H:i:s').&quot;','&quot;.$_GET['denatsu'].&quot;','&quot;.$_GET['value'].&quot;')&quot;.PHP_EOL;</p>
<p>$results = $db-&gt;query(&quot;insert into denatsu values('&quot;.date('Y/m/d H:i:s').&quot;','&quot;.$_GET['denatsu'].&quot;','&quot;.$_GET['value'].&quot;')&quot;);<br />
$db-&gt;close();<br />
}<br />
?&gt;</p>
<p>

こんな感じ。。。

PHP側は、GETで受けたらsqliteにinsertしてデータをスタックするようにしてみました。。。

まぁセキュリティーは一切考慮してないんで、これで運用しちゃうと簡単にやられちゃいますね。。。。

まぁとりあえずESP8266はどんなもんなんかを知るためなんで、今回はそういったややこしいことは一切無視!ってことで。。。。(それでええんか!!!って非難が聞こえてきそう。。。)

 

これでとりあえず実行してみることに!!!!

 

んー。。。

ちゃんと、WiFiで接続してWebサーバにGetしてデータは転送されましたね。。。。

でも肝心かなめのデータに結構、誤差が多い。。。。。

 

3.3Vで1024の値が返ってくるハズなんやけど。。。

この値を元に、抵抗値から逆算してみると、実際の計測値と比較して2.4Vくらい下回る値となる結果。。。。

 

んーーーーーー!!!!

 

わからん。。。

 

まぁ、とりあえず、10bitの分解された値はそれなりに返ってきているんで、これと実際の計測電圧との相対比で計算して実際の電圧を割り出した方が、精度としては高そうな感じ。。。

ちょっと、残念ではあるものの、こっちに仕様変更しよーっと!

まぁ、抵抗の誤差とかなんかの影響かなー。。。。。

 

もうちょっと調べよ。。。

 

まぁとりあえずは、ちゃんと動いてるんで、Webサーバ側のPHPのプログラムでこの誤差を補正するようにちょっと考えて見よ。。。

 

うまく使えればいいデバイスになりそうな予感。。。。

もうちょっと勉強しよ。

 

【追記!】

sqliteにスタックしたデータをグラフにしてみました!

http://norisuke.servehttp.com/denatsu-graph.html


過去4日間のデータを対象として表示します。

上記のプログラムロジックで電圧を算出してましたが、誤差があまりにも大きいので、10Bit分解値で950の場合を14.5Vとして基準値として相対比で電圧を算出することとしました。

実測値とほぼ誤差なしです!

14.5Vでレギュレーターが上昇制限をかけてるようで、これ以上は電圧の上昇はないことがよくわかります。。。

数値化してはじめてわかりました!!!

 

近日中にソーラーパネル単体の発電状態を表すグラフを追加予定!!!

好期待のほど!!!!!!!

Pocket