repository to manage all files related to the makeathon farm bot project (Software + Documentation).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

sensors.py 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. from picamera import PiCamera
  2. from time import sleep
  3. from datetime import datetime
  4. import RPi.GPIO as GPIO
  5. import board
  6. import adafruit_dht
  7. import smbus
  8. import time
  9. #Connect Sensors
  10. #Camera
  11. #camera = PiCamera()
  12. #Air Temp&Humidity
  13. dhtDevice = adafruit_dht.DHT22(board.D4, use_pulseio=False)
  14. #Earth Humidity
  15. chanel = 21
  16. GPIO.setmode(GPIO.BCM)
  17. GPIO.setup(chanel, GPIO.IN)
  18. # Brightness Sensor
  19. bus = smbus.SMBus(1)
  20. bus.write_byte_data(0x39, 0x00 | 0x80, 0x03)
  21. bus.write_byte_data(0x39, 0x01 | 0x80, 0x02)
  22. def readSensors():
  23. #Connect Sensors
  24. #Camera
  25. #camera = PiCamera()
  26. #Air Temp&Humidity
  27. dhtDevice = adafruit_dht.DHT22(board.D4, use_pulseio=False)
  28. #Earth Humidity
  29. chanel = 21
  30. GPIO.setmode(GPIO.BCM)
  31. GPIO.setup(chanel, GPIO.IN)
  32. #Camera
  33. #camera.start_preview()
  34. dt = datetime.now()
  35. ts = datetime.timestamp(dt)
  36. #name = "/home/pi/Pictures/{}.jpg".format(ts)
  37. #camera.capture(name)
  38. print("Camera on")
  39. #camera.stop_preview()
  40. #Air Temp&Humidity
  41. temperature_c = dhtDevice.temperature
  42. humidity = dhtDevice.humidity
  43. print("Temp: {:.1f} C Humidity: {}% ".format(temperature_c, humidity))
  44. #Earth Humidit:
  45. ground_humidity = GPIO.input(chanel)
  46. print("Earth Humitiy: {}".format(ground_humidity))
  47. #Brightness Sensor
  48. # Read data back from 0x0C(12) with command register, 0x80(128), 2 bytes
  49. # ch0 LSB, ch0 MSB
  50. data = bus.read_i2c_block_data(0x39, 0x0C | 0x80, 2)
  51. # Read data back from 0x0E(14) with command register, 0x80(128), 2 bytes
  52. # ch1 LSB, ch1 MSB
  53. data1 = bus.read_i2c_block_data(0x39, 0x0E | 0x80, 2)
  54. # Convert the data
  55. ch0 = data[1] * 256 + data[0]
  56. ch1 = data1[1] * 256 + data1[0]
  57. light_intesity = ch0-ch1
  58. # Output data to screen
  59. print("Visible Value :%d lux" %(ch0 - ch1))
  60. return {"Air_Temperature": temperature_c,
  61. "Air_Humidity": humidity,
  62. "Ground Humidity": ground_humidity,
  63. "Light_Intensity": light_intesity
  64. }
  65. def main():
  66. test = readSensors()
  67. if __name__ == "__main__":
  68. main()