Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:10
Igår arbetade vi med LCD -skärmar, och när vi arbetade med dem insåg vi vikten av ljusintensitetsberäkning. Ljusintensiteten är inte bara viktig i den fysiska domänen i denna värld utan den har också sin välsagda roll i det biologiska området. Noggrann uppskattning av ljusintensitet spelar en avgörande roll i vårt ekosystem, i tillväxten av växter etc. Så för att tjäna detta ändamål studerade vi denna sensor BH1715, som är en 16-bitars seriell utgångstyp av omgivande ljussensor.
I denna handledning kommer vi att demonstrera hur BH1715 fungerar med Raspberry pi, med Java som programmeringsspråk.
Hårdvara som du kommer att behöva för detta ändamål är följande:
1. BH1715 - Sensor för omgivande ljus
2. Raspberryy Pi
3. I2C -kabel
4. I2C -sköld för hallon Pi
5. Ethernet -kabel
Steg 1: BH1715 Översikt:
Först och främst vill vi bekanta dig med de grundläggande funktionerna i sensormodulen som är BH1715 och det kommunikationsprotokoll som den fungerar på.
BH1715 är en digital sensor för omgivande ljus med ett I²C -bussgränssnitt. BH1715 används vanligtvis för att erhålla data från omgivande ljus för justering av LCD- och knappsatsens bakgrundsbelysning för mobila enheter. Denna enhet erbjuder en 16-bitars upplösning och ett justerbart mätområde, vilket möjliggör detektering från 0,23 till 100 000 lux.
Kommunikationsprotokollet som sensorn fungerar på är I2C. I2C står för den interintegrerade kretsen. Det är ett kommunikationsprotokoll där kommunikationen sker via SDA (seriell data) och SCL (seriell klocka) linjer. Det gör det möjligt att ansluta flera enheter samtidigt. Det är ett av de enklaste och mest effektiva kommunikationsprotokollet.
Steg 2: Vad du behöver.. !
Materialet vi behöver för att uppnå vårt mål inkluderar följande hårdvarukomponenter:
1. BH1715 - Sensor för omgivande ljus
2. Hallon Pi
3. I2C -kabel
4. I2C -sköld för hallon Pi
5. Ethernet -kabel
Steg 3: Hårdvaruanslutning:
Hårdvaruanslutningssektionen förklarar i princip de anslutningar som krävs mellan sensorn och hallonpi. Att säkerställa korrekta anslutningar är den grundläggande nödvändigheten när du arbetar på något system för önskad utgång. Så, de nödvändiga anslutningarna är följande:
BH1715 fungerar över I2C. Här är exemplet kopplingsschema som visar hur man kopplar upp varje gränssnitt för sensorn.
Out-of-the-box är kortet konfigurerat för ett I2C-gränssnitt, därför rekommenderar vi att du använder den här anslutningen om du annars är agnostiker. Allt du behöver är fyra ledningar!
Endast fyra anslutningar krävs Vcc, Gnd, SCL och SDA -stift och dessa är anslutna med hjälp av I2C -kabel.
Dessa kopplingar visas i bilderna ovan.
Steg 4: Mätning av ljusintensitet med hjälp av Java -kod:
Fördelen med att använda hallon pi är att det ger dig flexibiliteten hos programmeringsspråket där du vill programmera kortet för att ansluta sensorn till den. Genom att utnyttja denna fördel med detta kort demonstrerar vi här att det är programmering i Java. Java -koden för BH1715 kan laddas ner från vår GitHub -gemenskap som är Dcube Store.
Förutom användarnas lätthet förklarar vi koden här också:
Som det första kodningssteget måste du ladda ner pi4j -biblioteket för Java, eftersom det här biblioteket stöder de funktioner som används i koden. Så för att ladda ner biblioteket kan du besöka följande länk:
pi4j.com/install.html
Du kan också kopiera den fungerande java -koden för den här sensorn härifrån:
// Distribueras med en fri vilja licens.
// Använd den hur du vill, vinst eller gratis, förutsatt att den passar i licensen för dess associerade verk.
// BH1715
// Denna kod är utformad för att fungera med BH1715_I2CS I2C Mini -modulen som är tillgänglig från ControlEverything.com.
//
importera com.pi4j.io.i2c. I2CBus;
importera com.pi4j.io.i2c. I2CDenhet;
importera com.pi4j.io.i2c. I2CFactory;
importera java.io. IOException;
offentlig klass BH1715
{
public static void main (String args ) kastar undantag
{
// Skapa I2C -buss
I2CBus -buss = I2CFactory.getInstance (I2CBus. BUS_1);
// Skaffa I2C -enhet, BH1715 I2C -adress är 0x23 (35)
I2CDevice -enhet = bus.getDevice (0x23);
// Skicka ström på kommando
device.write ((byte) 0x01);
// Skicka kommando för kontinuerlig mätning
device.write ((byte) 0x10);
Tråd. Sover (500);
// Läs 2 byte med data
// luminans msb, luminans lsb
byte data = ny byte [2];
device.read (data, 0, 2);
// Konvertera data
dubbel luminans = ((data [0] & 0xFF) * 256 + (data [1] & 0xFF)) / 1,20;
// Mata ut data till skärmen
System.out.printf ("Ambient Light Luminance: %.2f lux %n", luminans);
}
}
Biblioteket som underlättar i2c -kommunikation mellan sensorn och kortet är pi4j, dess olika paket I2CBus, I2CDevice och I2CFactory hjälper till att upprätta anslutningen.
importera com.pi4j.io.i2c. I2CBus; importera com.pi4j.io.i2c. I2CDevice; importera com.pi4j.io.i2c. I2CFactory; importera java.io. IOException;
Denna del av koden får sensorn att fungera för ljusintensitetsmätning genom att skriva respektive kommandon med funktionen write () och sedan läses data med read () -funktionen.
device.write ((byte) 0x01); // power on command
device.write ((byte) 0x10); // kommando för kontinuerlig mätning
byte data = ny byte [2]; // Läs 2 byte med data
device.read (data, 0, 2);
Data som tas emot från sensorn konverteras till lämpligt format med hjälp av följande:
dubbel luminans = ((data [0] & 0xFF) * 256 + (data [1] & 0xFF)) / 1,20;
Utmatningen skrivs ut med funktionen System.out.println () i följande format.
System.out.printf ("Ambient Light Luminance: %.2f lux %n", luminans);
Sensorns utgång visas på bilden ovan.
Steg 5: Ansökningar:
BH1715 är en digital sensor för omgivande ljus som kan integreras i mobiltelefon, LCD -TV, NOTE PC etc. Den kan också användas i bärbar spelmaskin, digitalkamera, digital videokamera, PDA, LCD -display och många fler enheter som kräver effektiva ljusavkännande applikationer.
Rekommenderad:
Mätning av acceleration med hjälp av ADXL345 och Particle Photon: 4 steg
Mätning av acceleration med hjälp av ADXL345 och Particle Photon: ADXL345 är en liten, tunn, ultralåg effekt, 3-axlig accelerometer med hög upplösning (13-bitars) mätning på upp till ± 16 g. Digital utdata formateras som 16-bitars tvåkomplement och är tillgängliga via I2 C digitalt gränssnitt. Den mäter
Mätning av temperatur med hjälp av AD7416ARZ och Raspberry Pi: 4 steg
Mätning av temperatur med hjälp av AD7416ARZ och Raspberry Pi: AD7416ARZ är en 10-bitars temperatursensor med fyra enkanaliga analoga till digitala omvandlare och en inbyggd temperatursensor som ingår i den. Temperatursensorn på delarna kan nås via multiplexerkanaler. Denna högprecisionstemperatur
Mätning av temperatur med hjälp av AD7416ARZ och Arduino Nano: 4 steg
Mätning av temperatur med hjälp av AD7416ARZ och Arduino Nano: AD7416ARZ är en 10-bitars temperatursensor med fyra enkanaliga analoga till digitala omvandlare och en inbyggd temperatursensor som ingår i den. Temperaturgivaren på delarna kan nås via multiplexerkanaler. Denna högprecisionstemperatur
Mätning av acceleration med hjälp av ADXL345 och Arduino Nano: 4 steg
Mätning av acceleration med hjälp av ADXL345 och Arduino Nano: ADXL345 är en liten, tunn, ultralåg effekt, 3-axlig accelerometer med hög upplösning (13-bitars) mätning på upp till ± 16 g. Digital utdata formateras som 16-bitars tvåkomplement och är tillgängliga via I2 C digitalt gränssnitt. Den mäter
Mätning av luftfuktighet och temperatur med hjälp av HIH6130 och partikelfoton: 4 steg
Mätning av luftfuktighet och temperatur med HIH6130 och Particle Photon: HIH6130 är en fukt- och temperatursensor med digital utgång. Dessa sensorer ger en noggrannhetsnivå på ± 4% RF. Med branschledande långsiktig stabilitet, sann temperaturkompenserad digital I2C, branschledande tillförlitlighet, energieffektivitet