Snažím sa naprogramovať meteorologickú stanicu na svoju ročníkovú prácu. Ako to ale býva, stretávam sa s naozaj veľa problémami, ktoré mi chvíľku trvá, než prídem na ich riešenie. Moja ročníková práca musí frčať na funkcií Serial.read(). Pomocou snímača DHT snímam vlhkosť a informácia sa ukladá na dosku Wemos D1 R1, kde pomocou komunikačných portov(TX, RX) sa nameraná hodnota prenesie na dosku ESP 8266 a následne sa zobrazí na LCD displeji.
Bohužiaľ s dákeho nepochopiteľného dôvodu mi to Vlhkosť s nameranou hodnotou vypisuje len v jednom bode. Nevedeli by ste mi s tým niekto poradiť?
Odosielateľ:
Kód: Vybrat vše
#include "DHTesp.h"
#include <Arduino.h>
#include <Wire.h>
#include <BMP180I2C.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDRESS 0x77
#ifdef ESP32
#pragma message(THIS EXAMPLE IS FOR ESP8266 ONLY!)
#error Select ESP8266 board.
#endif
DHTesp dht;
//create an BMP180 object using the I2C interface
BMP180I2C bmp180(I2C_ADDRESS);
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup()
{
Serial.begin(9600);
// Autodetect is not working reliable, don't use the following line
// dht.setup(17);
// use this instead:
dht.setup(D13, DHTesp::DHT22); // Connect DHT sensor to GPIO 17
}
void loop()
{
delay(dht.getMinimumSamplingPeriod());
float humidity = dht.getHumidity();
float temperature = dht.getTemperature();
Serial.print("Vlhkost: ");
Serial.print(dht.getHumidity());
Serial.println(" %");
}
Kód: Vybrat vše
#include <DHTesp.h>
#include <BMP180I2C.h>
#include <BMP180MI.h>
#include <BMP180TwoWire.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
Wire.begin();
lcd.init();
lcd.backlight();
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
lcd.setCursor(0, 1);
lcd.print("Ahoj");
}
int Znak;
void loop() { // run over and over
delay(1000);
lcd.setCursor(0,0);
if (Serial.available()) {
//Serial.write(Serial.read());
//lcd.print((char)Serial.read());
Znak=(char)Serial.read();
switch(Znak)
{
case '\r' :
case '\n' : lcd.setCursor(0,0); break;
default : /*lcd.setCursor(0,0);*/ lcd.write((char)Znak); break;
}
}