INHOUDSOPGAWE:
- Stap 1: BH1715 Oorsig:
- Stap 2: Wat u benodig..
- Stap 3: Hardeware -aansluiting:
- Stap 4: Meting van ligintensiteit met behulp van Java -kode:
- Stap 5: Aansoeke:
Video: Meting van ligintensiteit met behulp van BH1715 en Framboos Pi: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Gister het ons aan LCD -skerms gewerk, en terwyl ons daaroor werk, het ons besef hoe belangrik dit is om ligintensiteit te bereken. Ligintensiteit is nie net belangrik in die fisiese domein van hierdie wêreld nie, maar dit speel ook 'n welbekende rol in die biologiese domein. Akkurate skatting van ligintensiteit speel 'n deurslaggewende rol in ons ekosisteem, in die groei van plante, ens. Daarom het ons hierdie sensor BH1715 bestudeer, wat 'n 16-bis seriële uitset tipe omgevingsligsensor is.
In hierdie handleiding gaan ons die werking van BH1715 met Raspberry pi demonstreer, met behulp van Java as programmeertaal.
Die hardeware wat u vir hierdie doel benodig, is soos volg:
1. BH1715 - Ambient Light Sensor
2. Framboos Pi
3. I2C -kabel
4. I2C -skild vir Framboos Pi
5. Ethernet -kabel
Stap 1: BH1715 Oorsig:
In die eerste plek wil ons u vertroud maak met die basiese kenmerke van die sensormodule BH1715 en die kommunikasieprotokol waarop dit werk.
BH1715 is 'n digitale omgevingsligtsensor met 'n I²C -bus -koppelvlak. Die BH1715 word algemeen gebruik om die omgevingsligdata te verkry vir die aanpassing van die krag van die LCD- en toetsbordblok vir mobiele toestelle. Hierdie toestel bied 'n 16-bis-resolusie en 'n verstelbare meetbereik, wat opsporing van 0,23 tot 100 000 lux moontlik maak.
Die kommunikasieprotokol waarop die sensor werk, is I2C. I2C staan vir die inter-geïntegreerde stroombaan. Dit is 'n kommunikasieprotokol waarin die kommunikasie plaasvind deur middel van SDA (seriële data) en SCL (seriële klok) lyne. Dit maak dit moontlik om verskeie toestelle gelyktydig te verbind. Dit is een van die eenvoudigste en doeltreffendste kommunikasieprotokolle.
Stap 2: Wat u benodig..
Die materiaal wat ons nodig het om ons doel te bereik, bevat die volgende hardeware -komponente:
1. BH1715 - Ambient Light Sensor
2. Framboos Pi
3. I2C -kabel
4. I2C -skild vir Framboos Pi
5. Ethernet -kabel
Stap 3: Hardeware -aansluiting:
Die hardeware -aansluitingsgedeelte verduidelik basies die bedradingverbindings wat tussen die sensor en die framboospi benodig word. Die korrekte noodsaaklikheid is om korrekte verbindings te verseker terwyl u aan 'n stelsel werk vir die gewenste uitset. Die vereiste verbindings is dus soos volg:
Die BH1715 werk oor I2C. Hier is die voorbeeld -bedradingsdiagram wat demonstreer hoe om elke koppelvlak van die sensor aan te sluit.
Uit die boks is die bord gekonfigureer vir 'n I2C-koppelvlak, daarom beveel ons aan dat u hierdie aansluiting gebruik as u anders agnosties is. Al wat u nodig het, is vier drade!
Slegs vier verbindings is nodig Vcc-, Gnd-, SCL- en SDA -penne en dit word met behulp van I2C -kabel verbind.
Hierdie verbindings word getoon in die foto's hierbo.
Stap 4: Meting van ligintensiteit met behulp van Java -kode:
Die voordeel van die gebruik van framboos pi is dat dit die buigsaamheid bied van die programmeertaal waarin u die bord wil programmeer om die sensor daarmee te koppel. Deur hierdie voordeel van hierdie bord te benut, demonstreer ons hier dat dit in Java programmeer. Die Java -kode vir BH1715 kan afgelaai word van ons GitHub -gemeenskap, dit is Dcube Store.
Behalwe vir die gemak van die gebruikers, verduidelik ons die kode ook hier:
As die eerste stap van kodering, moet u die pi4j -biblioteek aflaai in geval van java, want hierdie biblioteek ondersteun die funksies wat in die kode gebruik word. Om die biblioteek af te laai, kan u die volgende skakel besoek:
pi4j.com/install.html
U kan die werkende Java -kode vir hierdie sensor ook hier kopieer:
// Versprei met 'n vrywillige lisensie.
// Gebruik dit op enige manier wat u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas.
// BH1715
// Hierdie kode is ontwerp om te werk met die BH1715_I2CS I2C Mini Module beskikbaar by ControlEverything.com.
//
invoer com.pi4j.io.i2c. I2CBus;
voer com.pi4j.io.i2c. I2CD -toestel in;
invoer com.pi4j.io.i2c. I2CFactory;
invoer java.io. IOException;
openbare klas BH1715
{
openbare statiese leegte hoof (String argumente ) gooi uitsondering
{
// Skep I2C -bus
I2CBus -bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Kry I2C -toestel, BH1715 I2C -adres is 0x23 (35)
I2CD -toestel = bus.getDevice (0x23);
// Stuur krag op bevel
device.write ((byte) 0x01);
// Stuur opdrag vir deurlopende meting
device.write ((byte) 0x10);
Draad.slaap (500);
// Lees 2 grepe data
// luminansie msb, luminansie lsb
byte data = nuwe byte [2];
device.read (data, 0, 2);
// Skakel data om
dubbele luminansie = ((data [0] & 0xFF) * 256 + (data [1] & 0xFF)) / 1,20;
// Uitset data na die skerm
System.out.printf ("Ambient Light Luminance: %.2f lux %n", luminance);
}
}
Die biblioteek wat i2c -kommunikasie tussen die sensor en die bord vergemaklik, is pi4j, sy verskillende pakkette I2CBus, I2CDevice en I2CFactory help om die verbinding tot stand te bring.
invoer com.pi4j.io.i2c. I2CBus; invoer com.pi4j.io.i2c. I2CDevice; invoer com.pi4j.io.i2c. I2CFactory; invoer java.io. IOException;
Hierdie deel van die kode laat die sensor werk vir ligintensiteitsmeting deur die onderskeie opdragte te skryf met die skryf () -funksie en dan word die data gelees met die lees () -funksie.
device.write ((byte) 0x01); // krag op bevel
device.write ((byte) 0x10); // opdrag vir deurlopende meting
byte data = nuwe byte [2]; // Lees 2 grepe data
device.read (data, 0, 2);
Die data wat van die sensor ontvang word, word omgeskakel in die toepaslike formaat deur die volgende te gebruik:
dubbele luminansie = ((data [0] & 0xFF) * 256 + (data [1] & 0xFF)) / 1,20;
Die uitvoer word gedruk met die System.out.println () -funksie, in die volgende formaat.
System.out.printf ("Ambient Light Luminance: %.2f lux %n", luminance);
Die uitset van die sensor word op die foto hierbo getoon.
Stap 5: Aansoeke:
BH1715 is 'n digitale uitsetsensor wat omring kan word in 'n selfoon, 'n LCD -TV, 'n rekenaar, ens. doeltreffende ligwaarnemingstoepassings.
Aanbeveel:
Meting van temperatuur met behulp van AD7416ARZ en Framboos Pi: 4 stappe
Meting van temperatuur met behulp van AD7416ARZ en Framboos Pi: AD7416ARZ is 'n 10-bis temperatuur sensor met vier enkanaals analoog na digitale omsetters en 'n ingeboude temperatuursensor daarin. Toegang tot die temperatuursensor op die dele is via multiplexerkanale. Hierdie hoë akkuraatheidstemperatuur
Meting van versnelling met behulp van ADXL345 en Framboos Pi: 4 stappe
Meting van versnelling met behulp van ADXL345 en Framboos Pi: Die ADXL345 is 'n klein, dun, ultra-lae, drie-as versnellingsmeter met 'n hoë resolusie (13-bis) meting tot ± 16 g. Digitale uitsetdata word geformateer as 'n 16-bis tweeling-aanvulling en is toeganklik via die I2 C digitale koppelvlak. Dit meet die
Meting van humiditeit met behulp van HYT939 en Framboos Pi: 4 stappe
Meting van humiditeit met behulp van HYT939 en Framboos Pi: HYT939 is 'n digitale humiditeitsensor wat werk op I2C -kommunikasieprotokol. Humiditeit is 'n belangrike parameter vir mediese stelsels en laboratoriums. Om hierdie doelwitte te bereik, het ons probeer om HYT939 met framboospi te koppel. Ek
Meting van versnelling met behulp van H3LIS331DL en Framboos Pi: 4 stappe
Meting van versnelling met behulp van H3LIS331DL en Framboos Pi: H3LIS331DL, is 'n lae-krag hoëprestasie 3-as lineêre versnellingsmeter wat tot die "nano" -familie behoort, met 'n digitale I²C-seriële koppelvlak. H3LIS331DL het 'n gebruiker -kiesbare volle weegskaal van ± 100g/± 200g/± 400g en kan versnellings meet met
Meting van humiditeit en temperatuur met behulp van HTS221 en Framboos Pi: 4 stappe
Meting van humiditeit en temperatuur met behulp van HTS221 en Framboos Pi: HTS221 is 'n ultra kompakte kapasitiewe digitale sensor vir relatiewe humiditeit en temperatuur. Dit bevat 'n waarnemingselement en 'n gemengde seintoepassingspesifieke geïntegreerde stroombaan (ASIC) om die meetinligting deur middel van digitale reeks