Мазмұны:
- 1 -қадам: BH1715 шолу:
- 2 -қадам: Сізге не керек..
- 3 -қадам: Жабдықты қосу:
- 4 -қадам: Java кодын қолдана отырып, жарық қарқындылығын өлшеу:
- 5 -қадам: Өтініштер:
Бейне: BH1715 және Raspberry Pi көмегімен жарық қарқындылығын өлшеу: 5 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Кеше біз LCD дисплейлерде жұмыс істедік, ал олармен жұмыс жасау кезінде біз жарық қарқындылығын есептеудің маңыздылығын түсіндік. Жарықтың қарқындылығы бұл әлемнің физикалық саласында ғана маңызды емес, сонымен қатар оның биологиялық салада жақсы айтылған рөлі бар. Жарық интенсивтілігін дәл бағалау біздің экожүйеде, өсімдіктердің өсуінде және т.б. маңызды рөл атқарады. Сондықтан осы мақсатта біз BH1715 сенсорын зерттедік, ол 16 разрядты сериялық шығыс типті сыртқы жарық сенсоры.
Бұл оқулықта біз BH1715 -тің Raspberry pi -мен жұмыс жасауын, Java -ны бағдарламалау тілі ретінде көрсететін боламыз.
Бұл үшін сізге қажет жабдықтар келесідей:
1. BH1715 - Қоршаған ортадағы жарық сенсоры
2. Raspberryy Pi
3. I2C кабелі
4. Raspberry Pi үшін I2C қалқаны
5. Ethernet кабелі
1 -қадам: BH1715 шолу:
Ең алдымен, біз сенсорлық модульдің BH1715 негізгі мүмкіндіктерімен және ол жұмыс істейтін байланыс хаттамасымен таныстырғымыз келеді.
BH1715 - бұл I²C шинасы бар интерфейсі бар цифрлық жарық сенсоры. BH1715 әдетте мобильді құрылғылар үшін СКД мен пернетақта жарығының қуатын реттеу үшін қоршаған жарық туралы мәліметтерді алу үшін қолданылады. Бұл құрылғы 16-биттік ажыратымдылықты және реттелетін өлшеу диапазонын ұсынады.23-тен 100 000 люкске дейін анықтауға мүмкіндік береді.
Сенсор жұмыс істейтін байланыс протоколы I2C болып табылады. I2C интегралды схеманы білдіреді. Бұл байланыс хаттамасы, онда байланыс SDA (сериялық деректер) және SCL (сериялық сағат) желілері арқылы жүзеге асады. Бұл бірнеше құрылғыны бір уақытта қосуға мүмкіндік береді. Бұл қарапайым және тиімді байланыс протоколдарының бірі.
2 -қадам: Сізге не керек..
Мақсатқа жету үшін бізге қажет материалдар келесі аппараттық компоненттерді қамтиды:
1. BH1715 - Қоршаған ортадағы жарық сенсоры
2. Raspberry Pi
3. I2C кабелі
4. Raspberry Pi үшін I2C қалқаны
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 шағын модулімен жұмыс істеуге арналған.
//
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 ) Ерекшеліктерді шығарады
{
// 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);
// Деректерді түрлендіру
қос жарықтық = ((деректер [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. I2CD құрылғыны импорттау; 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, СКД дисплейінде және басқа да көптеген құрылғыларда қолдануға болады. жарықты сезудің тиімді қосымшалары.
Ұсынылған:
AD7416ARZ және Raspberry Pi көмегімен температураны өлшеу: 4 қадам
AD7416ARZ және Raspberry Pi көмегімен температураны өлшеу: AD7416ARZ-бұл цифрлық түрлендіргіштерге аналогты төрт бір арналы аналогы бар 10 биттік температура сенсоры және оған қосылған борттық температура сенсоры. Бөлшектердегі температура сенсорына мультиплексорлық арналар арқылы қол жеткізуге болады. Бұл жоғары дәлдіктегі температура
Температура мен жарық қарқындылығын қалай тіркеуге болады - Proteus модельдеу - Қиындық - Liono Maker: 5 қадам
Температура мен жарық қарқындылығын қалай тіркеуге болады | Proteus модельдеу | Қиындық | Liono Maker: Сәлеметсіз бе, бұл Liono Maker, бұл менің ресми YouTube каналым. Бұл ашық YouTube Channel.here сілтемесі бар: Liono Maker YouTube Channel бейне бейне сілтемесі бар: Temp & жарық интенсивті тіркеу Бұл оқулықта біз темперамент жасауды үйренеміз
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 және бөлшек фотонының көмегімен жарық қарқындылығын есептеу: Кеше біз СКД дисплейлерінде жұмыс істедік, ал олармен жұмыс жасау кезінде біз жарық қарқындылығын есептеудің маңыздылығын түсіндік. Жарықтың қарқындылығы бұл әлемнің физикалық саласында ғана маңызды емес, сонымен қатар оның биологияда жақсы айтылған рөлі бар