IM920cを使った920MHz通信の実験2(受信装置側に表示機を付けてみた)

0

    IM920cを使った920MHz通信の実験2(受信装置側に表示機を付けてみた)

    JUGEMテーマ:電子工作

     

    前の記事で
    http://miha.jugem.cc/?day=20190210

    次は電波の飛びを測定します。と書いたんですが、
    パソコンとシリアル接続してモニターしながら家の周りをうろうろするのも結構厳しいなーと言う訳で、
    受信機側に表示機を付けて送信機の位置を固定して受信機だけを持ってうろうろする作戦にしてみました。

    それで部品箱に余っていたACM1602NI-FLW-FBW-M01

    http://akizukidenshi.com/catalog/g/gP-05693/

    を接続して受信データを表示してみました。

     

    ■回路図

     

     

    ■完成図

     

    左が送信機。右が受信機

     

    ■受信機をZiplockに投入

     

    表示機が光っているので透けて見える

     

    ■結果

     

    □直線道路でのテスト。

     


    間に電柱などの障害物はあるが 

    ゴール地点まで平坦で見通せていた

    実用的な通信が可能な距離は511m。

     

    そこから先に行くと地面が下がっており、

    そのせいで見通せなくなってしまった可能性があるが、その場合の限界到達点は782m。

     

    □建物が障害物になるケース

     

    他の実験としては我が家はマンションの5階なんですが、

    自宅マンションのベランダに送信機を置いてテストを行った。

    その場合、ベランダの反対側の1階でも安定して通信が可能でした。

     

    □建物を突き抜けて通信できるか?

     

    自宅マンションは電波が通過したようなんで、

    周辺のマンションを障害物に見立ててテストした。

    障害物の量にもよるが

    わりと障害物が有る方角で100m程度は通信可能。

     

    □田舎の山の上に送信機を付けた場合に

     

    結構遠くまで電波が飛びそうですが

    どうなんでしょうねー。

     

    ■プログラム

     

    □送信側
    IM920_Sender.ino

    #include <SoftwareSerial.h>
    SoftwareSerial mySerial(10, 11); // RX, TX

    void setup() {
      Serial.begin(9600); 
      Serial.println("setup soft serial send count version0.01");
      mySerial.begin(19200); 
    }

     

    int nCount = 0;
    void loop() {
        char szBuf[256];
        sprintf(szBuf, "TXDA %014d", nCount);
        mySerial.println(szBuf);
        Serial.println(szBuf);
        nCount++;
        delay(1000);
    }

     

    □受信側

     

    IM920_Receiver.ino

    #include <Wire.h>
    #include <SoftwareSerial.h>

    SoftwareSerial mySerial(10, 11); // RX, TX

    void setup() {
      Serial.begin(9600); // ハードウェアシリアルを準備
      Serial.println("Ready version0.01");
      mySerial.begin(19200); // ソフトウェアシリアルの初期化

      Wire.begin();       // I2C初期化
      LCD_begin();
    }

    char nCount = 0;
    char szBuf[256];

    void loop() {
      
      if (mySerial.available()){
          char c = mySerial.read();
          Serial.write(c);
          if(c==0x0d){
            strcat(szBuf, "                                ");
            LCD_disp(szBuf);
            memset(szBuf, 0, sizeof(szBuf));
            nCount = 0;
          }
          else{
            if(c!=0x0a){
              szBuf[nCount] = c;
              nCount++;
              if(nCount>=255){
                nCount=0;
              }
            }
          }
          delay(1);
      }
      if (Serial.available()){
        char c = Serial.read();
        mySerial.write(c);
        delay(1);
      }
    }

    void LCD_disp(char *str)
    {
      byte i;

      writeCmd(0x80);//1行目
      delay(5);
      for(i=0;i<16;i++)
      {
        writeData(str[i]);
        delay(1);
      }
      writeCmd(0xC0);//2行目
      delay(1);
      for(i=16;i<32;i++)
      {
        writeData(str[i]);
        delay(1);
      }
    }

    void LCD_begin(void)
    {
      // LCD初期化
      delay(15);
      writeCmd(0x01);//クリア ディスプレイ
      delay(5);
      writeCmd(0x38);//8ビットモード、2ライン、5x8ドット
      delay(5);
      writeCmd(0x0f);//ディスプレイON、CURSOR-ON、blinking-ON
      delay(5);
      writeCmd(0x06);//CURSOR移動、スクロールOFF
      delay(5);
      writeCmd(0x80);//ディスプレイON、CURSOR-OFF、blinking-OFF
    }

    void writeCmd(uint8_t cmd) 
    {
      uint8_t rs_flg;
      Wire.beginTransmission(0x50);
      rs_flg = 0x00;
      Wire.write(rs_flg);
      Wire.write(cmd);
      Wire.endTransmission();
    }

    void writeData(uint8_t dat) 
    {
      Wire.beginTransmission(0x50);
      Wire.write(0x80);
      Wire.write(dat);
      Wire.endTransmission();
    }
     


    スポンサーサイト

    0
      • 2019.10.22 Tuesday
      • -
      • 11:54
      • -
      • -
      • by スポンサードリンク


      PR

      calendar

      S M T W T F S
           12
      3456789
      10111213141516
      17181920212223
      24252627282930
      << November 2019 >>

      selected entries

      categories

      archives

      recent comment

      recent trackback

      profile

      search this site.

      others

      mobile

      qrcode

      powered

      無料ブログ作成サービス JUGEM