0

私は Arduino XBeeシールドと Sparkfun XBee USB エクスプローラーを持っています。Arduio XBee からのデータ (温度センサー) を送信し、C# プログラムで受信したいと考えています。

とりあえず、C# プログラムに 45, 100 を送りたいとしましょう。

XBee シールドからのデータを受け取りません。コードに欠けているものはありますか?

以下のコードは、Arduino XBee シールドからの送信者です。

SoftwareSerial mySerial(4,5);
void setup()
{
    mySerial.begin(9600);
}


void loop()
{
    if (mySerial.available() > 0)
    {
        mySerial.write(45);
        mySerial.write(',');
        mySerial.write(100);
        mySerial.write('\n');
    }
}

C# での USB XBee エクスプローラーのレシーバー コード:

SerialPort port = new SerialPort();

public Form1()
{
    try
        {
            port.PortName = "COM8";
            port.BaudRate = 9600;
            port.DataBits = 8;
            port.Parity = Parity.None;
            port.StopBits = StopBits.One;
            port.Open();
            Console.WriteLine("Opened");
        }
        catch(Exception ex)
        {
            Console.WriteLine("Sorry! " + ex);
        }

        // Handler for receiving data
        port.DataReceived += serialPort1_DataReceived;
    }

    private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
    {
        if (port.IsOpen == true)
        {
            string RxString = port.ReadLine();
            Console.WriteLine(RxString);
        }
    }

XBee 構成:

  • XBee の 1 つ: Coordinator AT モード -- USB Sparkfun Explorer に接続
  • 別の XBee は: ルーター AT モード -- Arduino シールドに接続

Tomlogic がスタック オーバーフローの質問XBee 双方向通信 (送信側と受信側) で同時に私の質問に答えたように。

4

2 に答える 2