Advertisement
Guest User

Untitled

a guest
Feb 11th, 2016
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.21 KB | None | 0 0
  1. //--------------------------------------------------------------------------------------------------------------
  2. //Programa para escrever no display LCD 16x2 a temperatura, umidade, luminosidade e movimento através de botões.
  3. //Autora: Katarina
  4. //--------------------------------------------------------------------------------------------------------------
  5. //incluir a biblioteca DHT
  6. //incluir a biblioteca LiquidCrystal
  7. //incluir a biblioteca Wire
  8. //Incluir a biblioteca BH1750
  9. #include <DHT.h>
  10. #include <LiquidCrystal.h>
  11. #include <Wire.h>
  12. #include <BH1750.h>
  13.  
  14. //Define a ligação ao pino de dados do sensor DHT11
  15. #define DHTPIN A5
  16. //Define o tipo de sensor DHT utilizado
  17. #define DHTTYPE DHT11
  18. DHT dht(DHTPIN, DHTTYPE);
  19. //Define os pinos que serão ligados ao LCD
  20. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  21. //Define as ligações aos pinos de dados do sensor BH1750
  22. #define SCL A3
  23. #define SDA A4
  24. //Tipo de sensor de Luminosidade utilizado
  25. BH1750 lightMeter;
  26. //Define a ligação ao pino de dados do sensor PIR
  27. #define PIR 6
  28. //Define a ligação do botão de estado do DHT11
  29. #define BUTTON_TEMP 7
  30. //Define a ligação do botão de estado do BH1750
  31. #define BUTTON_LUX 8
  32. //Define a ligação do botão de estado do PIR
  33. #define BUTTON_MOV 9
  34. //Array simbolo grau
  35. byte grau[8] ={ B00001100,
  36. B00010010,
  37. B00010010,
  38. B00001100,
  39. B00000000,
  40. B00000000,
  41. B00000000,
  42. B00000000,};
  43. void setup() {
  44. Serial.begin(9600); //Inicializa a serial
  45. lcd.begin(16,2); //Inicializa LCD
  46. lcd.clear(); //Limpa o LCD
  47. lcd.createChar(0, grau); //Cria o caractere customizado com o simbolo do grau
  48. lightMeter.begin(); //Inicializa o sensor de luminosidade
  49. pinMode(PIR, INPUT); //Declara PIR um INPUT
  50. pinMode(BUTTON_TEMP, INPUT); //Declara BUTTON_TEMP um INPUT
  51. pinMode(BUTTON_LUX, INPUT); //Declara BUTTON_LUX um INPUT
  52. pinMode(BUTTON_MOV, INPUT); //Declara BUTTON_MOV um INPUT
  53. }
  54.  
  55. void TEMP_UMI(){
  56. float h = dht.readHumidity(); //Le o valor da umidade
  57. float t = dht.readTemperature(); //Le o valor da temperatura
  58. lcd.setCursor(0,0);
  59. lcd.print("Temp : ");
  60. lcd.print(" ");
  61. lcd.setCursor(7,0);
  62. lcd.print(t,1);
  63. lcd.setCursor(12,0);
  64. lcd.write((byte)0); //Mostra o simbolo do grau formado pelo array
  65. lcd.setCursor(0,1);
  66. lcd.print("Umid : ");
  67. lcd.print(" ");
  68. lcd.setCursor(7,1);
  69. lcd.print(h,1);
  70. lcd.setCursor(12,1);
  71. lcd.print("%");
  72. }
  73.  
  74. void LUX(){
  75. uint16_t lux = lightMeter.readLightLevel(); //Le intensidade da luminosidade
  76. lcd.setCursor(0,0);
  77. lcd.print("Light: ");
  78. char luxArr[1];
  79. sprintf(luxArr, "%d", lux);
  80. lcd.print(lux);
  81. lcd.print(" lx");
  82. }
  83.  
  84. void PIR(){
  85. byte leitura = digitalRead(PIR);
  86. lcd.setCursor(0,0);
  87. if (PIR == HIGH){
  88. lcd.print("Movimento");
  89. } else {
  90. lcd.print("Parado");
  91. }
  92. }
  93.  
  94. void SetState(float TEMP_UMI, int LUX, char PIR)
  95.  
  96. void loop() {
  97. int val = digitalRead(BUTTON_TEMP);
  98. int val2 = digitalRead(BUTTON_LUX);
  99. int val3 = digitalRead(BUTTON_MOV);
  100. if (val == HIGH){
  101. TEMP_UMI;
  102. }
  103. if (val2 == HIGH){
  104. LUX;
  105. }
  106. if (val3 == HIGH){
  107. PIR;
  108. }
  109. SetState(TEMP_UMI, LUX, PIR);
  110. delay(100);
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement