35 reads the temperature and humidity sensors send raspberry

1 way to directly read

https://blog.csdn.net/u010900754/article/details/53078615

 

 

Note that when encoding connection, note FIG raspberry send Pin direction, as shown in FIG. I use dht11 three sensor head, so the connection is:

VCC (or positive) --- raspberry pie 3v power supply

GND (ground or negative) gnd Interface --- raspberry pie

DATA (D or out) --- Raspberry Pi GPIO pins

Note that the order of its own sensor interface.

import RPi.GPIO as GPIO
import time
 
channel =4 
data = []
j = 0
 
GPIO.setmode(GPIO.BCM)
 
time.sleep(1)
 
GPIO.setup(channel, GPIO.OUT)
GPIO.output(channel, GPIO.LOW)
time.sleep(0.02)
GPIO.output(channel, GPIO.HIGH)
GPIO.setup(channel, GPIO.IN)
 
while GPIO.input(channel) == GPIO.LOW:
  continue
while GPIO.input(channel) == GPIO.HIGH:
  continue
 
while j < 40:
  k = 0
  while GPIO.input(channel) == GPIO.LOW:
    continue
  while GPIO.input(channel) == GPIO.HIGH:
    k += 1
    if k > 100:
      break
  if k < 8:
    data.append(0)
  else:
    data.append(1)
 
  j += 1
 
print "sensor is working."
print data
 
humidity_bit = data[0:8]
humidity_point_bit = data[8:16]
temperature_bit = data[16:24]
temperature_point_bit = data[24:32]
check_bit = data[32:40]
 
humidity = 0
humidity_point = 0
temperature = 0
temperature_point = 0
check = 0
 
for i in range(8):
  humidity += humidity_bit[i] * 2 ** (7-i)
  humidity_point += humidity_point_bit[i] * 2 ** (7-i)
  temperature += temperature_bit[i] * 2 ** (7-i)
  temperature_point += temperature_point_bit[i] * 2 ** (7-i)
  check += check_bit[i] * 2 ** (7-i)
 
tmp = humidity + humidity_point + temperature + temperature_point
 
if check == tmp:
  print "temperature :", temperature, "*C, humidity :", humidity, "%"
else:
  print "wrong"
  print "temperature :", temperature, "*C, humidity :", humidity, "% check :", check, ", tmp :", tmp
 
GPIO.cleanup()

  

It is noted here, encoding and pin No.
(1) encoding: PR library in two ways, one is the other is wiringPi bcm way, the difference of a pin substantially bcm sequence number 0 , 3 ,. . . Gpio with each corresponding pin, and the power supply are not included gnd like, while the power supply is from the beginning wiringPi is 0, then increasing order row. Using python script, only the need for coding can function in setmode inside.

(2) Pin Number: whether the program is used inside bcm No. 4 (i.e., the channel variable), and the connection method note code matches

 

 

 

2 USB indirect way of reading

Temperature and humidity data read DHT11 Arduino

https://marshal.ohtly.com/2017/02/26/arduino-and-dht11

 

 

 

 

 

 

#include <dht.h>
dht DHT;

#define DHT11_PIN 7

void setup(){
  Serial.begin(9600);
}

void loop()
{
  int chk = DHT.read11(DHT11_PIN);
  Serial.print("Temperature = ");
  Serial.println(DHT.temperature);
  Serial.print("Humidity = ");
  Serial.println(DHT.humidity);
  delay(1000);
}

  Then upload, you can see something like this in the serial monitor:

Temperature = 26.00
Humidity = 32.00
Temperature = 26.00
Humidity = 32.00
Temperature = 26.00

  

 

Guess you like

Origin www.cnblogs.com/kekeoutlook/p/11576069.html