Medição de Umidade e Temperatura com Display nokia 5110 e DHT11

Boa tarde galera,

Mais um projetinho para a discução:

Encontrei na net um projeto interessante, onde o autor utiliza um DHT11 para fazer as medições de umidade e temperatura com um arduino Uno,

Até aqui sem novidades uma porque este sensor é bem comum.

Ele foi além, inseriu um RTC 1307 e agregou ao projeto um relógio e tudo isto exibido ao Nokia 5110.

Bom, como sempre estou apanhando com a biblioteca.

Já tenho instalado a biblioteca Adafruit e Nokia mais mesmo assim está me dando dor de cabeça.

Lembro-me que havia feito um termômetro (inclusive está aqui no LdG publicado) e havia utilizado a biblioteca Nokia5110.

Confiram o esquemático, o código e os erros.

No aguardo para podermos lançar mais este projeto a galera,

o código:

#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
// Adafruit_PCD8544 display = Adafruit_PCD8544(SCLK, DIN, DC, CS, RST);
Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 7, 6);

#include <DHT.h>
#define DHTPIN A2 // what pin we're connected DHT11
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);


#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;

static unsigned char PROGMEM picatura[] =
{ B0001000,
B0001000,
B0001000,
B0010100,
B0100010,
B0100010,
B0011100
};

void setup () {

Serial.begin(9600);

display.begin();
// init done

// you can change the contrast around to adapt the display
// for the best viewing!
display.setContrast(50);
display.clearDisplay();

// sensor DHT for humidity and temperature
dht.begin();

// Print a logo message to the LCD.

display.setTextSize(1);
display.setTextColor(BLACK);
display.setCursor(0,0);
display.println("tehnic.go.ro");
display.setCursor(24, 8);
display.print("& niq_ro");
display.setCursor(1, 24);
display.print("ceas-calendar");
display.setCursor(0, 32);
display.print("temp. & umidit");
display.setCursor(0, 40);
display.print("versiunea ");
display.setTextColor(WHITE, BLACK);
display.print("1.8");
display.display();
delay (5000);
display.clearDisplay();

Wire.begin();

// part code from http://tronixstuff.wordpress.com/
Wire.beginTransmission(0x68);
Wire.write(0x07); // move pointer to SQW address
Wire.write(0x10); // sends 0x10 (hex) 00010000 (binary) to control register - turns on square wave
Wire.endTransmission();
// end part code from http://tronixstuff.wordpress.com/

RTC.begin();
// RTC.adjust(DateTime(__DATE__, __TIME__));
// if you need set clock... just remove // from line above this
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
RTC.adjust(DateTime(__DATE__, __TIME__));
}
}

int k1;
int ko;

void loop () {

DateTime now = RTC.now();
int h = dht.readHumidity();
int t = dht.readTemperature();

// need for display time
int zs = now.second()/10;
int us = now.second() - zs*10;

if (us > 2 )
{
display.setTextSize(2);
display.setTextColor(BLACK);
display.setCursor(0, 0);


{ if ( now.hour() < 10)
{
display.print(" ");
display.print(now.hour(), DEC);
}
else
{
display.print(now.hour(), DEC);
}
display.setCursor(20, 0);
display.print(":");
display.setCursor(28, 0);
if ( now.minute() < 10)
{
display.print("0");
display.print(now.minute(), DEC);
}
else
{
display.print(now.minute(), DEC);
}

display.setCursor(48, 0);
display.print(":");
display.setCursor(57, 0);
if ( now.second() < 10)
{
display.print("0");
display.print(now.second(), DEC);
}
else
{
display.print(now.second(), DEC);
}
}
}
else
{
display.setTextSize(1);
display.setTextColor(BLACK);
display.setCursor(16, 0);
if ( now.hour() < 10)
{
display.print(" ");
display.print(now.hour(), DEC);
}
else
{
// display.setCursor(16, 0);
display.print(now.hour(), DEC);
}
display.print(":");
if ( now.minute() < 10)
{
display.print("0");
display.print(now.minute(), DEC);
}
else
{
display.print(now.minute(), DEC);
}
display.print(":");
if ( now.second() < 10)
{
display.print("0");
display.print(now.second(), DEC);
}
else
{
display.print(now.second(), DEC);
}

display.setCursor(10, 8);
if ( now.day() < 10)
{
display.print("0");
display.print(now.day(), DEC);
}
else
{
display.print(now.day(), DEC);
}
display.print("/");
if ( now.month() < 10)
{
display.print("0");
display.print(now.month(), DEC);
}
else
{
display.print(now.month(), DEC);
}
display.print("/");
display.print(now.year(), DEC);
}

if (us < 5 )
{
display.setTextSize(4);
display.setTextColor(BLACK);
display.setCursor(0,20);
display.print(t);
display.setCursor(60,20);
display.print("C");
display.setTextSize(2);
display.setTextColor(BLACK);
display.setCursor(48,20);
display.print("o");
display.display();
}
else
{
display.setTextSize(4);
// display.setTextColor(WHITE, BLACK);
display.setCursor(0,20);
display.print(h);
/* display.setCursor(60,20);
display.print("H");
*/
// draw an empty glass
display.drawLine(60, 20, 60, 45, BLACK);
display.drawLine(61, 20, 61, 45, BLACK);
display.drawLine(60, 44, 80, 44, BLACK);
display.drawLine(60, 45, 80, 45, BLACK);
display.drawLine(79, 20, 79, 45, BLACK);
display.drawLine(80, 20, 80, 45, BLACK);
// display.display();
int hp = h/4;
for (int x = 0; x < hp+1; x++)
{
display.drawLine(60, 44-x, 80, 44-x, BLACK);
}
// draw drops water
display.drawBitmap(65, 20, picatura, 8, 8, 1);
display.drawBitmap(70, 26, picatura, 8, 8, 1);

display.setTextSize(2);
display.setTextColor(BLACK);
display.setCursor(48,20);
display.print("%");
display.display();
}

delay (500);
display.clearDisplay();
}

os erros ::::


 


C:\Program Files (x86)\Arduino\libraries\Adafruit_PCD8544\Adafruit_PCD8544.cpp: In member function 'void Adafruit_PCD8544::begin(uint8_t, uint8_t)':
C:\Program Files (x86)\Arduino\libraries\Adafruit_PCD8544\Adafruit_PCD8544.cpp:166: error: 'SPI' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\Adafruit_PCD8544\Adafruit_PCD8544.cpp:167: error: 'SPI_CLOCK_DIV4' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\Adafruit_PCD8544\Adafruit_PCD8544.cpp:168: error: 'SPI_MODE0' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\Adafruit_PCD8544\Adafruit_PCD8544.cpp: In member function 'void Adafruit_PCD8544::spiWrite(uint8_t)':
C:\Program Files (x86)\Arduino\libraries\Adafruit_PCD8544\Adafruit_PCD8544.cpp:234: error: 'SPI' was not declared in this scope

Exibições: 1372

Responder esta

Respostas a este tópico

Puxa ninguém ?

eu sugiro vc tentar simplificar o sketch o máximo possível, com o objetivo de fazer funcionar o lcd nokia 5110 apenas, sem sensores ou outras firulas. Se o seu problema é fazer esse display funcionar, resolva essa etapa primeiro. Talvez valha a pena também reinstalar as bibliotecas.

Depois que vc descascar esse abacaxi é que vc incrementa o sketch, conectando sensores e outras parafernálias.

Vai nesse tutorial pra fazer funcionar apenas o lcd nokia 5110:

http://www.arduinoecia.com.br/2013/05/display-lcd-nokia-5110.html

Boa tarde Imhugo.

Entrei no site e fiz os procedimentos, portanto ainda continua dando estes erros abaixo:

Obrigado pela resposta,

J.Antonio

C:\Program Files (x86)\Arduino\libraries\PCD8544\Adafruit_PCD8544.cpp:167: error: 'SPI_CLOCK_DIV4' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\PCD8544\Adafruit_PCD8544.cpp:168: error: 'SPI_MODE0' was not declared in this scope
C:\Program Files (x86)\Arduino\libraries\PCD8544\Adafruit_PCD8544.cpp: In member function 'void Adafruit_PCD8544::spiWrite(uint8_t)':
C:\Program Files (x86)\Arduino\libraries\PCD8544\Adafruit_PCD8544.cpp:234: error: 'SPI' was not declared in this scope

Sabem o que estava faltando no sketch ? Somente esta pequena frase :

#include <SPI.h>, funcionando 100%, mudei o valor do contraste para 30 ficou melhor. 

Como do site muito legal.

Valeu 

Existem outras bibliotecas além do adafruit. Talvez valha a pena tentar essas outras bibliotecas. Veja:

Biblioteca LCD5110_Basic: http://www.henningkarlsen.com/electronics/library.php?id=44

Biblioteca pcd8544: https://code.google.com/p/pcd8544/downloads/detail?name=PCD8544-1.4...

Imhugo, 

boa tarde.

Imagino que na maioria das vezes, assim como foi em meu caso, os iniciantes não estarem habituados as bibliotecas.

Lembro-me que da primeira vez que fui fazer um Nokia funcionar, quase ogo o bixim no lixo e desisto de usar Arduino, mais ai vendo que não era somente eu que tinha esta dúvida fui abradando a situação.

Acho que já inclui, desde o início dos estudos com o Uno umas 5, talves 7 bibliotecas.

Falta de habito, depois piora. 

Obrigado pelas respostas. Talvez quando ficar um pouco mais expert em Arduino crie um tutorial para a galera.

Abraços e bom domingo

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço