Iekštelpu meteostacija


Šoreiz autors, izmantojot Arduino Uno, HC-05 sērijas Bluetooth moduli un BME280 sērijas sensoru, ir izveidojis nelielu iekštelpu meteostaciju, kura paredzēta, piemēram, istabas temperatūras un mitruma uzraudzībai, izmantojot viedtālruni. 

Lai lietotājs, izmantojot savu viedtālruni, varētu uzzināt, kāds ir telpas mitruma līmenis, kāda ir temperatūra un spiediens, autors ir izstrādājis vienkāršu lietotni (skatīt zemāk).

Iekštelpu meteostacijas elektrobarošanai paredzēts izmantot 6-12 V elektrobarošanu, piemēram, vienkāršā gadījumā, ja nepieciešama pārnēsājama meteostacija, paredzēts izmantot 9 V bateriju vai 2S (divas virknē slēgtas baterijas) litija-jonu akumulatoru.




1.1.att. Vienkāršas iekštelpu meteostacijas elektriskā principiālā shēma


Lietotnes izveide tika veikta, izmantojot jau iepriekš aplūkoto MIT App Inventor, kur lietotnes kods ir redzams 1.2.att.

Lai lietotājs varētu saņemt meteostacijas datus, kuri uz viedtālruni tiek nosūtīti, izmantojot HC-05 sērijas Bluetooth moduli un Arduino Uno, sākumā nepieciešams atrast Bluetooth moduli, proti, sākumā nepieciešams sapārot ierīces, izmantojot viedtālruņa Bluetooth iestatījumus.

Ja tiek izmantots HC-05 sērijas Bluetooth modulis, tad pēc noklusējuma parole ir 1234.

Tālāk, izmantojot zemāk redzamo lietotnes kodu, izmantojot MIT App Inventor vidi, ir iespējams izveidot lietotni, kuru tālāk var uzinstalēt uz viedtālruņa.

Atverot lietotni, izvēloties staciju jeb HC-05 sērijas moduli, ir iespējams saņemt meteostacijas datus, kas BME280 sērijas sensora gadījumā ir telpas mitruma līmenis, gaisa temperatūra, atrašanās  vietas augstums un spiediens. Protams, meteostaciju ir iespējams papildināt ar citiem sensoriem.



1.2.att. Lietotnes kods iekštelpu meteostacijai



1.3.att. Lietotnes iekštelpu meteostacijai tests


1.4.att. Lietotnes iekštelpu meteostacijai tests


1.5.att. Lietotnes iekštelpu meteostacijai tests


1.6.att. Lietotnes iekštelpu meteostacijai tests







// Nepieciešamās bibliotēkas, lai varētu sazināties ar sensoru, lai izmantotu virtuālo UART

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <SoftwareSerial.h>

// Tiek norādītas virtuālā UART pieslēgvietas, jūras līmeņa spiediens (hPa)

SoftwareSerial mySerial(2, 3);
#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme;

// Mainīgie datu uzglabāšanai

float temperature = 0.0;
float pressure = 0.0;
float humidity = 0.0;
float altitude = 0.0;



// Inicializācijas funkcija

void setup() {
  
  mySerial.begin(9600);
  Serial.begin(9600);

 if (!bme.begin(0x77)) { // Ja nedarbojas, kad adrese ir 0x77, tad 0x76
    Serial.println("Sensors netika atrasts!");
    while (1);
  }
  
}

// Galvenā funkcija, kuras darbības atkārtojas ciklā

void loop() {
    
// Datu nolasīšana un piešķiršana mainīgajiem

    delay(200);
    temperature = bme.readTemperature();
    delay(200);
    pressure = bme.readPressure();
    delay(200);
    humidity = bme.readHumidity();
    delay(200);
    altitude = bme.readAltitude(SEALEVELPRESSURE_HPA);
    delay(200);

// Datu nosūtīšana uz viedtālruni, izmantojot HC-05 Bluetooth moduli

    mySerial.println("Temperatura = ");
    mySerial.print(temperature);
    mySerial.println(" °C");
    delay(1000);

    mySerial.println("Spiediens = ");
    mySerial.print(pressure);
    mySerial.println(" Pa");
    delay(1000);

    mySerial.println("Mitrums = ");
    mySerial.print(humidity);
    mySerial.println(" %");
    delay(1000);

    mySerial.println("Augstums = ");
    mySerial.print(altitude);
    mySerial.println(" mvjl.");
   
}


UZ SĀKUMU