将python脚本转换为php以读取dht22传感器数据

将python脚本转换为php以读取dht22传感器数据,php,python,Php,Python,我会将此Python代码转换为在php中读取DHT22传感器数据。我不懂python,因此无法转换php Correspondent中的所有函数 python脚本来自I add numpy库,因为没有它我是一个错误 #!/usr/bin/env python # -*- coding: utf-8 -*- import socket import numpy TCP_ADDR = 'MYIP' TCP_PORT = 8899 PACK_LEN = 11 s = socket.socket

我会将此Python代码转换为在php中读取DHT22传感器数据。我不懂python,因此无法转换php Correspondent中的所有函数

python脚本来自I add numpy库,因为没有它我是一个错误

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import socket
import numpy

TCP_ADDR = 'MYIP'
TCP_PORT = 8899

PACK_LEN = 11

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.settimeout(30)

s.connect((TCP_ADDR, TCP_PORT))

bytes_data = numpy.zeros(PACK_LEN,int)

str_data = s.recv(PACK_LEN) #this should probably have a timeout
hex_data = str_data.encode('hex')

for n in range(0,PACK_LEN): #convert to array of bytes
    lower = 2*n
    upper = lower + 2
    bytes_data[n] = int(hex_data[lower:upper],16)


humid =  (((bytes_data[6])<<8)+(bytes_data[7]))/10.0
temp =  (((((bytes_data[8])&0x7F)<<8)+(bytes_data[9]))/10.0)

if int(bytes_data[8]) & 0x80: #invert temp if sign bit is set
    temp = -1.0* temp

checksum = (int(sum(bytes_data[0:10])) & 0xFF)+1

if checksum == bytes_data[10]:
    print "T" + str(temp) + " H" + str(humid)
else:
    print "Invalid. :("

这只是一个php测试

$fp = fsockopen("192.168.0.12", 8899, $errno, $errstr, 20);

if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {

    fwrite($fp, "\n");
    $code = fread($fp, 26);
    fclose($fp);

    $code = array_shift( unpack('H*', $code) );
    echo $code;
}

它在PHP中看起来几乎相同。请发布您迄今为止尝试过的任何内容。我建议您添加一个PHP标记。谢谢cdarke,我添加了PHP标记。