緑の中に

緑の中に
国立天文台

1/26/2023

文字を流れるように表示します

 流れるように表示します









---------------------------------------------------------------------------------

// 文字を流れるように表示。

#include <I2CLiquidCrystal.h>

#include <mglcd.h>


/** インスタンス生成 **/

I2CLiquidCrystal  lcd;


/** メッセージ準備(Stringクラス)  **/

String message = String("At a new cafe in Tokyo, customers give their orders not to a person, but to a robot. ");


int length;


void setup() {

  /** LCD初期化(16文字2行) **/ 

lcd.begin(16, 2);


/** カーソルをhome位置へ移動 **/

  lcd.home();


/** メッセージ表示 **/

  length = message.length();

}



void loop()

{

  for (int i = 0; i<length; i++)

  {

    delay(800);

    ClearRow(0);

    lcd.print(message.substring(i, i + 15));

  }

}



void ClearRow(int rowNum)

{

   lcd.setCursor(1,0);

  }


-------------------------------------------------------------

最もシンプルなスケッチ例です

1/25/2023

-12℃を記録 

 -12℃を記録 寒気が入りました

3時44分 4時04分 にマイナス12℃を記録しました


  データーロガー完成後の初めての最低気温を観測しました。

ルームエアコンの室温設定を22℃としました。しかし室内の温度計は19℃までしか上昇しませんでした。



1/22/2023

冷えています(外気温)


 冷えています

    氷点下 7℃ です 

2023-01-22 02:05:11   -6.1 ℃
2023-01-22 02:15:15   -7.1 ℃
2023-01-22 02:25:19   -6.1 ℃
2023-01-22 02:35:23   -6.1 ℃
2023-01-22 02:55:29   -6.1 ℃
2023-01-22 03:05:33   -7.1 ℃
2023-01-22 03:15:37   -6.1 ℃
2023-01-22 03:25:41   -6.1 ℃
2023-01-22 03:35:45   -6.1 ℃
2023-01-22 03:45:49   -7.1 ℃
2023-01-22 03:55:53   -7.1 ℃
2023-01-22 04:05:54   error
2023-01-22 04:15:58   -6.1 ℃
2023-01-22 04:26:02   -7.1 ℃
2023-01-22 04:36:05   -6.1 ℃
2023-01-22 04:46:09   -7.1 ℃
2023-01-22 04:56:13   -6.1 ℃
2023-01-22 05:06:17   -6.1 ℃
2023-01-22 05:16:20   -7.1 ℃
2023-01-22 05:26:24   -7.1 ℃
2023-01-22 05:36:28   -7.1 ℃
2023-01-22 05:46:31   -6.1 ℃
2023-01-22 05:56:33   error
2023-01-22 06:06:37   -6.1 ℃
2023-01-22 06:16:41   -6.1 ℃
2023-01-22 06:26:44   -6.1 ℃
2023-01-22 06:36:49   -6.1 ℃

2023-01-22 06:46:53   -5.1 ℃
2023-01-22 06:56:57   -7.1 ℃

朝起きたとき、私の部屋の室温は15℃でした。
外は冷えてきている実感がありました。


1/20/2023

LCDに表示ができました

 LCDに表示ができました


 

スケッチを載せます(従来のいうところのプログラムを載せます)

----------------------------------------- 

#include <I2CLiquidCrystal.h>

#include <mglcd.h>

/** インスタンス生成 **/

I2CLiquidCrystal  lcd;


/** メッセージ準備(Stringクラス)  **/

String msg1="Hello "; 

String msg2="Arduino "; 


void setup() {

  /** LCD初期化(16文字2行) **/

  lcd.begin(16,2);

  

  /** カーソルをhome位置へ移動 **/

  lcd.home();


  /** メッセージ表示 **/

  lcd.print(msg1);

  

  lcd.print(msg2);


  /** カーソルを2行目左端へ移動 **/

 //lcd.setCursor(1,1);

  /** メッセージ表示 **/

 lcd.print(msg2);

}


void loop() {

  /*今回は何もしない */

}


------- 以上----------------

 

1/16/2023

液晶表示器(LCD)を扱う

         液晶表示器(LCD)を扱う


LCD表示器:ACM1602N1-FLW-FBW
I2Cインターフェースタイプ 16文字x2行 LCDモジュール バックライト付

  I2C接続キャラクタLCDモジュール 16x2行
       白色バックライト付    \1280
             

ブレッドボード BB-102  \300
・穴数:830   
・サイズ:165X54.5X8.5mm(連結用の突起部除く)
・電源ライン(赤・青):2系統

ブレッドボード用DCジャックDIP化キット  \100







                                      


                                  

 






*注意
長いピンを用いる

ピンは基板の下から上に向けて挿入

ピンヘッダ(オス)長めタイプ

















端子名をメモする














LCD表示器の表示は、マイコンを使う必要があります。
Arduino マイコンでやさしく扱えると思います。
しばらく、この内容の記事を書きます。

この大き目のブレッドボードとLCD表示器の組み合わせはGoodです。
また、ピンヘダ(オス)の長いタイプを用いることによりブレッドボードに固定できます。

(PICマイコンでLCD表示器を扱った経験がありますが、その時はやさしいという記憶ではなかったように思います。何本もの接続線を使用したからです。)

今回の接続はI2Cという通信方式で接続線の本数は多くなりません。配線が楽です。



 

1/13/2023

error

            error」 と表示させます

 2023-01-13 01:03:34 +0900 
2023-01-13 01:43:44 +0900
2023-01-13 02:54:04 +0900 。
2023-01-13 03:04:05 +0900 6-A 

2023-01-13 01:03:34   error
2023-01-13 01:13:37   -1.1 ℃
2023-01-13 01:23:40   -3.1 ℃
2023-01-13 01:33:43   -2.1 ℃
2023-01-13 01:43:44   error
2023-01-13 01:53:47   -1.1 ℃
2023-01-13 02:03:51   -2.1 ℃
2023-01-13 02:13:54   -1.1 ℃
2023-01-13 02:23:57   -1.1 ℃
2023-01-13 02:34:00   -1.1 ℃
2023-01-13 02:44:03   -1.1 ℃
2023-01-13 02:54:04   error
2023-01-13 03:04:05   error
2023-01-13 03:14:08   -1.1 ℃
2023-01-13 03:24:11   -2.1 ℃
2023-01-13 03:34:15   -2.1 ℃
2023-01-13 03:44:18   -3.1 ℃
2023-01-13 03:54:21   -1.1 ℃

プログラムの修正により受信データー個数の不足時は、ご覧の通りerrorを表示する。
修正箇所の一部を示します。 if文の使用により簡単に修正できました。
生受信データ個数が5個に満たなければ、受信不良として「error」を表示します。
5個の根拠は特にありません。
7個でもいいでしょう。この数をあまりにも大きくすると、すべての受信データに対して
「error」となります。

確かに1次受信データの記録を見るとご覧の通り、不完全な受信となっています。
この理由は現在不明です。

if array1_1.size <5 then #受信生データ個数5未満の場合
# if array1_1.size >=5  が偽の場合、以下
t=Time.now
p t.to_s    #時刻のフォーマット
t1=t.to_s  #時刻のフォーマット
t1<<" "      #時刻データの最後に空白を1桁入れる。これにより見やすくなった。
p t1<< sr  #時刻データ+観測データ5個
puts ""

file= File.open("1_data_LM61.txt", "a")
file.print t1,"\n"
file.close      #ファイルを閉じる

file= File.open("2_data_LM61.txt", "a")#ファイルへの追加書き込みモード
#file.print t," ",str1.to_i," ", temp,"℃", "\n"°
file.print (t.to_s).slice(0,20),  " ",  " ","error","" "\n" #タイムスタンプ+error
file.close      #ファイルを閉じる
end

1/12/2023

プログラムの修正が必要です

                         プログラムの修正が必要です

受信生データの個数が1個とか2個の場合があります。

1_data_LM61.txt
2023-01-12 05:13:31 +0900  -2
2023-01-12 05:23:32 +0900 2-A 
2023-01-12 05:33:21 +0900 120-A -4123-A -3118-A -5123-A -3120-A -4120-A -4120-A -4118-A -5117-A -6119-A -5118-A -5122-A 

2_data_LM61.txt
2023-01-12 05:13:31   0.0 ℃
2023-01-12 05:23:32   0.0 ℃
2023-01-12 05:33:21   -5.1 ℃

0.0 ℃の観測ではないはずです。受信データ数が不足しています。
この受信データ数不足の原因は不明です。タイミングの関係と理解しています。

この場合の論理を次のように修正しました。
if array1_1.size >=5 then #受信生データ個数5以上で中央値の計算等の処理をする。~end文まで。
   #5個未満なら何もしない


array1_1は生受信データの格納配列<数値型>です。
生デー5個以上の受信で、計算ロジックをすることにしました。

5個未満の受信状態では、2_data_LM61.txt には何の記録も残りません。
詳細の確認は 1_data_LM61.txt  で確認できます。


1/06/2023

         二十四節気          2023年の小寒は1月6日です 

2023-01-06 03:54:07   -5.1 ℃

2023-01-06 04:04:11   -5.1 ℃

2023-01-06 04:14:13   0.0 ℃

2023-01-06 04:24:16   -5.1 ℃

2023-01-06 04:34:20   -5.1 ℃

2023-01-06 04:44:23   -4.1 ℃

2023-01-06 04:54:25   -0.0 ℃

2023-01-06 05:04:28   -5.1 ℃

2023-01-06 05:14:32   -6.1 ℃

2023-01-06 05:24:36   -5.1 ℃

2023-01-06 05:34:39   -5.1 ℃

2023-01-06 05:44:42   -5.1 ℃

2023-01-06 05:54:46   -6.1 ℃

2023-01-06 06:04:50   -6.1 ℃

2023-01-06 06:14:54   -5.1 ℃

2023-01-06 06:24:59   -6.1 ℃

2023-01-06 06:35:03   -6.1 ℃

2023-01-06 06:45:07   -6.1 ℃

2023-01-06 06:55:11   -6.1 ℃

2023-01-06 07:05:15   -6.1 ℃

2023-01-06 07:15:18   -6.1 ℃

2023-01-06 07:25:23   -6.1 ℃

2023-01-06 07:35:27   -6.1 ℃

2023-01-06 07:45:32   -5.1 ℃