ボケが進行中!

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

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

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


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

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

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

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

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


当初 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

スケッチにより動作したりしなかったりするからバラックで動作確認した方が良い
スケッチの書き込みがエラーになっても何度か行うと書込みできる

気に入りブログが更新したら通知する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

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電力モニターに組込み遠隔指示でリセット動作を確認。やったね素晴らしい!

NEXT≫
プロフィール

お気楽どん

Author:お気楽どん

最新記事
最新コメント
ありがとう
気が向いたら
にほんブログ村 ライフスタイルブログへにほんブログ村 その他趣味ブログ 電子工作へ にほんブログ村 環境ブログ 風力発電・太陽光発電へ
天気予報
カテゴリ
検索BOX・タグ一覧
リンク