beelogger

Luxmeter (BH1750FVI)

Wer den Verlauf vom Tageslicht dokumentieren möchte, benötigt praktisch nicht viel mehr, als einen Fotowiderstand. Über einen Spannungsteiler an einem analogen Eingang und einer definierten Referenzspannung, können mit entsprechender Formel zur Auswertung und Umrechnung, die Ergebnisse in Lux ausgeben werden. Wer sich die Arbeit sparen möchte, greift zum kostengünstigen BH1750FVI. Das ist eine kleine Platine mit Sensor, A/D-Wandler und notwendiger Beschaltung zur einfachen Messung der Beleuchtungsstärke. Alexander Schulz hat für diesen Sensor eine tolle Library mit einem Messbereich bis 100000 Lux erstellt, welche hier zum Einsatz kommt.

Bezug

 Der Sensor BH1750FVI ist kompatibel mit allen beelogger Varianten!

Bild Bezugsquelle Preis ab Suchbegriffe* Bemerkungen
 beelogger BH1750FVI eBay 1,35€ BH1750 BH1750FVI  

 *Einkaufstipps

Beschaltung

Arduino Uno, Nano, usw. BH1750FVI
3,3V / 5V VCC
GND GND
A4 / SDA SDA
A5 / SCL SCL
GND ADD

Mit ADD an GND ist die I2C-Adresse auf 0x23 eingestellt. Auf einigen BH1750-Modulen ist die Adresse 0x23 über einen Widerstand vorkonfiguriert. Mit ADD an 3,3V / 5V wird die I2C-Adresse 0x52 umgestellt.

Libraries

<Wire.h> – in der Arduino-Software bereits enthalten
<AS_BH1750.h> https://github.com/hexenmeister/AS_BH1750
getestet mit der Version aus unserem beelogger-Library-Paket

Test-Programmcode

beelogger BH1750FVI TestSollte der Sensor fehlerhaft beschaltet sein, beispielsweise durch ein loses Kabel, wird ein negativer Messwert für diesen Sensor übergeben. Mit dem Test-Programmcode wird in diesem Fall eine Fehlermeldung über den seriellen Monitor ausgegeben.

Werden die Messwerte später an einen Webserver übertragen, erkennt das Server-Skript zum Speichern der Datensätze einen Fehler über den negativen Wert und es wird für diesen Sensor kein Messwert gespeichert. Dadurch wird die grafische Darstellung, beispielsweise durch Arbeiten am Sensor, nicht beeinträchtigt.

/*
 * (C) 2018 Thorsten Gurzan - beelogger.de
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

// beelogger.de - Arduino Datenlogger für Imker
// Erläuterungen dieses Programmcodes unter https://beelogger.de 


#include <Wire.h>
#include <AS_BH1750.h>

AS_BH1750 sensor;

#define Anzahl_Sensoren_Licht  1 // Anzahl der angeschlossenen Sensoren - Mögliche Werte: '0','1'

float Licht = -1.0;

// Für beelogger: Aktivierung der Stromversorgung für Sensoren, Module und DS3231 
#define Power_Pin 4


void setup(){
  Serial.begin(9600);
  Serial.println("BH1750 Test");
  Serial.println();
  digitalWrite(Power_Pin, HIGH);
  pinMode(Power_Pin, OUTPUT);
  delay(1000);
 
  if (Anzahl_Sensoren_Licht == 1) {
    if(sensor.begin()) Serial.println("Sensor initialisiert");
    else Serial.println("Initialisierung Sensor fehlgeschlagen");
  } Serial.println();
}


void loop() {
  if (Anzahl_Sensoren_Licht == 1) {
    Licht = sensor.readLightLevel();
    if (Licht < 0) Serial.println("Fehler");
    else {
      Serial.print("Beleuchtungsstaerke: ");
      Serial.print(Licht);
      Serial.println(" lx");
    }
    delay(1000);
  }
}

Ausgabe des seriellen Monitors (9600 baud):

BH1750 Test

Sensor initialisiert

Beleuchtungsstaerke: 93.33 lx
Beleuchtungsstaerke: 101.67 lx
Beleuchtungsstaerke: 125.00 lx
Beleuchtungsstaerke: 213.33 lx
Beleuchtungsstaerke: 201.67 lx
Beleuchtungsstaerke: 221.67 lx

Testprogrammcode herunterladen

 

Der Programmcode zum Messbetrieb für den Arduino Datenlogger mit Stockwaage für Imker ist für ATmega328 oder STM32Fxyz für unterschiedliche Konfigurationen mit bis zu vier Waagen pro System verfügbar.

 

Praxistipp: Montage des Luxmeter