放置してたら壊れてた

Arduino電力計や風速計を作りかけで放置してたら・・・・・

もう何をどうしてたか?全然覚えていない

オマケに長期放置してた開発用のPCを操作してたら

何か変だ。入力ミス???

いや、キー入力ができないのが数か所ある

仕方ないのでキーボードの清掃なり交換なりをしようと

チャレンジしたけど・・・・すべてのネジを外したけど・・・どこかが固定されていて

外れない

裏からやっても表からこじ開けても、やっぱこの固定されたのを打破しないといけない様なのだが・・・

わからん!

参ったな~

データやマウスはOKなのでデータ移行して他のPCを使い

このPCを騙しだまし使うしかない

用途はあるけど、困るな~

Arduino 電力量計 DIY 17-3 色気を出して大失敗!

3692.jpg

LCDがI2C接続できるようになったので、
ついでに小さな箱へ組込み変更したまでは良かったのだが・・・
LCDをパラレル接続していたボードを壊してI2C接続をした。

すると、何故かアナログ入力が正常に動作しなくなった!
割込み処理している関係だと思うのだが・・・
LCDのI2C接続ライブラリーの影響だと考えられる
困った。

違いを調査中なのだけど
分からない
温度計測とLCD表示はちゃんと動作する
割込み処理中の I2Cライブラリーによる温度計測は稼働しているが
LCD表示とは相性が悪い

また、パラレル接続アダプターを作るかな~~~(参った)

ちゃんと動作確認してから、壊さないといけませんね

LCDモジュールをI2C通信で接続する場合の覚書(ESP8266)

LCDモジュールをI2C通信で接続する場合の覚書

I2C通信用のポート(ライブラリーで固定化されている)
Arduino   では、SDA(データ線)はアナログの4番ピンに,SCL(クロック線)はアナログの5番ピン
Arduino Megaでは,SDAがデジタルの20番ピン,SCLがデジタルの21番ピン
ESP8266  では、SDA(データ線)はGPIO04,SCL(クロック線)はGPIO05

購入した、IICシリアル16×2 LCDモジュール
- I2Cアドレス:0x27 

1602 LCD ブラック IIC/I2C/TWI/SPI シリアル インタフェース ボード モジュール
I2Cアドレス:0x20〜0x27 (ボード上のA0,A1,A2を短絡する事でアドレスを変更)
        0x27 , 0x3F (チップによって開始アドレスが異なる)

ADT7410使用 高精度・高分解能 I2C・16Bit 温度センサモジュール

I2Cアドレス:0x48, 0x49, 0x4A, 0x4B

LiquidCrystal_I2Cライブラリーをインストール


#include "Wire.h" // SDA:GPIO04 SCL:GPIO05
#include "LiquidCrystal_I2C.h"

LiquidCrystal_I2C lcd(0x27, 20, 4); // 0x20 , 0x27 , 0x3F

void setup()
{
lcd.begin();
lcd.setCursor(0,0);
lcd.print("amazon");
lcd.setCursor(0,1);
lcd.print("abcdefgh123456");
}
void loop()
{
}


3688.jpg

ちゃんと表示しました。

Arduino 電力量計 DIY 17-2 iphone でメッセージを受信する方法(LINE Notify) 続き

LINEへメッセージ転送するサーバー と RSSサーバー の2つに分離
LCDを付加して10秒ごとに発電量や温度などを表示する事にした
3683.jpg
1個で処理しているとハングアップする時が有るので安全重視で機能分割しました。

CPUボード自体は安い(505円-->780円と値上げ)のだが
電源アダプターやLCDが余分に必要なのが出費かな?
メモリーに余裕が有りすぎて持ったいない!

それにしても電力量計のArduino MEGA のメモリー一杯一杯状態は
今回ちょっと修正しただけで時折誤動作する事も有りシステムが安定するまで余分な検証作業が掛かった

今後は ESP8266 を使うことになる。
アナログ入力が1個しか無いので複数の入力が必要な時にはADCのICを併用する必要があります。

Arduino 電力量計 DIY 17 iphone でメッセージを受信する方法(LINE Notify)

Arduino 電力量計 DIY 16 の続き(まとめ)

処理の流れ

Arduino 電力量計(Arduino MEGA + イーサネット シールド)
↓ http
転送サーバー(ESP8266)
↓  https
LINE Notify

iphone (LINEアプリ)

Arduino イーサネット シールドは https 通信がサポートされていないから 直接 LINE Notify へアクセスする事が出来ない
そこでメッセージを転送するローカルサーバーをESP8266で作成した
(転送だけだと思ったいないから RSS通知機能を兼務している)

他にも消え去るアプリも有るのだけど、最重要アプリの対策が出来た事は大きい
これでiOS11を使う事も出来る

3664.jpg 3663.jpg
旧:im.kayac.com    新:LINE Notify

ブラウザーでの入力(デバッグ)
// http://192.168.0.254/?token=1234&message=5678           呼び出し方

メッセージ転送サーバー

const char* token_pv   = "*******************************";
void onRoot() 
{
String token="";
String message="";
int i;
       String msg = "<html><head><title>ESP8266WebSerber</title></head><body><h1>Hello</h1>";

for(i=0;i<server.args();i++)
        {    msg += " " + server.argName ( i ) + ": " + server.arg ( i ) + "<BR>";
       }
msg+="</body></html>";
        server.send(200,"text/html",msg);

for(i=0;i<server.args();i++)
{
if    (server.argName(i)=="token"  ) token  =server.arg(i);
else if (server.argName(i)=="message") message=server.arg(i);
}
if (token  =="") token  =token_pv;
if (message=="") message="メッセージ無し";
sendLineNotify(token,message);
}
void sendLineNotify(const String  token,String message)
 {
const char* host = "notify-api.line.me";
  WiFiClientSecure client;
  //LineのAPIサーバに接続
  if (!client.connect(host, 443)) {
//    Serial.println("Connection failed");
    return;
  }
//  Serial.println("Line Connected");
  //リクエストを送信
  String query = String("message=") + String(message);
  String request = String("") +
               "POST /api/notify HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" +
               "Authorization: Bearer " + token + "\r\n" +
               "Content-Length: " + String(query.length()) +  "\r\n" + 
               "Content-Type: application/x-www-form-urlencoded\r\n\r\n" +
                query + "\r\n";
  client.print(request);
 
  //受信終了まで待つ 
  while (client.connected()) {
    String line = client.readStringUntil('\n');
    if (line == "\r") {
      break;
    }
  }
  
  String line = client.readStringUntil('\n');
client.stop();
//  Serial.println(line);
}


呼び出す側

const String token_pv   = "*********************************";
IPAddress ImTrLine(192,168,0,254);     // no DNS)

void Im_put(String str)
{
  String buf="";
  for(int i=0;;i++)
  {
      if (str[i]==0) break;
      if (str[i]==' ') buf+="%20"; else buf+=str[i];
  }
 String par="GET /?token="+token_pv+"&message="+buf+" HTTP/1.1";
 if (client.connect(ImTrLine, 80))
   {
      client.println(par);
      client.print ("Host:");
      client.println(ImTrLine);
      client.println("Connection: close");
      client.println();
      client.stop();
   }
}



Arduino 電力量計 DIY 16 im.kayac.com サービス終了(困る)

kayac.png
現在のアプリが32ビット版でIOS11からは使えない事は知っていましたが・・・
まさかサービスも終了するとは思っていませんでした。

代替えとして LINE Notify の使用を調査中です。

ESP8266 のスケッチ 大いに参考になりそうです。
「猫の食生活」を超音波距離センサーでLINEに通知してみた  
SSL通信をするためにはそれなりのCPUパワーが必要になります。
Arduinoに使われているAVRでは性能的に難しいのですが、
ESP8266はこの価格にも関わらず、32ビットクロック80MHzの高性能チップを搭載しています。
これによって、SSL通信も軽々とこなしてくれます。

Arduino MEGA で通信が苦しいとなると、
メッセージ送信は ESP8266 で分散処理へ変更する必要がある
ついでにモニター表示をするかな~

・・・・

取り合えず
・LINE アプリ インストール(iphone)
・LINE Notify アクセストークンの発行(PC)
line-0.png line-1.png line2.jpg

・ ESP8266 で Imの送信 & LINEでの受信
3659.jpg

まで動作確認済

Arduino MEGA + イーサネット シールド ではhttps がライブラリー対応されていないようだ!

IFTTTにLINE Channelができました
littleBitsのボタンを押すとIFTTT経由でLINEにメッセージが飛ぶ仕組みを作ってみよう
IFTTTがMakerのためのチャンネルを追加
Arduino勉強会/0P-WiFiからIFTTTを使ってみる

ひょっとしたら IFTTT へ http でメッセージを送信したら LINE へ https でメッセージを送信してくれるのかな?

Eventsをトリガーする方法
IFTTTをMaker Channelにつないだら、イベントのトリガー(IFTTTのifの部分)を作るのは簡単。イベント名とソケットキー(チャンネルに接続したときに割り当てられる)を付けてGETまたはPOSTを送るだけだ。
https://maker.ifttt.com/trigger/{event_name}/with/key/{secret_key}
これにオプションで、レシピの中のアクションに渡したい値(文字列)をJSON型で3つまで付けられる。

{value1:"文字列",value2:"文字列",value3:"文字列"}   たぶん

char v1[16] = "";
char v2[16] = "";
char v3[16] = "";
char header[100] = "POST /trigger/{event_name}/with/key/{secret_key} HTTP/1.1\r\n";
const char* host = "maker.ifttt.com";
const char* contentType = "Content-Type: application/json\r\n\r\n";
char contentLen[50] = {0};
char valueData [150] = {0};

sprintf(contentLen, "Content-Length: %d\r\n", strlen(valueData));
sprintf(valueData, "{\"value1\":\"%s\",\"value2\":\"%s\",\"value3\":\"%s\"}\r\n", v1, v2, v3);

sprintf(str, "%sHost: %s\r\n%s%s%s", header, host, contentLen, contentType, valueData);

client.print(str);


※IFTTTが難解すぎる・・・・・・・う~~
 何故か Makerチャンネルが無い!!

 サポートが無くなったのでしょうか?
IFTTTの「Maker」を使ってみました 有りそうだな~

IFTTTのトリガーおよびアクションをESP8266で実行する
IFTTT の webhooks で メッセージを LINE へ送信する事はできた。(デバッグモード 手動)
ただ IFTTT へは https で接続する必要が有る為 Arduino から使うのは難しそうだ!!
https で接続できるのなら、直接 line へ送信した方が良い
まぁ外部サービスに依存するのは駄目って事で

LINEへのメッセージ中継機能を ESP8266 で作るって事でしょうか
これにモニター表示機能を付加すれば自己完結する

IFTTT で RSS の LINE へのメッセージ送信は出来るが・・・
表示が長ったらしいし、機能面で劣る。

現在 im.kayac.com でメッセージ送信しているのは
①ソーラ発電状況 ②RSS
単に①の為にメッセージ転送するだけだと ESP8266 が勿体ない
から RSS機能に①のメッセージ転送機能を付加する事にした。
作成中
何故かWIFi接続PCはそれほどでもないが、iphoneはWiFi通信に影響が多く通信不能に近い
WIFiアクセスポイントがトチ狂う
どうしたもんじゃろな~

ESP8266でNAT(NAPT)でWi-Fiを中継する
Arduino の ESP8266をwebサーバーにしてみよう

試行錯誤しながら何とか希望の動作をする様に成って来た!
アクセスポイントでサーバーを動作させながら、通常のRSSの処理を行う


#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

const char* ssid = "ssid"; 自宅ネットワークのアクセスポイント
const char* password = "password";

const char *ap_ssid = "ESP8266"; サーバー用のダミーアクセスポイント
const char *ap_password = "password";

IPAddress SvIP (192,168,1,254); サーバー用のダミーIPアドレス
IPAddress SvGatewayIP (192,168,0,1);
IPAddress SvSubnet (255,255,255,0);

IPAddress myIP (192,168,0,254); 自宅ネットワーク上のサーバーIPアドレス
IPAddress myGatewayIP (192,168,0,1);
IPAddress mySubnet (255,255,255,0);

ESP8266WebServer server(80);
WiFiClient client;

setup()
{
WiFi.mode(WIFI_AP_STA); // モード設定

WiFi.softAPConfig(SvIP,SvGatewayIP,SvSubnet);
WiFi.softAP(ap_ssid, ap_password);
IPAddress SvIP = WiFi.softAPIP();

Serial.println();
Serial.print("AP IP address: ");
Serial.println(myIP);

WiFi.config(myIP,myGatewayIP,mySubnet);
WiFi.begin(ssid, password);

server.on("/",onRoot);

}

void loop()
{
server.handleClient();
}

void onRoot()
{
  String msg = "<html><head><title>ESP8266WebSerber</title></head><body><h1>Hello</h1></body></html>";
  server.send(200,"text/html",msg);
}



ブラウザーから http://192.168.0.254/ をアクセスすると
Hello
が表示される

loop内で別の処理を組めば 処理をしながら サーバーアクセスの処理が出来る
私の場合はRSS とLINE Notifyへのメッセージ送信を行う

後ちょっとだ! がんばろう!


Arduino 電力量計 ---> im.kayac.com        ---> iphone


Arduino 電力量計 ---> 転送サーバー ---> LINE Notify ---> iphone

テスト環境で動作確認済
明日、実機をUpdate予定 メモリー不足が不安材料です。

ボケが進行中!

いやはや母親のボケが進行しているようだ。

今日が何日か、何曜日か、通院日か、来院日か

普通のデジタル時計だと分かりにくい様なので
曜日で行動するからカンレンダー付きのデジタル時計にしたのだが


曜日にマークを付けても分り難いようで・・・・
どうしようか?????

通院などは別の紙を見て日付マッチングをしないといけないのだが・・・
これが理解しがたいようで・・・

今日の予定を何度か説明しても頭に入らないようだ・・・
脳の混乱!

複数の情報を比較して判断するのが混乱の元だと思うから

当日、明日の
予定内容を表示する必要があるのだろう!?


当初 Arduinoでカレンダーを作る事も考えたのだが
カレンダー表示をさせると文字も小さくなるし
電池駆動が苦しそうだったから
市販のカレンダー付きのデジタル時計にしたのだけど・・・

スマホのソフトの様な
行動予定が入力できるのを作らないといけないかな~~
バッテリーはスマホ用の充電バッテリーかAC電源ですね
電池は液晶のバックライトでの消費が多いだろうからボタンを押した数秒間だけ表示出来るようにした方が良い
スケジュールはPCからWEB入力かな

ちょっと画面デザインしてみるか!
時計を購入済だから、行動予定だけにしようか?

あ!漢字表示が! Arduino だと難しいな!

linux をもう一度勉強し直すのもしんどいし・・・困った!

調べたら既にやっている人がいた!

OLED ( 有機EL ) SSD1306 に16×16ドットのフリーの日本語漢字、東雲フォントを表示させてみました

WeMos D1 ESP8266 ESP-12E For Arduino

発注していたボードが届いた。

HiLetgo OTA WeMos D1 CH340 WiFi 開発ボード ESP8266 ESP-12E For Arduino IDE UNO R3
・32ビットRISC CPU: Tensilica(英語版) Xtensa LX106 running at 80 MHz
・命令   64 KB SRAM
・データ  96 KB DRAM
・EPROM 4MB
・IEEE 802.11 b/g/n Wi-Fi WEPもしくはWPA/WPA2
・11デジタルI/ Oピン
・1アナログ入力ピン(3.2V max input)
・電源 入力: 9~24V、出力:5V、1A



Arduino IDE インストール
これで上記 ESP8266 ボードが使えるはず(たぶん)
ArduinoIDEをインストールしてみよう
ボードマネージャから Arduino core for ESP8266 WiFi chip をインストール
ESP-WROOM-02開発ボードをArduino IDEで開発する方法

ins1.png ins2.png

ins3.png ins4.png


スケッチの書込みの指定

ins5.png

もしUSBが認識しない場合は
CH340 USB to UART driver を入れる
スケッチの書込みは出来たのだが、
思うように動作しないから
技術的な事柄を記録する意味でカテゴリーを分ける事とする
具体的には
Arduino Ethernet で動作している RSSチェックソフト を ESP8266 へ移植をする

Timer1 が無い。 Timer0を使用する
ESP-WROOM-02 でタイマー割り込みを使ってみた
ESP-WROOM-02 で定期的に処理させる

ESP-WROOM-02 の時刻合わせ
  GitHub – FWeinb/NTPClient: Connect to a NTP server
  ダウンロードしてライブラリーへ保存。サンプルはそのままで動作する→日本時間へ変更

なな何と!
 Wi-Fiの定義への変更と Timer割込みの修正で動作しちゃいました。
 メモリーも余裕ができて。素晴らしすぎる!

追記(1/6,1/8)
ESP-WROOM-02 Arduino互換ボードのGPIOはこうやって使う
※ボードの裏面の印刷されたGPIOに接続する(同じ番号の印刷が有るのが悩ましい)
  HC-SR04の距離センサーで動作確認したら
Loop()で入力/出力指定を変更可能  GPIO 12,13,14,16
setup()で入力/出力指定のみ     GPIO 15,0,2,4,5

追記(17/10/3)
LCD モジュール
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);    // rs, enable, d0, d1, d2, d3 通常品 Dxx
LiquidCrystal lcd(0, 2, 4,14,12,13);   // rs, enable, d0, d1, d2, d3 ESP8266 GPIxx

スケッチにより動作したりしなかったりするからバラックで動作確認した方が良い
スケッチの書き込みがエラーになっても何度か行うと書込みできる
LCDモジュールを組み合わせた場合に書き込みが出来ない場合は一旦ボード単体で書込みを行い組み立てを行うと良い


気に入りブログが更新したら通知するRSSアプリ(Arduino)

ブログの新規書込みが有った時に通知を受取る方法は

iphone アプリを使っているが更新通知が劇おそになる事がままある
外部サービスの利用では無料で使うには毎月登録情報のWebをアクセスするのも面倒だし通知がメールで届くのでメール受信タイミングの関係で遅くなる事がままある

それで 自作のwindowsアプリを使っていたのだが・・・パソコンを24時間稼働しないといけない
この場合の更新通知はメール受信になるから遅延が有る

やはり24時間運用になると消費電力の少ないPCが優位です。
ネットワークが標準装備な Raspberry Pi が良いのですが(持っていない)
Arduino シリアル接続 WiFiモジュールESP8266も興味深い

現状はArduino Ethernet が有るので、これで作れるかどうかチャレンジした。

必要最低限の機能にしたら
思った以上にコンパクトに作ることができた。(これだったら ESP8266 で動作するかも)
最大32,256バイトのフラッシュメモリのうち、スケッチが14,564バイト(45%)を使っています。
最大2,048バイトのRAMのうち、グローバル変数が703バイト(34%)を使っていて、ローカル変数で1,345バイト使うことができます。

現在は試験運用を開始したばかりなので・・・・希望が有れば公開するかな~

機能
・対象ブログはFC2とする
・検索プログ情報はソース(スケッチ)組込みとする(発展形としてはWeb登録)
・更新通知はim.kayac.com経由でiPhoneへ通知が届く様にした(メールより速いし Android でも運用可能)
・15分間隔で調べる(時間帯によって間隔を変える事はソースを付け足せば可能)
3475.jpg

イーサネットシールドを検索したら ESP8266 WiFiの互換機?が販売されていた
今回の様な用途に向いている気もするから買ってみる事にした。
送料込みで505円 いや~中国は・・・・強い!!

アマゾンで買った 20x4 Character LCD について

アマゾンで買った 
SODIAL(R)2004 20x4文字のLCDディスプレイモジュールブルーブラックライト
 (プリント板の裏の2004A が型式かな)

「標準関数で動作しました。」とコメントが記載されているのだけど・・・

何故か表示しない????

結線は合っているし・・・変だな~・・・

検索しました。

写真から推測するとこれポイのだけど

2004 20x4 Character LCD Display Module Blue Color HD44780



ふと回路図を見て!

一般的な 16x2 LCD の回路図では可変抵抗が5vに結線されているが

回路図4

このモジュールの回路図は5vには接続されていない
回路図2

という事で結線を下図に変更したら表示しました。

ちなみに可変抵抗は4kΩ近辺の表示が良い感じです。

LCDの標準関数で桁指定・行指定はできました。

バックライトは180Ωとか330Ωとかを経由して5Vに結線してます(A端子)

しかしながら簡単な回路だから最初からプリント板へ半田付けしたのは失敗!

2個購入していたからブレッドボードで組み立てて動作確認する事になりました。

やっぱ最初から半田付けは不味いですね

追加(10/7)
単体では表示など問題は無いのだが
電力量計と組合わせた場合、正しくSDカードの書きこみが出来ない
原因はSDライブラリーが使用しているデジタルピンと競合した事と考えられる
SDライブラリー
Initializes the SD library and card. This begins use of the SPI bus (digital pins 11, 12, and 13 on most Arduino boards; 50, 51, and 52 on the Mega) and the chip select pin, which defaults to the hardware SS pin (pin 10 on most Arduino boards, 53 on the Mega). Note that even if you use a different chip select pin, the hardware SS pin must be kept as an output or the SD library functions will not work.

Arduino SPI bus 11,12,13 SS 10
Mega   SPI bus 50,51,52 SS 53
だと考えたのだが・・・
Mega でも 11,10 を使用すると書込みが正しく動作しない

4 も使用できない(SD CARD SS)

動作確認済み
LiquidCrystal lcd(12,13,7,6,9,8); // rs, enable, d4, d5, d6, d7

追加(10/9)
接続のピン数が多いとESP8266だと一杯一杯になる為、例えば温度センサーを付けようとすると無理が有る
その為にI2C(SPI)インタフェースで接続できると結線も楽だ
EasyWordMall 1602 LCD ブラック IIC/I2C/TWI/SPI シリアル インタフェース ボード モジュール


I2Cアドレス:0X20〜0X27

Dovewill Arduino対応 IIC I2Cシリアル・1602 16x2 キャラクタ LCDモジュール 液晶ディスプレイ  2個入り


単に刺すだけで使える便利さ(デバッグに最適)
キーパッド シールド ボード ブルー バックライト Arduinoロボット LCD 1602 1280 2560 UNO US用品


arduino をソフトで reset する方法

arduinoで電力モニターを作成しているのだけど
メッセージ送信が多かった時に多発するのだが・・・・
通信機能や計測のハングアップをする時がある
原因は???メモリーの可能性が高いのだが
この場合ハードリセットするしかない
せめて遠隔指示でリセットできないものか!?
検索してヒットする事も少ないのでメモを残す

two ways to reset arduino in software

In this example, you do not need any extra wiring. We initialize the reset function, then call reset.

void(* resetFunc) (void) = 0;//declare reset function at address 0
...
resetFunc(); //call reset


他のサイトで紹介されていた方法

software_Reset() ;

void software_Reset() // Restarts program from beginning but does not reset the peripherals and registers
{
asm volatile (" jmp 0");
}


基本0番地を実行という事でしょうか

前回調べた時はもっと複雑だったのだが・・・・えらい簡単、試してみます

追記(7/8)
arduino電力モニターに組込み遠隔指示でリセット動作を確認。やったね素晴らしい!

Arduino シリアル接続 WiFiモジュールESP8266

amazonを覗いていたら面白いモジュールが見つかったので検索すると使用している人もいるようなので

今後の為にメモを残します。

現在はArduinoイーサネットモジュールとMZK-MF300を使用して無線LAN接続しているのだが

これがシリアル接続で WiFiモジュールESP8266 1個で可能になる

経費的にもハード接続的にも簡易になる

ただまだ未確認なのだが

イーサネットモジュールにはライブラリーが提供されていて

WEBのサーバーやクライアント機能が超簡単に使用できる

この部分までサポートしているか否かです。

ESP8266モジュールでArduinoからWi-Fiを使う
巷で話題の超小型 Wi-Fi モジュール ESP8266 で遊んでみる
ESP-WROOM-02(ESP8266)とArduinoでWi-Fi通信がやっとできました

ESP8266モジュールをArduinoとして使う
WiFiモジュール ESP-WROOM-02でLチカ

Tag » ESP8266 « @ ともの技術メモ
格安無線LANモジュール ESP8266 (ESP-WROOM-02) お試し。
技適済み格安高性能Wi-FiモジュールESP8266をArduinoIDEを使ってIoT開発する為の環境準備を10分でやる方法
「Arduinoなしで、ESP8266は単体でプログラムを実行できます」
ADCも1つ有る様なので
これって無茶苦茶面白い情報ですよね

シリアル接続



単品


秋月 Wi-Fiモジュール ESP-WROOM-02
Wi-Fiモジュール ESP-WROOM-02 DIP化キット

検索すると複数ヒットするから希望に合うのをチョイスしましょう
ヤフオクにも出品があります

高速Arduino(互換)ボード

超音波風向風速計を試行錯誤中で高速なArduinoが欲しいな~~~~
と思っていたら
何と!最近なんでしょうか! 高速版が出てます。
クロックも高速
メモリーも増量
アナログ入力のADCも12ビット対応
ただI/O電圧が0-3.3Vに成っています。

問題はイーサネットシールド等のシールドが使えるか?
ボードによっては5V入力も可能なのも有るがダメなのもあるから要注意です。
そしてシールドが3.3Vでも5V入力の信号として認識してくれるか否かです
これは対応していそうだ Ethernet Shield V2 For Arduino
だけど手持ちは???だな

Arduino純正品    
Arduino Due (これは以前から有った)
Arduino M0 Pro

Arduino Mega互換品
chipKIT Max32 Arduino互換ボード

Arduino 超音波風向風速計 試行錯誤中 (HC-SR04 x 4個)

前回はセンサーが2組でArduinoの発信機を使用したから
今回はHC-SR04を追加購入して4組にして発信回路もHC-SR04を使用して行った。

sens3b.jpg

時間計測も高速化を図ったが・・・・

結果的には改善はしたが計測結果がまだふら付く

距離計測上は誤差範囲になるが、風速計測上は誤差の範疇を超える

安定すれば使える可能性もあるのだが・・・・

やっぱ受信回路かな????

Arduino のクロックの問題も考えられる。もう少し速ければいいのだが・・・・

Arduino 超音波風向風速計 試行錯誤中 (HC-SR04 x 2個)

お試しで購入した HC-SR04 x 2個 を使用して風力計が作成かのか否か試作中なのですが・・・
(HC-SR04も購入が1個セットを2組購入したものだから・・・効率が悪い。皆さんは10個セットを購入する事をお勧めします)

距離センサーとして使用できる事は確認できた。
計測時間も4μs単位ではなく 1/16μs単位へ変更してできるようにしたのだが
Arduino UNO の制約で外部割込みが活用できないのが残念 使える

4組あると素直に作れるのだが、とりあえず試作機なので大妥協です。
 sensa11.jpg
手持ちが2個 送信/受信センサーが2組
これをバラバラします。 (4個あればそれぞれを向い合せます)

超音波を反射して受信します。
同一センサーでは無いが双方向の計測ができます。
折角だから受信回路はそのまま使います。
ただこの受信回路はトリガーを入力しないと出力が得られません
したがって発信回路はArduino の発信機能を使用します。
(この関係で外部割込みが使えなくなったのです)

とりあえず4方向の時間計測は出来る様になったのだが・・・・

はたして、思惑通りに風力計になるでしょうか?

変則的な使い方の関係か
どうも計測値が安定しない。

0.1μFコンデンサーで HC-SR01のTrig - Echo端子を接続してpinを共有する方法と分離したまま使う方法の両方を試したが違いは無かった
両方とも不安定だから発信回路を使わないで Arduino の発信機能を使ったからでしょうか

ちゃんと受信回路を作らないとダメかな~~~

これだと試作機の役を果たしてない

あ~溜息・・・

Arduino 超音波風向風速計 を考えてみよう まずは情報収集

前回ふれた超音波風向風速計を調べてみた。

超音波風向風速計は各社から販売されているが
業務使用する訳ではないので個人で使う精度で良い訳ですから
やはりDIY でしょうか

超音波センサーを使って距離を計測する情報はヒットする。
超音波センサーで物体の距離を測ってみます
超音波センサーの使い方(信号の送信・受信)は同じなので
センサーは屋外で使用するので超音波センサ防滴型にする
受信回路はそのまま使わせて頂く事にする。

距離を計測する場合は反射波の到達時間から距離を算出するのだが
風速を計測する場合は反射波の到達時間から風速や風向きを算出する事になる
算出理論は
超音波で風向風速を計る原理(PDFファイル)
センサーの配置と風向風速の求め方(PDFファイル)
平均風向と平均風速を求める手順(PDFファイル)
超音波風向風速計計測原理
断面風速計(AV計)測定の原理

計測上の温度等の変動要素除外する為に信号の送信方向を往復で計測すれば良いという事なので
センサーは最低2セット×2セットの4セット必要となる
送信信号は4出力用意するとして
受信回路は4入力に対して4個用意すれば良いのだが・・・1個で出来ないかな~混信するか~

送受信を兼用できたらセンサー配置も楽なのだが・・・密閉型が有りました。
密閉型送受信用超音波センサー40KHz/400ER080-2
超音波送受信回路40Khz用
超音波センサー関連製品

組立調整済みの超音波式風向風速計ユニットもいいかも

音速
日常生活上での音速は近似的に温度のみの一次式で表わされ、1気圧の乾燥空気では 331.5 + 0.61t (t は摂氏温度)が常用されている。
この式から気温が算出できる。

HMC5883L コンパスモジュール(3軸地磁気センサ)
センサーを方位に合わせて設置をするのだが上記モジュールを活用したら方位無関係に設置できるかな

センサーの配置をどうするか
超音波センサー配置
往復計測する。
送受信センサーを使用
配置はX字、+字。 L字。三角形が考えられる。 センサーの数を減らすには3個の方がいいね
対抗で送受信する場合は支持具で空中に浮かせないといけない
それとも反射を受信するかな


防水ではないが受信回路付きの距離計測モジュール(安いよ~)
HC-SR04 超音波距離センサーモジュール For ArduinoHC-SR04 超音波距離センサーモジュール For Arduino
()
サインスマート(SainSmart)

商品詳細を見る

HC-SR04回路図
HC-SR04回路図2
HC-SR04をPING)))互換の3pinにする方法 勝手にリンク

HC-SR04が安かったから試しに手配してみた
これは反射を使って計測が思惑どうりにできるか・・・・
センサーの幅がね~ちょっと狭い
トリガーを掛けないセンサーで受信ができたら面白いのだけど・・・

※届いたので試して見ました スケッチ
 距離センサーモジュールとしては簡単に接続できます。
 やはりトリガーが入力されないとエコー出力はしないです。
 通常はこれでいいのですが・・・・
 変則的な使い方は難しい

 サンプルスケッチを改良して到達時間及び距離の小数点以下の表示をして確認すると
 距離一定で計測しても到達時間・距離が結構ふらつくのです
 簡易的な距離センサーとしては簡単便利なのだが・・・・
 精度的には価格なりなのでしょうか
 風速計測に使いたいと思っているのだが原理的には使えるとは思うのだが
 疑問がある。
 まぁ風速の精度的に問題なければいいのだけど・・・う~ん。
 これが使えると超激安・超簡単風速計が出来るのですがね。

 遅まきながら計測時間を算出したら・・・・
 音速を340m/sとする(正式には331.5 + 0.61*摂氏温度)
 センサー間隔を 10cmとすると
 到達時間=(1/340)*0.1≒294μs
 風速を 1m/sとすると
 到達時間=(1/(340+1))*0.1≒293≒293μs
 その差 1μs
 しかし Arduino 標準関数では 1μsの計測は不可能(4μsが最小の分解能)なのです。
 そして計測精度も最低0.1m/sは欲しいから・・・・・
 このままでは風速計はダメです。
 せめて 0.1μs単位での計測が出来ないと・・・・
 クロックが16MHzだから可能性が無い事はない??

Arduinoコードの仕組み
16MHzの1/64に分周されているから、このプリスケーラを 64-->1 にすれば良いのでは?
Timer0は変えたくないからTimer1(16bit)を使いたい
AVR timer(1)
micros()
pulseIn()

風向風速計

必要といえば必要。不要といえば不要なものだが

何となく欲しい!

ウェザーステーション気象観測計2355

が安くて良さそうだ。

この風力計は

カップ式なのだが

検索していたら
超音波を使用して計測する方法があるんですね
風向きや風速も音波の到達時間の差で計算して求められるらしい
すごいですね

メーカーからは結構出ているのですが

塩ビパイプで作る 超音波式風向風速計
超音波風向風速計モジュールの製作
も有ります。

もう少し原理を勉強して自作したいな~~~
でも難しそう


Arduino 電力量計 DIY 15 Newマシーン用のソース公開

スケッチ(ソース)の解読がしやすい為に電力計測の基本機能に特化して公開します。
・起動時にNTPにより時刻を取得します(インターネット環境は必須です)
・割り込み処理を使用して連続計測を行います(余剰・電圧計測なし・幹線計測なしも考慮)
・1秒毎に計測加算しますがリアルタイム表示は各自で変更してください
・温度計測は1分毎に行います(不要ならカット)
・1分毎にSDへデータ保存します。停電が有った場合は復帰後に計測を継続します。
・WEBサーバー機能によりリアル値の表示や時刻毎電力やPCへのデーター転送を行います。
・電力計測用のCTは6個+幹線で記述しています。変更は簡単です。
・PC(太陽光発電状況管理ソフト)へのデータ転送については現行フォーマットは未対応です。
※版権は放棄していませんが個人使用はOKです。
※調整:電圧パラメータを調整して電圧を合わせて下さい。その後電力を調整して下さい。

Arduino 電力量計ソース エンコード unicode (UTF-8) で表示して下さい
拡張子 txt を ino へ変更して使用して下さい

お願い
参照したらコメントを残して下さいな

基本設定

1.ipアドレス
 #define Lip 112 // web local ip 111:通常 112:TEST
 IPAddress ip(192,168,0, Lip); // 固定IP

2.CT数
 #define CT 6 // CT数(パワコン実装数)

3.ADCピン指定
  const byte Tpx[Txm]={ 2, //00 Z ゼロV基準電圧
      3, //01 V1 系統電圧1
      4, //02 V2 系統電圧2
      0, //03 CTa 電力売買1
      0, //04 CTb 電力売買2
      5, //05 CT0 幹線電力
      8,9,10,11,12,13}; //06 CT1..6,7..9 CT パワコンetc個別電力

  計測する場合はADCピン番号を指定(0は計測しない、CT数分指定)

4.HEMS 指定
  #define HEMS 0                 // HEMS運用 適用電圧を指定
  const byte KCTv[CTm] = { 0,0,1,2,0,1,2}; // 適用電圧 0..CT

  0:200V 1:100V 2:100V (単相3線)

5:センサー係数調整
  const float KVT = float(AREF/512.0/(180.0/540.0)/5.1036*100.0);
                          // 電圧センサ係数 100.0v-->5.1036v *(180/540) / 2.5 * 511 AC100
  const float KCT0 = float(AREF/512.0*3000.0/ 32.0);
                          // 電流センサ係数 幹線 (公称変流比:3000:1)
  const float KCT1 = float(AREF/512.0*3000.0/190.0);
                        // 電流センサ係数 PWC (公称変流比:3000:1)
  const float KCTu = (1.0);
           // 電流センサ係数 売買

  使用するトランスやセンサーに合わせて調整


関数

analogReadH()    ADCアナログデジタル変換の関数(前半)
ISR(ADC_vect)    ADCアナログデジタル変換の関数(後半)

TimeUp()       1秒毎に割り込みが発生

SecCalc() 1秒毎の電圧・電流・電力の算出および集計

DayUpdate() 1日分を累計(未処理)

OndoSet()       温度計測

dateTime        SD 日付設定

TdayDsp()       起動時に日付・時刻の確認用(表示機器に合わせて変更) 

Net_init()        ネット環境初期化(DHCPを使用する場合はコメントを復活)

sendNTPpacket
NTP_Call()
setTday
NextDay()
              NTP処理および日付処理関数

TBLinit         SDカード保存ファイルの初期化(NULLファイルの作成)
TBLSave        SDカード保存ファイルの書込み
TBLLoadHx       SDカード保存ファイルの読込み(時刻情報) 
TBLLoadMx       SDカード保存ファイルの読込み(分情報)

web_server()      照会処理
              IPアドレス/       電圧・電力等のリアル情報
              IPアドレス/J      電圧・電力等の時刻別情報(当日)
              IPアドレス/Jyymmdd 電圧・電力等の時刻別情報(指定日yymmdd)

Arduino 電力量計 DIY 14 とりあえずNewマシーンの開発状況

変更内容が多かったので、ソフトはほぼ全面改訂になっている。

電圧・電流・電力計測が出来るようになった。
汎用性も考慮して電流計測はMEGAで11個までは出来そうです。
余剰や家庭用パワコンを9台接続して50KWソーラを構築している用途にも使えるでしょう
自分的にはパワコン6台できれば支障はないのです。

表示をどうするか
TFT表示が手軽なのだが、未使用のLCDモジュールもあるし

SDデータ保存はデータ形式も大変更なので新規作成

どれから着手するかな~

エレキジャック 40文字×4行 LCDモジュールを使ってみる
ArduinoでキャラクタLCDに文字を表示させる
wsnakのブログ

Arduino 電力量計 DIY 13 とりあえずNewマシーンの仮接続

nmc.jpg
開発の必要性が薄いからなかなか気が重くて進まない。
やっとこさ手持ち部品を使って仮接続。
CT接続は1個ソケットが不足しているしCTも1個しか無いから
とりあえずソフト改版用の仮接続でしょうか
目が・・・・細かい作業は嫌だ~~
今回はソケットもケチってイーサネット シールドへ直付け半田(悩んだけど・・・)

まだケースとか表示部品を決定していない。

この環境下で
・電圧計測(100V x 2 = 200V x 1)
・電流計測( x 1)
・電力計測( x 1)

今回の電源電圧計測は電圧検出トランスを使用しないで
Tr100.jpg
100円ショップの充電器のトランスを使ってみました
手持ちの180Ωの抵抗を3個使用して1/3に分圧しています。
当然ダイオードも再利用です。(発光ダイオードもどこかで使えるかも)
CT接続は前回と同様オーディオ等に使われているRCA端子を使ってます
RCA端子のメスはスカパーチューナーからの再利用です。あと1個・・・・
オーディオケーブルはたくさん余ってますから使わなくてはね

多分これで良いとは思うのだけど
ソフトで検証予定です。

回路などはArduino 電力量計 DIY 6 まとめを参照して下さい
抵抗値が異なる位です。

2/10追記
いやはや算出方法やデータ保存方法の変更、余剰対応等汎用化を考えていたら
ソフト全面改訂になってしまった。こりゃ大変だ!!

Arduino 電力量計 DIY 12 作り直してみようかな

Arduino 電力量計 は稼働中で太陽光発電状況管理ソフトで運用しているが
メモリー不足の関係か、ある一定期間使用すると動作がおかしくなるからリセットする必要がある
電圧計測値の保存形式もケチケチ設計しているから100V以下の保存もできない

稼働中の機器はそのまま運用しておきたいから
別機器を作らないといけない

ソフトの書き換えは当然必要なのだが
ハードの作りも変えようと思う

計測地点で電圧・電流波形、時刻別・日別・月別。年別発電量をディスプレイ表示しているが
必要ないんだよね。波形はほぼ正弦波だという事は確認できたしね。
必要なのはその時点の電圧・電流・電力の表示なのです。
稼動している確認になるからね

電力量はPCで見れるから、遠隔地で見るとしたら測定地点と同じ瞬時情報ですかね。
これもPCやスマホで見れてるしな~

データも数十年分保存しておく必要もないから1ヶ月分もあれば充分すぎる
今回のハードは少しケチって作るかな
トランスも安い電源トランスでやってみよう、付けたくない人は電圧測定無しモードも考慮します。
この方が取り付けが楽だからね。電流測定用のCTは必要だけど難しくないからね。

とりあえずは現行機器の置き換え用で作りますが
応用編として太陽光発電でPC連携したい方、家庭内電力管理HEMTを安価DIYできます。
要は計測した値をどう集計管理するかはソフトの問題ですからね。

さて電圧・電流波形をADCしていて中性線(ゼロ電位)の計測値が結構ぶれるのです。
計測の1セット間で±511に対して約±10ふらつきます
オシロで見れればどんなぶれ具合かはハッキリするのですが
この為に測定範囲が狭くなります、予定より早く飽和してしまいます。
特に系統電圧が112V以上になるという想定外になったから計測に支障をきたしました。
この辺は想定設計と現実とのギャップなのでしょうね

今回はある程度のマージンを考えます。(精度は荒くなるけど)

少しでもぶれを少なくする為に
ノイズ対策について(PIC AVR 工作室)
analog referenceピンとGNDピンの間に0.1μF程度のパスコンを挿入すること。
これによって参照電圧に乗っているノイズを軽減することが出来ます。
←効果を確認済み(2/14)

これは適用するとして、AD変換中CPUを休止モードはこの間に他の処理をしているから無理だな

トランスの半田付けはしたけど・・・それから先が進まない

Arduino 電力量計 DIY 11 Android でメッセージを受信する方法(im.kayac.com経由)

Arduino MEGAを使用した野立て用の発電モニターの製作

発電状況や異常時の通報を受け取る

im.kayac.com経由でiPhoneへ通知が届く様にしているのだが、Android でもメッセージの受信をする方法

データの流れ: Arduino --> im.kayac.com --> iphone & Android


Android で Xabber google talk を サポートしたアプリ(無料)を使用します。

※ Xabber の受信画面
ZTE k1

【設定方法】

kayac で アカウントの登録
ログインしたらアカウント設定

ZTE k2
設定追加になるので iphone にも通知が届きます

ZTE k3
このアクチベーションコードを Xabbe から送信する。

Xa0.jpgXa1.jpgXa3.jpg
Xabberの設定です。
1.メルアドの登録
2.kayacの登録(Gmail)
3.kayacへアクチベーションコードの送信
これで受信できると思います。

ZTE k4
kayacのアクチベーション完了の確認画面
黄色はXabberに登録したメルアドが表示される

Arduino 電力量計 DIY 10 今後の取り組み

Arduino MEGAを使用した野立て用の発電モニターの製作

検索で訪問されている方も有るので

現在、波形表示する関係でメモリーを消費しているが、
これをやめたらMEGAを使わないでも配電盤や発電の主幹電力のみの計測もできるので
スリム化されたソース公開も出来るかな?
計測も皮相電力と実効電力を算出していたが、
補正調整をするので・・・どちらでやっても大差ないので簡単に作ってみようかな
それも系統電圧計測用には電圧検出トランスを使わないで安価な電源トランスを使ったパターンと
電圧計測しないでを電圧固定設定する簡易版も用意したら安価に計測機器も製作できるから

なんて考えています。

液晶画面が真っ白は温度の関係だったようで・・・連続の雨で気温も下がったのでしょう
自然復旧しました。
発熱を考えたら電源はUSBから5V供給が良いですね。

気持ち的には計測値をリアル表示していた方が安心感はあるのだが
液晶故障中や遠方監視ではネット経由で情報は取得できるから
無くても実害はないのです。

Arduino 電力量計 DIY 9 運用その後 真っ白画面

Arduino MEGAを使用した野立て用の発電モニターの製作

いやはや台風接近に備えて野立て小屋に行ってみれば

発電モニターの画面が真っ白!
え! 電源再投入で起動し直しても真っ白

計測はちゃんと行っていてネット経由で動作は確認できるのだが・・・

あんなに苦労して波形表示等を行っていたのに・・・残念すぎる。

おそらく画面制御チップがお釈迦ッたのでしょう

予備機は有るのだが壊れるのが早すぎる

どうするべ~

モニターで各種情報を表示できる極小サイズのArduinoマイコン「MicroView」

モニターで各種情報を表示できる極小サイズのArduinoマイコン「MicroView」


Arduino(アルドゥイーノ)をチェックされている人はご存じかもしれないが・・・

色んな発想がされているのですね。

Arduinoは私も電力モニター製作で使用していますが、

教育用に考案された関係か使い勝手が良いです。

ただメモリーネックは気を付けないとトラブルの原因になります。

C言語によるソフト作成なので柔軟性が良く

アナログデジタル変換やデジタル入出力を標準で持っているので学習用に留まらず

ちょっとしたものを作るのには最適です。

汎用パソコンでは出来ない事が簡単に手軽にできる。

是非日本の学校の教材で活用して欲しいです。

パソコンの本当の面白さはソフト作成。創造の実現化ですから。

単に出来上がったソフトを使うだけの≒使われる世界観とは違う

ゲームで遊ぶより断然おもしろい

ハード機器の制御もできるから創造力開発に最適だと思う

もういいかげん人を記憶装置化するだけの狂育からは脱皮してほしいですね。


これに小さなモニタを付けたりUSB接続をコンパクトにまとめると

コレになるのかな

しかしながら商品化の機動力は外国は凄い

英語は長年教育時間が有ったが全然身についていないのは残念です。

技術資料なども英文が多いので読める事は大切です。

今は翻訳サービスが有るので使っているが・・・未だに変な翻訳なんですよね。

Arduinoでのメモリ使用率の調べ方

ソフトの手直しをしたら・・・・またまた動作が変!!!
SDカードへの記録が当日分は良いのだけど他の日にちへも変なデータを書込みを行って壊れてしまう。

おそらくメモリーだと思うのだが・・・・

数値的に検証する方法は無い物かと調べていたら

ものづくり日記 Arduinoでのメモリ使用率の調べ方
avr-objdump が何処に有るのか捜していたらArduino開発環境をインストールしたディレクトリー内に有った。
バッチファイルを作成して表示
memdebcom.png
だけど表示内容が今一理解できない

Todotaniのはやり物Log Arduinoメールチェッカー(その3)
Arduino Unoのメモリ
Arduinoで、小っちゃいIC(ATTiny)を使う方法
を参考にして考察中です。

スタック関係があやしい気もするので
ローカル変数を共通化して減らしたり、
Web照会で必要性の少ないルーチンを削除したり
壊れては困る変数を前に移動させたりと
試行錯誤の結果・・・なんとか異常書込み現象は無くなった感じです。

SDカードへの記録するデータ構造を大変更すれば変数領域は削減できるのだが
現行稼働システムなので余り大変更を加えたくないのです。
当初から省メモリ設計をしないと後々尾を引きます。

Arduino カラスの悲鳴「ギィヤッ!」を鳴かせたい!!

カラスを近づけない効果的な方法 として カラスの悲鳴「ギィヤッ!」を聞かせる方法がるある

100秒博士アカデミー カラスを撃退できるカラスの鳴き声公開中!
※ご注意
データをパソコンの記憶装置に記憶して楽しむことは可能ですが、個人のホームページに掲載したり、ネットワーク上に掲出することは禁止しています。

となっているので

個人的に利用する分にはOKかな?

そこで、余っている Arduino を使って出来ないものか?
調べると
【冬休みの工作】Arduinoをしゃべらせてみた
SDカードのWAVファイル再生する。
Arduino+サウンド(WAVデータを再生する)
  Wave Shield
  WAV ファイルフォーマット
音をつくる
AquesTalk pico

なんか出来そうな予感!。

Arduino 電力量計 DIY 8 運用改善

Arduino MEGAを使用した野立て用の発電モニターの製作

発電状況や異常時の通報を受け取る

im.kayac.com経由でiPhoneへ通知が届く様に修正した。 (WebClientをkayacテスト用に変更したスケッチ)

例によってメモリー不足で混乱しましたが無事初期目的を達成できました。

im3.jpg

通知内容は
1.発電開始
2.発電終了(1日の発電量報告)
3.発電状況(1時間毎の発電量・最大発電値・最大電圧・温度)
4.パワコン異常通知(発電停止しているパワコンがあれば通知)
5.温度上昇通知(設定温度以上になれば通知)
6.電圧上昇通知(設定電圧以上になれば通知)
7.フルパワー発電通知(設定値以上になれば通知)

もう・・・
電圧上昇や発電が上がったり下がったりするので
ちょっとウルサイ
電圧なんか107V以上は当り前!?
反応しにくい設定値にした。

しかし今日は発電日和なのか、

発電するのだが雲が多いので通知がグチャグチャ

1分間継続したら通知する様に修正

いや~
しかし通知が届くのは便利が良いです。

DIYならではの使い勝手改善です。

Arduino 電力量計 DIY 7 運用して感じる事

自分から発電状態を見に行く事はできるのだが

やはり、異常時にメールが欲しい。1時間ごとに受取ってもいいな~

Ethernet Shield メール送信
外部サーバーには接続は無理ポイが自宅にサーバーを置けばできそうだ
以前はサーバーを設置していたけど・・・どうするかな~~

メールサーバーだけだから遅くても消費電力の少ないのが良い。

捜すとあるんですね。
Raspberry Pi Type B 512MBRaspberry Pi Type B 512MB
()
Raspberry Pi

商品詳細を見る

Raspberry Pi をメールサーバ化(Postfix+Dovecot)
Raspberry PiでWebサーバを構築してみた
Raspberry Pi(ラズベリーパイ) メモ
Raspberry Pi(ラズベリーパイ)の起動ガイド
WEBサーバーもそこそこの速度で動作するから
Arduino で ADC してネット関連を Raspberry Pi で行うのも面白い


外部サービスを利用する方法
im.kayac.com経由でiPhoneやGmailへ が良さそうだ
arduinoでEthernet Shield利用パターン(送信編)
Arduino+Ethernet Shieldでim.kayac.comにメッセージをポストしてiPod touchで見る


どうも天候や時間帯でWiHiが不安定になる
これで無線LANの不安定さが解消できるかな?
FON用アンテナ反射板を自作する。
WiFi 無線LAN 延長アンテナケーブル 自作
自宅にはこれを付ける事にした。
高品質 高指向性 2400MHz ワイヤレスLAN用Wifiアンテナ-528650高品質 高指向性 2400MHz ワイヤレスLAN用Wifiアンテナ-528650
()
OEM

商品詳細を見る


これに外部アンテナが付けれれば~~いいのだけどな~
無線LANルーター「Multi Pocket MZK-MF300N」を買ってみた
分解写真でアンテナの位置が分かったので設置角度を調整したら・・・通信が安定している。
自宅のアンテナを取り換えると更に安定する予感!

それでダメなら
共振を使って外部アンテナをつけてみるか


Arduino 電力量計 DIY 6 まとめ

Arduino MEGAを使用した野立て用の発電モニターの製作

9月から運用に入りました。微調整やPCソフトはこれからボチボチやっていきます。

忘れるので自作のメモです。

構成図
構成

部材はココ


回路図
回路n

回路及びスケッチなどを参考にさせていただきました。
なんでも作っちゃう、かも Arduino電力計
I2C温度センサADT7410を使う

web照会
pcmR.png
pcmJ.png
pcmP.png

他にも日別・月別。年別、PCデータ連系用があります。

モニター画面



8/29現時点での総括

Arduinoは良くできている

・純正品は高価だが互換品を使用すれば費用を抑える事ができる

・開発環境が整備されているので使いやすい

・特にライブラリーが用意されているので簡単に機能を付加する事ができる
 インサーネットは特に便利が良い
 I2Cインタフェースを使用すればRTC(リアルタイムクロック)や温度計測が簡単に行えるモジュールが有る

・気をつける事は
 MEGAだと使用しているピンが異なるので注意が必要
 RAMが少ないのでデータ定義をケチケチ設計する必要がある
 定数は極力プログラム領域に移動させる

ハード機能を追加する為にシールドを重ねて使用するのだが
これがかなりの厚みを必要とする。
 ケースは厚みが必要です。

電源を9vで供給しているが、かなり発熱する
やはり5vで供給するように当初から考えた方が良い

ソフト作成上は割込み処理による並列処理は良い。
今回ADC(アナログデジタル変換)の処理中に他の通信やSD記録やTFT表示を行っている

・具体的にはADCをCPUに指示するとADC完了まで他の処理が動作する。
 ADC完了割込みが発生したら結果を取り出して、次のADCをキックすれば良い。
 ADCを延々と割込みループが行える

・時間割込みを1秒ごとに発生させ、1秒毎の集計や表示などを行う
 注意すべきは1秒以内で処理を完結するものと数秒処理が必要なものとを分けて考慮すれば良い

・ADCのサンプリングのムラは補正を行っている
 ただRAMの関係で主幹電圧と電流だけ補正処理を行っている
 だからパワコン電流値は電流が多い時はカーブが正弦波に近いが少ないと波形が歪むので誤差が大きくなる

今現在のスケッチサイズは75KBぐらいです。だから苦しいの!

こんな感じかな

 
NEXT≫
プロフィール

お気楽どん

Author:お気楽どん

最新記事
最新コメント
ありがとう
気が向いたら
にほんブログ村 ライフスタイルブログへにほんブログ村 その他趣味ブログ 電子工作へ にほんブログ村 環境ブログ 風力発電・太陽光発電へ

DHC DHC DHC 売国議員
天気予報
カテゴリ
検索BOX・タグ一覧
リンク