关于 php 连接硬件的问题

1. 脑子抽了,想做点不一样的东西

2. 问题描述?

想做一个php对接硬件的demo,预期效果如下,一个电子秤,称了东西,数据在php后台能读取到
去找了很多的文章阅读,有一篇相差无几,但是存在一定的困惑,实现效果如下
电脑安装一个串口软件,提交串口数据到前端,前端ajax接收数据后再提交到后台

这个是串口软件,window操作系统下
关于 php 连接硬件的问题
前端jaax页面代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script>
</head>
<body>
<div id="fdsa" class="">
</div>
</body>
<script>
    //假设每隔秒发送一次请求
    window.onload = function () {
        getApi();
    }
    function getApi() {
        //设置时间秒  1000-毫秒  这里设置你自己想要的时间 
        setTimeout(getApi,1*1000);
        $.ajax({
            url: 'http://localhost/comdemo/com.php',
            type: 'get',
            dataType: 'text',
            success: function (data) {
                //方法中传入的参数data为后台获取的数据
                console.log(data);
                $("#fdsa").append("<br/>"+data);
                }
        })
    }
</script>
</html>

后端php代码

<?php
public function dd(){
    @set_time_limit(10);  
    //使用 'windows下设置窜口参数;  
    // exec("mode " . $com . " BAUD=" . $baudrate . " PARITY=n DATA=8 STOP=1 odsr=off");
    exec("mode COM3: badu=9600 data=8 stop=1 parity=n xan=on");
    $ck = dio_open('COM3:', O_RDWR);
    if (!$ck) {
        echo "打开失败";
    }
    do {
        $shuju = dio_read($ck,7);
    }
    while ($shuju == null)
    echo $shuju;
    if ( $shuj != null ) {
        dio_write($ck, $shuju);
        dio_close($ck);
    }
}

3. 您期望得到的结果?

实时打印数据

4. 存在疑惑?

1.我怎么知道我的硬件是什么串口号?(COM1COM2COM3)?
2. 是不是购买特地的电子秤串口类型
3. 我的想法是,是不是有 usb 的东西连接我的电子秤,然后再通过电脑软件向我的前端抛数据,前端接收到后,通过ajax提交到后台

5.更新结果,我好像知道怎么做了

关于 php 连接硬件的问题
这个串口信息,等面试完再试一下,ps:电子秤老贵了,换个扫码枪测试吧:laughing:

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 7

仅用go对接过收银台 只是了解一点 希望对你有点帮助

1.我怎么知道我的硬件是什么串口号?(COM1、COM2、COM3)?

串口检查没了解过 我直接把这个作为了一个配置项 如果你换了串口 直接自己去后台改配置 省的再动代码

2. 是不是购买特地的电子秤串口类型

一般是连接的某个串口 比如 sata硬盘在系统上 就是 sata1 sata2 这种 com 串口同理

3. 我的想法是,是不是有 usb 的东西连接我的电子秤,然后再通过电脑软件向我的前端抛数据,前端接收到后,通过ajax提交到后台

楼主既然提到了实时那么可以考虑用websocket 直接向前端推送数据 或者发送ajax请求获取当时的数据

我用的是收银台与电子秤不太一样 我当时的情况是收银台自己有个系统 写的东西可以直接运行在收银台
所以我就启动了一个服务在收银台一直实时监控重量 如果有客户端链接 就触发称重功能数据发送到客户端来获取重量

1年前 评论
凌晨三点半的卢本伟 (楼主) 1年前

我之前对接的硬件是用的ip和端口,这都是商议好的,具体收发的数据格式也固定的,框架用的workerman

1年前 评论

可以使用这个系统来实现www.workerman.net/app/view/iot

1年前 评论
凌晨三点半的卢本伟 (楼主) 1年前
yangweijie

听说chrome 浏览器支持usb 协议

1年前 评论
凌晨三点半的卢本伟 (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!