注意:

  1. php 需要php7,安装及开启php_dio.dll
  2. com口按照实际的进行设置,如果不知道可以打开arduino编辑器进行查看
  3. 可以与用户实现命令行交互,但是效率过慢,不清楚如何优化,使用python测试运行速度很快  

PHP版本

<?php
# 只允许输入字符
# 已成功运行
// fwrite(STDOUT,'请输入您的博客名:');
// echo '您输入的信息是:'.fgets(STDIN);
// exit(); set_time_limit(0);
exec('mode COM3: baud=115200 data=8 stop=1 parity=n xon=on');
//打开COM1口 O_RDWR读写模式 O_RDONLY只读
$fd = dio_open('COM3:', O_RDWR);
//打开失败报错
if (!$fd) {
die("Error when open COM3");
}
//开始
$ff = dio_stat($fd);
$len = 8;
while(1){
fwrite(STDOUT,'请设置led灯(h亮l暗): ');
$line = fgets(STDIN);
if($line){
dio_write($fd,$line);
$data = dio_read($fd, $len);
if ($data) {
echo $data;
echo "\r\n";
}
}
}
dio_close($fd);

Python版本:

#-*-coding:UTF-8-*-
import serial #导入serial库
ser = serial.Serial('COM3', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=1) #打开端口,每一秒返回一个消息 COM3 需要设置为自己的串口
#try模块用来结束循环(靠抛出异常)
try:
while 1:
act = input('请设置led灯(h亮l暗): ');
if(act != 'h' and act != 'l'):
print('请输入正确的字符');
else:
ser.write(act.encode());#写s字符 需要用 encode 进行编码 response = ser.readline();#用response读取端口的返回值
print(response);#进行打印
except Exception as e:
print(e);
ser.close();#抛出异常后关闭端口

参考:

  1. 树莓派和Arduino使用USB进行通信基于Python——For初学者 https://blog.csdn.net/a_52hz/article/details/92197048

  2. python、pip、whl安装和使用 https://www.cnblogs.com/klb561/p/9271322.html

  3. 大佬们,怎么实现windows下的python与arduino串口通讯呢? http://tieba.baidu.com/p/5506283431

  4. PC上 python 通过串口和 arduino 读写交互成功,哈哈,真好玩 https://blog.csdn.net/wangtaonice/article/details/50334005

  5. Python和Arduino的串行通信   http://www.it1352.com/230021.html

  6. python中的serial问题 https://bbs.csdn.net/topics/392275020

  7. python3 异常处理  https://www.cnblogs.com/calvin-zhang/articles/9613679.html

  8. TypeError: unicode strings are not supported, please encode to bytes: 'hu' https://blog.csdn.net/you23hai45/article/details/71516031

  9. python中的&&及|| https://blog.csdn.net/wzx1286474341/article/details/80465794

  10. php7配置串口连接 dio https://blog.csdn.net/u014020153/article/details/77472145

  11. PHP和串口通信的方法介绍 https://blog.csdn.net/bjash/article/details/8487405

  12. PHP读取命令行输入 https://blog.csdn.net/supergao222/article/details/78905415

  13. PHP命令行脚本接收传入参数的三种方式 https://www.jb51.net/article/54015.htm

  14. php打开串口RS232 https://www.cnblogs.com/yuanlipu/p/5987834.html

  15. 用PHP实现网页直接操作硬件串口 http://ju.outofmemory.cn/entry/350849

win10上使用php与python实现与arduino串口通信的更多相关文章

  1. [python] 3 、基于串口通信的嵌入式设备上位机自动测试程序框架(简陋框架)

    星期一, 20. 八月 2018 01:53上午 - beautifulzzzz 1.前言 做类似zigbee.ble mesh...无线网络节点性能测试的时候,手动操作然后看表象往往很难找出真正的原 ...

  2. 安装WIN7/WIN10上的 CPU版本的TensorFlow

    随手记 ancaconda Anaconda2-5.0.1-Windows-x86_64(python3.5 ancaconda python-3.5.2-amd64 安装TensorFlow的时候自 ...

  3. 在win10上同时安装Python2/Python3

    如何在win10上同时安装python2和python3? 为了满足日常工作或者学习的需要,我们可能会经常用到python2和python3,下面是给大家在win10上同时安装两个版本的python的 ...

  4. Win10安装VSCode并配置Python环境 完整版超详细简单【原创】

    我们分为三个步骤进行: 一.下载VSCode 二.配置Python环境 三.测试Python 一.下载VSCode 1.打开国内镜像vscode下载地址,即可自动下载:https://vscode.c ...

  5. 抓取oschina上面的代码分享python块区下的 标题和对应URL

    # -*- coding=utf-8 -*- import requests,re from lxml import etree import sys reload(sys) sys.setdefau ...

  6. nginx上用fastcgi配置python环境

    费了2天的功夫,翻阅了无数的中文.英文资料,终于搞定.写下此文留待以后翻阅用      本文环境,centOS 5.4 ,Nignx-0.8.49, Python 2.6.5   ========== ...

  7. 在Pypi上发布自己的Python包

    使用Python编程的都知道,Python的包安装非常的方便,一般都是可以pip来安装搞定: sudo pip install <package name> pip的安装请移步:https ...

  8. 如何在Pypi上发表自己的Python库

    背景 最近兴趣使然写了几个Python库,也发布到了Pypi上,虽然没什么人下载,但自己在其他机器上用着也会很方便.这里我向大家介绍一下如何在Pypi上发表自己的Python库. 准备 注册账号 很显 ...

  9. VS 2013 professional版在win10上安装出错的解决方法

    VS 2013 professional版在win10上安装出错的解决方法 win10上安装完VS 2012 professional和VS 2017 professional后,由于项目的需要,要在 ...

随机推荐

  1. kotlin if

    val max = if (a > b) { print("Choose a") a } else { print("Choose b") b } 注意和 ...

  2. go module 使用举例

    go语言中,从1.11开始,引入module,进行版本管理. 通过使用module,工程目录的位置不用必须放在GOPATH下. 本文介绍 module的使用. 下文中用的Go版本是1.13. 1. g ...

  3. ObjectAnimator属性动画示例代码

    import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.app.Ac ...

  4. HelloWorld入门代码

    A:定义类 B:写main方法 C:写输出语句 D:Java程序开发运行与工作原理 E:编译和运行程序 class HelloWorld { public static void main(Strin ...

  5. 数据包从物理网卡流经 Open vSwitch 进入 OpenStack 云主机的流程

    目录 文章目录 目录 前言 数据包从物理网卡进入虚拟机的流程 物理网卡处理 如何将网卡收到的数据写入到内核内存? 中断下半部分软中断处理 数据包在内核态 OvS Bridge(Datapath)中的处 ...

  6. dede不同栏目调用不同banner图的方法

    用顶级栏目ID 方法: <img src="{dede:global.cfg_templets_skin/}/images/{dede:field.typeid function=&q ...

  7. Django学习之缓存和信号

    Django学习之缓存和信号   一 缓存 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views ...

  8. Java集合(7):散列与散列码

    散列的价值在于速度.我们使用数组来保存键的信息,这个信息并不是键本身,而是通过键对象生成一个数字(散列码),作为数组下标.由于数组的容量是固定的,而散列容器的大小是可变的,所以不同的键可以产生相同的数 ...

  9. Django 1.x版本与2.x版本 区别

    django 1.x版本与2.x版本 URL区别 在django 1.x中的方式 导入的模块是'from django.conf.urls import url',urlpatterns中url对应的 ...

  10. teach-es6-2(class)

    1 属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法.这样的书写更加简洁. var foo = 'bar'; var baz = {foo}; baz // {foo: &quo ...