1

ナノ印刷プロジェクト用のテレメトリ プラットフォームを開発しています。私のチームは Netduino 2 plus を使用しています (私の最初の選択ではありませんが、どうしますか?) 私は C# にまったく慣れておらず、初心者のプログラマーです。

I2C 温度センサーを正常にポーリングし、debug.print を使用してコンソールに書き込むコードがいくつか書かれています。代わりに、このデータをファイルに書き込みたいと思います。

SD カードから PC にファイルを転送する例はいくつかありますが、これは私には不必要に思えます (ただし、バッファをオーバーランさせないためには完全に必要なのでしょうか?)。コンソールに書き込む代わりに、単にデータをファイルに書き込む呼び出しはありますか?

PC のシリアル ポートをリッスンするアプリケーションが必要になる可能性があることは理解しています。ハードウェアから書き込むには、対応するアプリケーションも必要になるようです。過去に、シリアルを開いてUSB経由でファイルの場所に送信するだけのマイクロコントローラーを使用したことがあります。

データをコンソールに出力するために使用しているコードは次のとおりです。

using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
using System.IO.Ports;

namespace NetduinoApplication1
{
    public class Program
    {
        public static void Main()
        {
            OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);
            OutputPort p = new OutputPort(Pins.GPIO_PIN_SDA, true); 
            p.Write(false); 
            p.Dispose();
            // write your code here
            byte[] Addr = new byte[1];
            Addr[0] = 0x07;
            byte[] TxBuff = new byte[9];
            byte[] RxBuff = new byte[9];
            I2CDevice.Configuration I2C_Configuration = new I2CDevice.Configuration(0x5A, 100);
            I2CDevice I2C1 = new I2CDevice(I2C_Configuration);
            I2CDevice.I2CTransaction[] WriteTran = new I2CDevice.I2CTransaction[] { I2CDevice.CreateWriteTransaction(Addr), I2CDevice.CreateWriteTransaction(TxBuff) };
            I2CDevice.I2CTransaction[] ReadTran = new I2CDevice.I2CTransaction[] { I2CDevice.CreateWriteTransaction(Addr), I2CDevice.CreateReadTransaction(RxBuff) };
            while (true)
            { 
                int iWriteCount = I2C1.Execute(WriteTran, 1000);
                //Debug.Print("Write Count: " + iWriteCount.ToString());
                led.Write(true);
                Thread.Sleep(200);
                int iReadCount = I2C1.Execute(ReadTran, 1000);
                if (iReadCount >= 2)
                {
                    int iVal = RxBuff[1] * 256 + RxBuff[0];
                    double Temperature = ((iVal * 0.02) - 273.15) * 9.0 / 5.0 + 32.0;
                    Debug.Print("Temperature: " + Temperature.ToString() + " deg F");
                }
                led.Write(false);
                Thread.Sleep(200);
            }

        }

    }
}

アプリケーションを作成する必要がある場合は、作成したいと思いますが、実際には何らかの方向性を使用できます。ここでのちょっとした経験は大いに役立つでしょう。

4

1 に答える 1

1

それで、いくつかのことが頭に浮かびます。

  1. Netduino にネットワーク接続がある場合は、SD カード上のファイルにデータを書き込んでから、FTP 経由でファイルを転送できます。これを行うためのライブラリはたくさんあります。
  2. 1 と同じですが、データを Web サービスにプッシュする点が異なります。Web サービスへの簡単な JSON 投稿を行うために使用できる HTTPRequest ライブラリがあります。Web サービスを作成する必要があります。しかし、データ フィードを受け取ってubidotのように保存する無料のサービスもたくさんあります。
    1. 本当にシリアル ポート ルートを使用したい場合は、Netduino の USB シリアル ポートがデバッグ用に予約されているという悪いニュースがあります。しかし、これを行うための安価な小さな USB UART アダプタを入手できます。それを説明する素晴らしいブログ投稿がここにあります。

幸運を!

于 2015-04-01T19:59:20.610 に答える