Мазмұны:

AtHome көмегімен жарықтық модулін жасаңыз: 7 қадам
AtHome көмегімен жарықтық модулін жасаңыз: 7 қадам

Бейне: AtHome көмегімен жарықтық модулін жасаңыз: 7 қадам

Бейне: AtHome көмегімен жарықтық модулін жасаңыз: 7 қадам
Бейне: 7 лайфхаков с ГОРЯЧИМ КЛЕЕМ для вашего ремонта. 2024, Қараша
Anonim
AtHome көмегімен жарықтық модулін жасаңыз
AtHome көмегімен жарықтық модулін жасаңыз

AtHome-бұл смартфон қосымшасы мен веб-қосымшаны беру үшін пайдаланылатын API-мен жұмыс жасайтын жеке сенсорлық модульдердің байланысқан шешімін әзірлеуге бағытталған Epitech-тен AtHome тобы жасаған ашық және ашық бағдарламалық қамтамасыздандырудың студенттік жобасы. Модульдер үйдің ішкі ортасын бақылайды және пайдаланушыға жасылдан (жақсыдан) қызылға (нашарға) дейін визуалды түрде кері байланыс бере алады, ал берілген деректерді пайдаланушы модульдің сериялық байланысы арқылы немесе қосылу арқылы көре алады. егер сіз оларды қолдансаңыз, біздің қосымшалар.

Бұл жоба әлі де белсенді түрде дамып келе жатқанына қарамастан, біздің модульдердің негізгі функциялары енді дайын модульдерді әзірлеу үшін қолдануға дайын. Сондықтан мен сізге жарықтық модулінің осы үлгісімен өзіңіздің қарапайым модуліңізді қалай құруға болатынын көруді ұсынамын.

Бұл модульдер негізінен Arduino үйлесімді тақтамен (Arduino ішінара ядросы Stream, Wire және UART ағыны бар болғанша жеткілікті болуы керек), жарық диоды (қызыл немесе RGB) шығарылған жағдайда қызыл түске айналады. сенсор, қуат көзі (қабырғадағы қуат көзі немесе батарея) және лазермен кесілген корпус.

Иә, бұл жаңалық емес, сенсорлық жобалар көп, бірақ денсаулыққа қатысты мәселелерді анықтау, байланыс және ақпаратты жеке серверде сақтау және визуализация сияқты басқа мүмкіндіктер сізге көмектеседі деп үміттенеміз. Немесе сіз өзіңіздің үйіңізді бақылап отырғыңыз келсе, қарапайым жобалар немесе одан да қызықты:)

1 -қадам: компоненттерді жинау

Компоненттерді жинау
Компоненттерді жинау

Бұл жоба үшін сізге AtHome модулін құру үшін бірнеше компоненттер қажет:

  • 1x Arduino үйлесімді тақта: Мен мұнда Arduino UNO қолданамын (бірақ ол TI Launchpads және ESP8266 тақталары сияқты басқа тақталармен жұмыс істейді)
  • 1x сенсор: мен TSL2561 жарықтық сенсорын қолданамын (қолдау көрсетілетін сенсорлар тізімі біздің кітапхананың құжаттамасында бар)
  • 1x светодиод: Мен мұнда Grove Chainable RGB жарықдиодты қолданамын (бірақ ол қарапайым қызыл жарық диоды немесе NeoPixel болуы мүмкін)
  • Dupont Wires

Үйлесімді компоненттердің тізімі біздің жобаның құжаттамасында бар.

2 -қадам: Біздің кітапхананы орнату

Біздің кітапхананы орнату
Біздің кітапхананы орнату
Біздің кітапхананы орнату
Біздің кітапхананы орнату

Біздің кітапхананы орнату үшін мына сілтеме арқылы біздің репозиторийден жүктеу қажет болады (біз оны кейін Arduino IDE тізімінде және PlatformIO -да жариялаймыз):

gitlab.com/Woodbox/Framework/-/jobs/artifacts/master/download?job=deploy

Содан кейін Arduino IDE -ге кіріп, «Эскиз> Кітапхананы қосу>. ZIP кітапханасын қосу …» тармағын таңдаңыз. Содан кейін «artifacts.zip» деп аталатын ZIP файлын таңдап, «ОК» түймесін басыңыз.

3 -қадам: Қажетті кітапханаларды орнату

Қажетті кітапханаларды орнату
Қажетті кітапханаларды орнату
Қажетті кітапханаларды орнату
Қажетті кітапханаларды орнату
Қажетті кітапханаларды орнату
Қажетті кітапханаларды орнату

Жұмыс істеу үшін біздің кітапханаға компьютерге басқа кітапханалар орнатылуы қажет:

  • Архипенко тапсырмалар кестесінің кітапханасы
  • SEEED Studio Grove сандық жарық сенсорының кітапханасы
  • SEEED Studio Grove Chainable RGB LED кітапханасы
  • Adafruit NeoPixel кітапханасы

Сіз оларды Arduino IDE кітапханасының менеджері арқылы орната аласыз, «Эскиз»> «Кітапхананы қосу»> «Кітапханаларды басқару …».

Ашылатын жаңа терезеде ақ іздеу жолағына орнатқыңыз келетін кітапхананың атын жазыңыз, содан кейін оның блогын басыңыз. «Орнату» түймесі пайда болады, оны басу жеткілікті, ал IDE оны жүктеп алып, сіз үшін орнатады.

4 -қадам: модульді жинау

Модульді құрастыру
Модульді құрастыру

Біз сенсордан бастаймыз. TSL2561 VCC түйреуішін сым арқылы Arduino 5V істігіне, сенсор GND түйрегіші Arduino GND түйреуішінің біріне және сенсор SDA және SCL түйреуіштерін Arduino SDA және SCL түйреуіштеріне жалғаңыз.. Енді сіз аяқтадыңыз!

Енді Grove Chainable RGB светодиодының VCC түйреуішін Arduino -дың 5В істігіне және LED -тің GND түйреуішін Arduino -ның екінші GND -не жалғаңыз. Егер сіз Arduino болсаңыз, тек 5В түйреуіші болсаңыз, сіз Arduino 5V -ті нан тақтасының + қатарына қосуға және оның барлық компоненттерін 5В түйреуіштеріне қосуға немесе оларды таспаның бір бөлігіне дәнекерлеуге арналған тақтаны қолдана аласыз. wago қосқыштарын немесе қалағаныңызды пайдаланыңыз. Енді светодиодтың CI түйреуішін Arduino 7 істігіне және жарықдиодты DI түйреуішін Arduino 8 істігіне жалғаңыз. Егер сізде мұндай жарық диоды болмаса, алаңдамаңыз, Arduino тақтасының кіріктірілген жарықдиодты немесе кодты кішкене өзгерту арқылы классикалық шамды қолдануға болады.

5 -қадам: Жарықтық модулінің эскизін жазу

Жарықтық модулінің эскизін жазу
Жарықтық модулінің эскизін жазу

Жаңа эскиз жасап, өз модуліміздің кодын жазайық.

Егер эскиздің түсіндірмесі сізді қызықтырмаса, оны көшіріп, Arduino IDE -ге қоюға болады:

#қосу

LightModule пайдалану = AtHomeModule; Ағын *ағындары = {& Сериялық, nullptr}; GroveChainableLED:: түйреуіштер grovePins = {7, 8}; GroveChainableLED светодиод (& grovePins); LightModule *модулі = LightModule:: getInstance (); void setup () {// бір рет іске қосу үшін орнату кодын осында қойыңыз: Serial.begin (9600); модуль-> setStreams (ағындар); GroveDigitalLightSensor *lightSensor = жаңа GroveDigitalLightSensor (); модуль-> setSensor (lightSensor); модуль-> setDisplay (& led); модуль-> орнату (); } void loop () {// қайта енгізу үшін негізгі кодты осында қойыңыз: module-> run (); }

Егер сіз бұл кодтың не істеп жатқанын түсінгіңіз келсе, төмендегілерді оқи аласыз немесе сізді қызықтырмаса, келесі қадамға тікелей өтуге болады.

Бастау үшін, эскиздің жоғарғы жағына осы жолды жазу арқылы біздің кітапхананы эскизге қосу керек:

#қосу

Енді біз қолданатын модуль объектісіне бүркеншік ат қоюымыз керек. Сіз оны компоненттерді өзгертуге, іске қосуға, тоқтатуға және т. Бұл шаблонмен салынған қорап болғандықтан (біз адамдар ретінде жобалар үшін қолданатын әдеттегі шаблон сияқты, оның бастапқы базасы бар және Arduino компиляторы біз берген параметрлерге сәйкес соңғы кодты құрады) сенсордың мәнін білдіретін түрді анықтайды. біз есте сақтағымыз келетін сенсор мәндерінің саны, ол оның атауында көрсетілген және оны қолданғымыз келген сайын қайталануы керек. Бұл біраз тітіркендіргіш, сондықтан біз жаңа атауды, бүркеншік атты осы қораптың толық атауымен байланыстырамыз.

Мысалы, мен бұл ұяшықты «LightModule» деп атағанын қалаймын, себебі ол жарықтықты бақылау модулін іске асыру үшін пайдаланылады және мен бір уақытта тек 1 мәнді сақтағым келеді. Жарықтылық люкспен TSL2561 сенсорының ажырамас түрі ретінде ұсынылған, ол компьютерлермен uint16_t түрінде ұсынылған. Біздің бүркеншік аты келесідей болады:

LightModule пайдалану = AtHomeModule;

«using» кілт сөзі біз бүркеншік атты құрып жатқанымызды және оны кейін қойған атауымыз «=» таңбасынан кейінгі реттілікке сәйкес келетінін білдіреді.

«AtHomeModule» - бұл жаңа атау беретін осы қораптың нақты атауы, ал мәндердің көрінісін және жадта сақталатын мәндердің санын анықтайтын параметрлер «» арасында тізімделген.

Енді біз кейінірек «AtHomeModule» атауын қолданған кезде, Arduino оның «AtHomeModule» толық атауына қатысты екенін біледі.

Егер сіз өзіңіздің қорапшаңызда 1 емес, 5 мәнді жадыда сақтағыңыз келсе, сізге «1» -ді «5» -ке ауыстыру қажет, ал Arduino сізге қалаған нәрсені жасай алатын қораптың басқа түрін жасайды. Есіңізде болсын, егер модуль сенсордың 5 мәнін тиімді өлшеуге уақыт жетпей өз мәндерін жіберуге бағдарламаланған болса, сіз олардың 5 -інің жіберілгенін ешқашан көрмейсіз, себебі ол соңғы жүктеуден бері тек жаңа мәндерді жібереді.

Әрі қарай, байланыс үшін модуль пайдаланатын Arduino ағындарындағы көрсеткіштер бар көрсеткіштер жиынын құру қажет, әрқашан keyworkd «nullptr» арқылы тоқтатылады. Мұнда мен компьютермен USB порты арқылы байланысатын Arduino -ның «сериялық» ағынын ғана қолданамын, сондықтан массив келесідей көрінеді:

Ағын *ағындары = {& Сериялық, nullptr};

«*» Символы - бұл типті көрсеткіш (элементтің өзі емес, элементтің орны) дегенді білдіреді және «» жақшалары Arduino -да бұл массивті білдіреді, сондықтан біз бірнеше мәндерді қоя аламыз.

Әрі қарай, біз жарықдиодты жасауымыз керек. Ол үшін бізге келесі екі жолды жазу керек;

GroveChainableLED:: түйреуіштер grovePins = {7, 8};

GroveChainableLED светодиод (& grovePins);

Егер сізде Grove RGB светодиоды болмаса, бірақ визуалды кері байланыс қажет болса, мұны эскиздің қарапайым өзгерісімен жасауға болады. Алдыңғы екі жолды мына жолмен ауыстырыңыз:

Монохроматикалық LED жарықдиодты (LED_BUILTIN);

Бұл конфигурацияда жасыл кіріктірілген жарық диоды бақыланатын мән денсаулыққа сәйкес келгенше қосылады және байланыс үзілген кезде өшеді. Егер сіз оны байланыс үзілген кезде қосуды қаласаңыз (мысалы, 13 -істіктегі жасыл емес, қызыл жарықдиодты пайдалансаңыз), сіз оның орнына осы жолды пайдалана аласыз:

Бір түсті LED жарықдиодты (LED_BUILTIN, ақиқат);

Келесі қадам - біздің модульді құру. Бұл бірінші рет «getInstance» әдісін шақыру арқылы оның орналасқан жерін есте сақтаған кезде жасалады:

LightModule *модулі = LightModule:: getInstance ();

Содан кейін, Arduino эскиздерінде әдеттегідей «Сериялық» портты инициализациялаудан бастап, Arduino -ның «setup ()» функциясының параметрлерін орнату керек:

Serial.begin (9600);

Біз мына жолды жазу арқылы жарық сенсорын жасаймыз:

GroveDigitalLightSensor *lightSensor = жаңа GroveDigitalLightSensor ();

Содан кейін, біз модульге Arduino Stream -дегі көрсеткіштер жиынтығын олар арқылы байланысу үшін қолдануды айтамыз:

модуль-> setStreams (ағындар);

Біз сондай -ақ модульге жарық сенсорының көмегімен модуль орналасқан жарық қарқындылығын бақылауды айтамыз:

модуль-> setSensor (lightSensor);

Біз модульге көрнекі кері байланыс беру үшін жарықдиодты қолдануды айтамыз:

модуль-> setDisplay (& led);

Ақырында, біз өз модулімізге өзінің «баптау» функциясын шақыру арқылы кез келген ішкі конфигурацияны жасауға дайын екенін айтамыз:

модуль-> орнату ();

Біздің соңғы қадам - бұл модульдің «run ()» функциясын шақыру, ол Arduino -ның «цикл» функциясының әр қайталануында осы жолды «цикл» функциясының ішіне жазу арқылы шақыруға арналған:

модуль-> іске қосу ();

Енді біздің эскизіміз Arduino -ға жүктеуге және біздің модульді тексеруге дайын!

6 -қадам: AtHome модулін тексеру

Біздің үйдегі модульді тестілеу
Біздің үйдегі модульді тестілеу
Біздің үйдегі модульді тестілеу
Біздің үйдегі модульді тестілеу

Эскизді Arduino -ға жүктеу үшін «Құралдар»> «Порт»> «[COMx немесе/dev/x] (Arduino/Genuino UNO)» бөліміне өтіп, Arduino UNO тақтасын таңдаңыз.

Ақырында, эскизді тақтаға жүктеу үшін «Жүктеу» түймесін басыңыз (көрсеткі оңға бағытталған шеңбер түймесі, құралдар тақтасының екінші белгісі).

Болды! Енді сіз модуль жұмыс істеп, Arduino сериялық мониторында көрінетін мәндерді компьютерге жіберуіңіз керек. Сіз оны «Құралдар» мәзірінде Arduino -ның «Сериялық мониторын» ашу арқылы тексере аласыз және сізде осы қадамның екінші тақырыптық суретіне ұқсас нәтиже болуы керек:)

7 -қадам: Модульге корпус құру

Модульге арналған корпус құру
Модульге арналған корпус құру

Сіз 3 мм фанера тақтасында лазермен кесу арқылы модульге қарапайым қорап қорабын жасай аласыз.

Біздің қорапшаларды жасау үшін біз makercase көмегімен шаблонды кейінірек реттелетін қалаған өлшемде дайындаймыз. Сіз осы қадамға бекітілген жарықтық модулінің svg файлын таба аласыз.

Содан кейін беттерді жабыстырыңыз, басқаларын қоспағанда, оны кейінірек ашуға болады, тізбекті ішке енгізіп, жарықдиодты корпустың тесігіне жабыстырыңыз (біз саңылауды толтыру үшін мөлдір таспаны қолданамыз және жарық диодты жабыстырамыз. оның).

Енді Arduino -ны қуаттандыру үшін батареяны қосыңыз, корпусты жабыңыз және сіздің модуль дайын және жақсы болуы керек:)

Ұсынылған: