
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51


Кечээ биз LCD дисплейлердин үстүндө иштеп жатканбыз жана алардын үстүндө иштеп жатып, биз жарыктын интенсивдүүлүгүн эсептөөнүн маанилүүлүгүн түшүндүк. Жарыктын интенсивдүүлүгү бул дүйнөнүн физикалык чөйрөсүндө гана маанилүү эмес, бирок биологиялык чөйрөдө анын жакшы айтылган ролу бар. Жарыктын интенсивдүүлүгүн так баалоо экосистемабызда, өсүмдүктөрдүн өсүшүндө ж.
Бул окуу куралы, биз программалоо тили катары Java колдонуп, Raspberry pi менен BH1715тин иштешин көрсөтөбүз.
Бул үчүн сизге керектүү болгон жабдыктар төмөнкүлөр:
1. BH1715 - Айланадагы жарык сенсору
2. Raspberryy Pi
3. I2C кабели
4. Raspberry Pi үчүн I2C Shield
5. Ethernet кабели
1 -кадам: BH1715 Обзор:

Биринчиден, биз сизди BH1715 болгон сенсор модулунун негизги функциялары жана ал иштеген байланыш протоколу менен тааныштыргыбыз келет.
BH1715 - I²C автобус интерфейси бар санариптик жарык сенсору. BH1715, адатта, мобилдик түзмөктөр үчүн ЖК жана Баскычтоптун арткы жарык кубатын тууралоо үчүн айланадагы жарык маалыматтарды алуу үчүн колдонулат. Бул түзмөк 16-биттик чечимди жана жөнгө салынуучу өлчөө диапазонун сунуштайт.23төн 100гө чейин люкс.
Сенсор иштеген байланыш протоколу I2C. I2C интегралдык схеманы билдирет. Бул байланыш протоколу, анда байланыш SDA (сериялык маалыматтар) жана SCL (сериялык саат) линиялары аркылуу ишке ашат. Бул бир эле учурда бир нече түзмөктү туташтырууга мүмкүндүк берет. Бул эң жөнөкөй жана эффективдүү байланыш протоколунун бири.
2 -кадам: Сизге эмне керек..



Максатыбызга жетүү үчүн бизге керектүү материалдар төмөнкү аппараттык компоненттерди камтыйт:
1. BH1715 - Айланадагы жарык сенсору
2. Raspberry Pi
3. I2C кабели
4. Raspberry Pi үчүн I2C Shield
5. Ethernet кабели
3 -кадам: Аппараттык туташуу:


Аппараттык туташуу бөлүмү негизинен сенсор менен малина пи ортосунда талап кылынган зым байланыштарын түшүндүрөт. Туура туташууларды камсыздоо каалаган өндүрүш үчүн кандайдыр бир системада иштеп жатканда негизги зарылчылык болуп саналат. Ошентип, керектүү байланыштар төмөнкүлөр:
BH1715 I2C үстүндө иштейт. Бул жерде сенсордун ар бир интерфейсин кантип зым менен жабуу керектигин көрсөтүүчү зымдардын схемасы келтирилген.
Кутудан тышкары, такта I2C интерфейси үчүн конфигурацияланган, андыктан эгер сиз агностиксиз болсоңуз, анда бул байланышты колдонууну сунуштайбыз. Сизге болгону төрт зым керек!
Vcc, Gnd, SCL жана SDA төөнөгүчтөрүнө төрт гана туташуу керек жана алар I2C кабелинин жардамы менен туташкан.
Бул байланыштар жогорудагы сүрөттөрдө көрсөтүлгөн.
4 -кадам: Java кодун колдонуу менен жарыктын интенсивдүүлүгүн өлчөө:


Малина пи колдонуунун артыкчылыгы, сенсорго интерфейс үчүн тактаны программалоону каалаган программалоо тилинин ийкемдүүлүгүн камсыз кылат. Бул тактанын артыкчылыгын колдонуп, биз бул жерде Java тилинде программалоону көрсөтүп жатабыз. BH1715 үчүн Java кодун биздин GitHub жамаатынан жүктөп алса болот, бул Dcube Store.
Колдонуучулардын ыңгайлуулугу үчүн, биз бул жерде кодду түшүндүрүп жатабыз:
Коддоонун биринчи кадамы катары java болгон учурда pi4j китепканасын жүктөп алуу керек, анткени бул китепкана коддо колдонулган функцияларды колдойт. Ошентип, китепкананы жүктөө үчүн төмөнкү шилтемеге кире аласыз:
pi4j.com/install.html
Бул сенсордун java кодун бул жерден көчүрүп алсаңыз болот:
// Эркин лицензия менен таратылган.
// Аны каалагандай колдон, пайда же бекер, эгер ал ага байланыштуу чыгармаларынын лицензиясына туура келсе.
// BH1715
// Бул код ControlEverything.com жеткиликтүү BH1715_I2CS I2C Mini Module менен иштөө үчүн иштелип чыккан.
//
com.pi4j.io.i2c. I2CBus импорттоо;
com.pi4j.io.i2c. I2CDevice импорттоо;
com.pi4j.io.i2c. I2CFactory импорттоо;
java.io. IOException импорттоо;
коомдук класс BH1715
{
public static void main (String args ) Exception ыргытат
{
// I2C шинасын түзүү
I2CBus автобус = I2CFactory.getInstance (I2CBus. BUS_1);
// I2C түзмөгүн алыңыз, BH1715 I2C дареги 0x23 (35)
I2CDevice түзмөгү = bus.getDevice (0x23);
// Күчтү буйрукка жөнөтүү
device.write ((байт) 0x01);
// Үзгүлтүксүз өлчөө буйругун жөнөтүү
device.write ((байт) 0x10);
Thread.sleep (500);
// 2 байт маалыматтарды окуңуз
// жаркыроо msb, жаркыроо lsb
байт маалымат = жаңы байт [2];
device.read (маалыматтар, 0, 2);
// Маалыматты Convert
кош жаркыроо = ((маалымат [0] & 0xFF) * 256 + (маалымат [1] & 0xFF)) / 1.20;
// Экранга маалыматтарды чыгаруу
System.out.printf ("Сырткы жарыктын жарыктуулугу: %.2f люкс %n", жарыктуулугу);
}
}
Сенсор менен тактанын ортосундагы i2c байланышын жеңилдеткен китепкана pi4j, анын ар кандай пакеттери I2CBus, I2CDevice жана I2CFactory байланышты түзүүгө жардам берет.
импорттоо com.pi4j.io.i2c. I2CBus; импорттоо com.pi4j.io.i2c. I2CDevice; com.pi4j.io.i2c. I2CFactory импорттоо; java.io. IOException импорттоо;
Коддун бул бөлүгү сенсорду write () функциясын колдонуу менен тиешелүү буйруктарды жазуу менен жарыктын интенсивдүүлүгүн өлчөө үчүн иштетет, андан кийин маалыматтар read () функциясын колдонуу менен окулат.
device.write ((байт) 0x01); // буйрукту иштетүү
device.write ((байт) 0x10); // үзгүлтүксүз өлчөө буйругу
байт маалымат = жаңы байт [2]; // 2 байт маалыматтарды окуңуз
device.read (маалыматтар, 0, 2);
Сенсордон алынган маалыматтар төмөнкүлөрдү колдонуу менен тиешелүү форматка которулат:
кош жаркыроо = ((маалымат [0] & 0xFF) * 256 + (маалымат [1] & 0xFF)) / 1.20;
Чыгаруу System.out.println () функциясын колдонуу менен төмөнкү форматта басылат.
System.out.printf ("Айланадагы жарыктын жарыктуулугу: %.2f люкс %n", жаркыроо);
Сенсордун чыгышы жогорудагы сүрөттө көрсөтүлгөн.
5 -кадам: Тиркемелер:

BH1715 - бул санариптик чыгуучу тышкы жарык сенсору, аны уюлдук телефонго, ЖК ТВга, ЭСКЕРТҮҮ ПК ж.б. киргизүүгө болот, ошондой эле Портативдик оюн машинасында, Санарип камерада, Санарип видеокамерада, PDA, ЖК дисплейинде жана башка көптөгөн түзмөктөрдө колдонсо болот. натыйжалуу жарык сезүү колдонмолору.
Сунушталууда:
Жарык интенсивдүүлүгүн пландоо Arduino жана Python Arduino Master китепканасын колдонуу: 5 кадам

Arduino жана Pythonдун Arduino Master китепканасын колдонуу менен жарыктын интенсивдүүлүгүн плотировкалоо: Arduino үнөмдүү, бирок абдан эффективдүү жана функционалдуу инструмент болгондуктан, аны Embedded Cде программалоо долбоорлорду түйшүктүү кылат! Pythonдун Arduino_Master модулу муну жөнөкөйлөтөт жана бизге эсептөөлөрдү жүргүзүүгө, таштандылардын баалуулугун алып салууга
BH1715 жана Arduino Nano аркылуу жарык интенсивдүүлүгүн эсептөө: 5 кадам

BH1715 жана Arduino Nano аркылуу жарык интенсивдүүлүгүн эсептөө: Кечээ биз ЖК дисплейлерде иштеп жатканбыз жана алардын үстүндө иштеп жатканда жарыктын интенсивдүүлүгүн эсептөөнүн маанилүүлүгүн түшүндүк. Жарык интенсивдүүлүгү бул дүйнөнүн физикалык чөйрөсүндө гана маанилүү эмес, бирок анын биологияда жакшы айтылган ролу бар
Жарык интенсивдүүлүгүн эсептөө BH1715 жана бөлүкчө фотонун колдонуу: 5 кадам

BH1715 жана Particle Photon аркылуу жарык интенсивдүүлүгүн эсептөө: Кечээ биз ЖК дисплейлерде иштеп жатканбыз жана алардын үстүндө иштеп жатканда жарыктын интенсивдүүлүгүн эсептөөнүн маанилүүлүгүн түшүндүк. Жарык интенсивдүүлүгү бул дүйнөнүн физикалык чөйрөсүндө гана маанилүү эмес, бирок анын биологияда жакшы айтылган ролу бар
Фотоэлементтерди жана термисторлорду колдонуу менен жарыктын интенсивдүүлүгүн үнөмдөөчү: 6 кадам

Фотоэлементтерди жана термисторлорду колдонуу менен жарыктын интенсивдүүлүгүн үнөмдөөчү: Бул көрсөтмө сизге фотоэлементтерди жана термисторлорду колдонуу менен жарыктын интенсивдүүлүгүн өзгөртүү аркылуу энергияны үнөмдөөгө үйрөтүү үчүн иштелип чыккан. Биз сизге схеманы кантип курууну жана Arduino кодун MATLAB аркылуу көрсөтөбүз
Жарык диоддор менен ACны колдонуу (2 -бөлүк) - жана бул колдо эсептегичти жарык кылыңыз.: 9 кадам

Жарык диоддор менен ACны колдонуу (2 -бөлүк) - жана бул колдо эсептегичти жарык кылыңыз. LEDди AC менен колдонуу (1 -бөлүк), биз AC тармагына туташкан трансформатору бар светодиоддорду иштетүүнүн жөнөкөй жолун карадык. биздин светодиоддор трансформаторсуз иштейт жана кеңейтүү тилкесине бириктирилген жөнөкөй жарыкты курат. ЭСКЕРТҮҮ