0

私は Arduino Uno に情報を保存しています。そして、Arduino を PC に接続すると、Google Chrome に着信シリアル データを読み取らせます()。Google の API http://developer.chrome.com/apps/serialを見つけました。これが役立つと思います。しかし、実際には私はそれを使用する方法を知りません:D

これが正常に動作する私のArduinoコードです:

//Importing libraries
#include <VirtualWire.h>
#include <stdio.h>
#include <LiquidCrystal.h>
#include <EEPROM.h>

//Main temperature variable
float temp2;

//Measurements saving variable
int addr = 0;
int address = 0;
int tvalue =0;
int svalue;
//Function for saving data to Arduino's storage
int save_data_to_storage()
{
  EEPROM.write(addr, (temp2)*10);
  addr = addr + 1;
  if (addr == 12)
    addr = 0;
  delay(5000);
}

int save;

//Display variables
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

//Begin loops...

void setup()
{
  //Initialize serial port bitRate
  Serial.begin(9600);
  //Alarm pin
  pinMode(9, OUTPUT); 

  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD For 7 seconds:
  lcd.print("BALGHI");
  delay(7000);
  lcd.clear();

  //Receiver set up
  vw_set_rx_pin(8);
  vw_rx_start();
  vw_setup(2000);
}
void loop()
{
  if (Serial.available() > 0) {
      //Display USB Connection
      lcd.clear();
      lcd.print("BALGHI");
      lcd.setCursor(0, 1);
      lcd.print("USB Connection");

      // Send the measurements values to the PC
      svalue = EEPROM.read(address);
      //Serial.write(svalue);
      Serial.println(svalue, DEC);
      address = address + 1;
      if (address == 12){
         address = 0;
      //Delete all measurements data
         /*for (int d = 0; d < 12; d++)
           EEPROM.write(d, 0);*/
      }
      delay(500);
    }

    else{ 
      //Displaying temperature
      lcd.setCursor(0, 0);
      lcd.print("Body Temperature");
      lcd.setCursor(0, 1);
      lcd.print(temp2, 1) + lcd.print(" C Degree");  

      // Get the message from the transmiter 
      uint8_t buflen = VW_MAX_MESSAGE_LEN;
      uint8_t buf[buflen];

      if(vw_get_message(buf, &buflen))
      {
         int i = 0; 
         //Convert the number to DEC
         float temp1 = (((buf[i]-48)*100+(buf[i+1]-48)*10+buf[i+2]-48));
         //Convert the number to C degrees
         temp2 = (temp1)/6.8; // k = 6.8
      }
      //store Numer
      //tvalue = (temp2, 1);

      //Alarm if Temperature is too high
      if(temp2 > 38.4) {
        digitalWrite(9, HIGH);
        delay(500);
        digitalWrite(9, LOW);
        delay(1000); 
      }
      //Or keep calm
      else {
        digitalWrite(9, LOW);
      }

      //Write the measurement data to Arduino storage
      save = save_data_to_storage();
    }
}
4

2 に答える 2

0

私はこれを行うプラグインに取り組んできました。あなたが探しているものよりも広範囲ですが、私のプラグインでどのようにそれを行ったかを見ることができるかもしれません.

参考までに、このプラグインは、ブラウザーでの arduino エディターの始まりです。これは、コードをコンパイルして返すサーバー側アプリケーションと結合し、それを arduino にフラッシュします。arduinoが接続されているシリアルポートに読み書きできます。

シリアルデータを取得する方法を確認するためにクロム拡張に興味があるかもしれませんが、サーバー側のリンクも配置しました

Chrome 拡張機能: https://github.com/DecodedCo/ArduinoInTheBrowser

サーバー側コード: https://github.com/DecodedCo/ArduinoInTheBrowserServer

于 2015-06-24T15:04:32.320 に答える
0

これがあなたが必要としているものだと思います: http://www. tigoe.com/pcomp/code/arduinowiring/1096/ (リンクからスペースを削除してください)

これは、nod.js と websockets を使用して arduino のようなシリアル デバイスを broser に接続する方法に関する説明です。nod には、express.js、socket.io、および node-serialport ライブラリを使用します。

インデックスページはこちら。ソケット通信を処理するP5.jsで記述されたclient.jsスクリプトをロードします。サーバーに対して webSocket を開き、サーバーからのイベントをリッスンします。イベントから取得したデータが何であれ、それ自体の DIV に出力されます。これらを新しいサブディレクトリ /nodeSerialServer/public に保存します。

サーバーは次のとおりです: https: //github.com/tigoe/NodeExamples/blob/master/SerialToSocketIO/server.js (リンクからスペースを削除してください)

Web サーバーを起動し、public/index.html の HTTP 要求をリッスンし、要求されたときにそれを提供します。また、着信 webSocket リクエストをリッスンし、それらを開きます。その際、シリアル イベントのリッスンを開始します。シリアル ポートでキャリッジ リターンと改行を取得すると、取得したものを websocket に送信します。これを /nodeSerialServer に保存します。

これを実行するには、ディレクトリを変更して、これを /nodeSerialServer に保存します。

cd /nodeSerialServer

次に、node を使用して server.js スクリプトを実行します。このスクリプトを呼び出すには、次のように、コマンド ラインで開きたいシリアル ポートの名前を指定する必要があります。

ノード server.js /dev/tty.usbportname

上記の usbportname にポートの名前を入力します。スクリプトが開始されたというメッセージが表示されます。ブラウザを開き、次のアドレスを開きます: localhost:8080

于 2015-09-21T08:25:05.830 に答える