Advertisement
Guest User

Untitled

a guest
May 24th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1.  
  2. import RPi.GPIO as GPIO
  3. import time
  4.  
  5. def bin2dec(string_num):
  6. return str(int(string_num, 2))
  7.  
  8. data = []
  9.  
  10. GPIO.setmode(GPIO.BCM)
  11.  
  12. GPIO.setup(4,GPIO.OUT)
  13. GPIO.output(4,GPIO.HIGH)
  14. time.sleep(0.025)
  15. GPIO.output(4,GPIO.LOW)
  16. time.sleep(0.02)
  17.  
  18. GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_UP)
  19.  
  20. for i in range(0,500):
  21. data.append(GPIO.input(4))
  22.  
  23. bit_count = 0
  24. tmp = 0
  25. count = 0
  26. HumidityBit = ""
  27. TemperatureBit = ""
  28. crc = ""
  29.  
  30. try:
  31. while data[count] == 1:
  32. tmp = 1
  33. count = count + 1
  34.  
  35. for i in range(0, 32):
  36. bit_count = 0
  37.  
  38. while data[count] == 0:
  39. tmp = 1
  40. count = count + 1
  41.  
  42. while data[count] == 1:
  43. bit_count = bit_count + 1
  44. count = count + 1
  45.  
  46. if bit_count > 3:
  47. if i>=0 and i<8:
  48. HumidityBit = HumidityBit + "1"
  49. if i>=16 and i<24:
  50. TemperatureBit = TemperatureBit + "1"
  51. else:
  52. if i>=0 and i<8:
  53. HumidityBit = HumidityBit + "0"
  54. if i>=16 and i<24:
  55. TemperatureBit = TemperatureBit + "0"
  56.  
  57. except:
  58. print "ERR_RANGE"
  59. exit(0)
  60.  
  61. try:
  62. for i in range(0, 8):
  63. bit_count = 0
  64.  
  65. while data[count] == 0:
  66. tmp = 1
  67. count = count + 1
  68.  
  69. while data[count] == 1:
  70. bit_count = bit_count + 1
  71. count = count + 1
  72.  
  73. if bit_count > 3:
  74. crc = crc + "1"
  75. else:
  76. crc = crc + "0"
  77. except:
  78. print "ERR_RANGE"
  79. exit(0)
  80.  
  81. Humidity = bin2dec(HumidityBit)
  82. Temperature = bin2dec(TemperatureBit)
  83.  
  84. if int(Humidity) + int(Temperature) - int(bin2dec(crc)) == 0:
  85. print "Humidity:"+ Humidity +"%"
  86. print "Temperature:"+ Temperature +"C"
  87. else:
  88. print "ERR_CRC"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement