【问题标题】:Read data form serial port on windows with php用php从windows上的串口读取数据
【发布时间】:2015-04-14 05:42:06
【问题描述】:

我想使用 USB 串口读取 php 中的数据。 我正在使用 Rs232 转 USB 电缆。我有 sartorius 平衡机。现在我想使用 USB com 端口读取机器数据。并存储在数据库中。

我正在尝试使用https://github.com/Xowap/PHP-Serial 我不知道如何检测机器正在使用哪个 com 端口。

<?php
include "php_serial.class.php";
$serial = new phpSerial;
$serial->deviceSet("COM1");
$serial->deviceOpen();
$serial->sendMessage("Hello !");
$read = $serial->readPort();
$serial->deviceClose();
$serial->confBaudRate(2400);

echo "<pre>".var_export($serial, true)."</pre>"; 
?>

这段代码进入无限循环。

问候 否

【问题讨论】:

    标签: php serial-port


    【解决方案1】:

    我正在使用 Node js 读取串口并将输出发送到 PHP 服务器。

    var fs = require('fs')
    , http = require('http')
    , socketio = require('socket.io')
    , com = require("serialport");
    
    var WebSocketServer = require('websocket').server;
    
    // create the server
    var wsServer = new WebSocketServer({
    httpServer: http.createServer().listen(1337)
    });
    
    var serialPort = new com.SerialPort("COM4", {
    baudrate: 1200,
    dataBits: 7,
    parity: 'none',
    stopBits: 1,
    parser: com.parsers.readline('\r\n')
    });
    
    wsServer.on('request', function(request) {
    
    var connection = request.accept(null, request.origin);
    serialPort.on('data', function(data) {
            //console.log('Received Message: ' + data);
            fs.writeFile("data.txt", data, function(err) {
                if(err) {
                    return console.log(err);
                }
            });
            connection.sendUTF(data);
    });
    });
    

    【讨论】:

      【解决方案2】:
        <!DOCTYPE html>
      <html>
      <head>
          <meta charset="UTF-8">
          <title></title>
      </head>
      <body>
          <h1><a href="index.php?status=1">ON</a></h1>
          <h1> <a href="index.php?status=2">off</a></h1>
      
         <?php
          //calling php serial class 
          require_once 'php_serial.class.php';
          $serial=new phpSerial();
          $serial->deviceSet('/dev/ttyACM2');
          $serial->confBaudRate(9600);
          $serial->confParity("none");
          $serial->confCharacterLength(8);
          $serial->confStopBits(1);
          $serial->confFlowControl("none");
          $serial->deviceOpen();
      
          if($_GET['status']){
              $serial->sendMessage($_GET['status']);
              $read=$serial->readPort();
      
              var_dump($read);
              echo $read;
          }
         ?>
      </body>
      </html>
      

      【讨论】:

      • 这是使用php串行类的网页代码html&php
      【解决方案3】:
       int led=3;
      
      void setup(){
      Serial.begin(9600);
      pinMode(led,OUTPUT);
      }
      
      void loop(){
      
      int x=Serial.read();
      
      if(x=='1'){
         digitalWrite(led,HIGH);
          Serial.write(x);
      
      
      }
      if(x=='2'){
         digitalWrite(led,LOW);
          Serial.write(x);
      
      
        }
      
      
      }
      

      【讨论】:

      • 这个 arduino 代码和网页代码都适用于我
      猜你喜欢
      • 2014-12-24
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 2011-02-08
      相关资源
      最近更新 更多