Мазмуну:
- 1 -кадам: Компоненттерди чогултуу
- 2 -кадам: Биздин китепкананы орнотуу
- 3 -кадам: Керектүү китепканаларды орнотуу
- 4 -кадам: Модулду чогултуу
- 5 -кадам: Жаркыроо модулунун эскизин жазуу
- 6 -кадам: Биздин AtHome модулубузду тестирлөө
- 7 -кадам: Модул үчүн Case куруу
Video: AtHome менен жаркыроо модулун түзүңүз: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
AtHome-бул смартфондук тиркемени жана веб-тиркемени азыктандыруу үчүн колдонулган APIди ачып, өзүнчө жайгашкан маалымат базасы менен байланышкан бир нече жеке сенсордук модулдардын туташкан чечимин иштеп чыгууну көздөгөн, Epitechтен AtHome тобу тарабынан даярдалган толугу менен ачык жана ачык программалык студенттик долбоор. Модулдар үйдүн ички чөйрөсүн көзөмөлдөйт жана колдонуучуга жашылдан (жакшыдан) кызылга (жаманга) чейин визуалдык жооп кайтара алат жана берилген маалыматтар модулдун сериялык байланышы аркылуу же колдонуучу тарабынан көрүнүп турат. эгер сиз аларды колдонсоңуз, биздин колдонмолор.
Бул долбоор дагы эле активдүү иштеп жатканына карабастан, биздин модулдардын негизги функциялары азыр даяр жана болжолдуу модулдарды иштеп чыгуу үчүн колдонууга оңой. Ошондуктан, мен сизге жаркыроо модулунун бул мисалы менен өзүңүздүн жөнөкөй модулуңузду кантип курууну көрүүнү сунуштайм.
Бул модулдар негизинен Arduino -го шайкеш келген такта менен курулган (жарым-жартылай Arduino ядросу Stream, Wire жана UART агымынын колдоосуна ээ болгонго чейин жетиштүү болушу керек), LED (кызыл же RGB) чыгарылган учурда кызыл болуп калат. сенсор, электр менен камсыздоо (дубалдын кубаттуулугу же батарея) жана лазер менен кесилген корпус.
Ооба, бул албетте жаңы эмес, сенсордук көптөгөн долбоорлор бар, бирок ден соолук көйгөйлөрүн аныктоо, баарлашуу жана маалыматты жеке серверде сактоо жана визуалдаштыруу сыяктуу башка мүмкүнчүлүктөр сизге жардам берет деп үмүттөнөбүз. Же сиз жөн гана үйүңүздү, жөнөкөй проектилерди же анча кызыктуу эмес көзөмөлдөөнү кааласаңыз:)
1 -кадам: Компоненттерди чогултуу
Бул долбоор үчүн сизге AtHome модулуңузду куруу үчүн бир нече компоненттер керек болот:
- 1x Arduino шайкеш келген такта: Бул жерде мен Arduino UNO колдоном (бирок ал TI Launchpads жана ESP8266 такталары сыяктуу башка такталар менен да иштейт)
- 1x сенсор: Мен TSL2561 жаркыроо сенсорун колдоном (колдоого алынган сенсорлордун тизмеси биздин китепкананын документтеринде бар)
- 1x LED: Мен бул жерде Grove Chainable RGB LEDин колдоном (бирок ал жөнөкөй кызыл LED же NeoPixel болушу мүмкүн)
- Dupont Wires
Ылайыктуу компоненттердин тизмеси биздин долбоордун документтеринде бар.
2 -кадам: Биздин китепкананы орнотуу
Биздин китепкананы орнотуу үчүн, биздин репозиторийден жүктөп алышыңыз керек (биз аны кийинчерээк Arduino IDE тизмесине жана PlatformIOго жарыялайбыз) бул шилтеме менен:
gitlab.com/Woodbox/Framework/-/jobs/artifacts/master/download?job=deploy
Андан кийин, Arduino IDEге кирип, "Эскиз> Китепкананы кошуу>. ZIP Китепканасын кошуу …" дегенди тандаңыз. Андан кийин "artifacts.zip" деп аталган zip файлын тандап, "OK" чыкылдатыңыз.
3 -кадам: Керектүү китепканаларды орнотуу
Иштөө үчүн биздин китепкана компьютериңизге башка китепканаларды орнотушу керек:
- Архипенко TaskScheduler китепканасы
- SEEED Studio Grove Digital Light Sensor китепканасы
- 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 LEDинин VCC пинин Arduino'дун 5V пинине жана LEDдин GND пинин Arduino'дун экинчи GNDине туташтырыңыз. Эгерде сиз Arduino болсоңуз, бир гана 5V пини болсоңуз, Arduino 5v'ин нан столунун + катарына туташтырып, ага бардык компоненттериңизди 5V казыктарын туташтырып, же стриптиздин бир бөлүгүнө бириктирип коюңуз. wago коннекторлорун же каалаган нерсеңизди колдонуңуз. Эми, сиздин LED CI пиниңизди Arduinoңуздун 7 пинине жана LED ди ди пиниңизди 8 Arduino пиниңизге туташтырыңыз. Эгерде сизде мындай светодиод жок болсо, кабатыр болбоңуз, анда Arduino тактаңыздын камтылган LEDин колдонсоңуз болот же кодду кичине өзгөртүү менен классикалык.
5 -кадам: Жаркыроо модулунун эскизин жазуу
Келгиле, жаңы эскиз түзүп, модулубуздун кодун жазалы.
Эгерде сиз эскиздин түшүндүрмөсүнө кызыкпасаңыз, аны Arduino IDEге көчүрүп, чаптап коюңуз:
#кошуу
LightModule колдонуу = AtHomeModule; Агым *агымдар = {& Сериялык, nullptr}; GroveChainableLED:: Pins grovePins = {7, 8}; GroveChainableLED жетектеген (& grovePins); LightModule *модулу = LightModule:: getInstance (); void setup () {// орнотуу кодуңузду бул жерге коюңуз, бир жолу иштетүү үчүн: Serial.begin (9600); module-> setStreams (агымдар); GroveDigitalLightSensor *lightSensor = жаңы GroveDigitalLightSensor (); модуль-> setSensor (lightSensor); module-> setDisplay (& led); module-> setup (); } void loop () {// кайра иштетүү үчүн негизги кодуңузду бул жерге коюңуз: module-> run (); }
Эгерде сиз бул коддун эмне кылып жатканын түшүнгүңүз келсе, төмөнкүлөрдү окусаңыз болот же сизди кызыктырбаса, түздөн -түз кийинки кадамга өтсөңүз болот.
Баштоо үчүн, эскиздин башына бул сапты жазуу менен китепканабызды эскизибизге киргизишибиз керек:
#кошуу
Эми биз колдоно турган модуль объектисине лакап ат түзүүбүз керек. Сиз аны компоненттерин өзгөртүү, баштоо, токтотуу жана башкалар үчүн колдонулган бир нече баскычтары бар кутуча катары көрө аласыз. Бул шаблон тарабынан курулган кутуча (биз адамдар катары долбоорлор үчүн колдонгон кадимки шаблон сыяктуу эле, анын башталгыч базасы бар жана Arduino компилятору биз берген параметрлердин негизинде акыркы кодду курат) сенсордун маанисин жана эс тутумда сактагыбыз келген сенсор баалуулуктарынын саны, ал анын атында көрсөтүлгөн жана адатта, биз аны колдонууну каалаган сайын кайталанышы керек. Бул бир аз кыжырды келтирет, ошондуктан биз бул кутучанын толук атына жаңы атты, лакап атты байланыштырабыз.
Мисалы, мен бул кутучанын "LightModule" деп аталышын каалайм, анткени ал жаркыроо мониторинг модулун ишке ашыруу үчүн колдонулат жана мен бир убакта 1 гана маанини сактагым келет. Жарыктык люкс менен TSL2561 сенсорубуздун ажырагыс түрү катары көрсөтүлгөн, ал компьютерлер тарабынан uint16_t катары көрсөтүлгөн. Биздин лакап атыбыз мындай болот:
LightModule колдонуу = AtHomeModule;
"колдонуу" ачкыч сөзү биз ылакап ат түзүп жатканыбызды жана аны бергенден кийин "=" белгисинен кийинки ырааттуулукка туура келерин билдирет.
"AtHomeModule" - бул жаңы ат берип жаткан бул кутучанын чыныгы аты, жана баалуулуктун өкүлчүлүгүн жана эстутумда сакталган баалуулуктардын санын аныктоочу параметрлер "" ортосунда тизмеленген.
Эми, кийинчерээк "AtHomeModule" атын колдоно турган болсок, Ардуино анын "AtHomeModule" толук атына тиешелүү экенин билет.
Эгерде сиз кутуңузда 1дин ордуна 5 баалуулукту сактоону кааласаңыз, анда "1ди" "5ке" алмаштырууңуз керек жана Arduino сиз үчүн каалаган нерсеңизди кыла турган башка кутуну түзөт. Эскертүү, бирок, эгерде модуль сенсордун 5 баалуулугун эффективдүү өлчөө убактысына жетпей өз баалуулуктарын жөнөтүү үчүн программаланган болсо, анда алардын 5и эч качан көрүлбөйт, анткени ал акыркы жүктөөдөн бери жаңы баалуулуктарды гана жөнөтөт.
Андан кийин, биз баарлашуу үчүн модул колдонгон Arduino агымдарындагы көрсөткүчтөрдү камтыган көрсөткүчтөрдүн массивин түзүшүбүз керек, дайыма keyworkd "nullptr" менен токтотулат. Бул жерде мен USB порту аркылуу компьютер менен байланышкан Arduino "Serial" агымын гана колдонуп жатам, ошондуктан массив мындай көрүнөт:
Агым *агымдар = {& Сериялык, nullptr};
"*" Белги түрү көрсөткүч экенин билдирет (элементтин өзү эмес, элементтин жайгашкан жери) жана "" кашаалары Arduinoдо бул массивди билдирет, андыктан биз бир нече баалуулуктарды кое алабыз.
Андан кийин, биз LEDди түзүшүбүз керек. Бул үчүн төмөнкү эки сапты жазышыбыз керек;
GroveChainableLED:: Pins grovePins = {7, 8};
GroveChainableLED жетектеген (& grovePins);
Эгерде сизде Grove RGB LEDи жок болсо да, бирок дагы эле визуалдык пикирди кааласаңыз, муну эскиздеги жөнөкөй өзгөртүү менен жасай аласыз. Мурунку эки сапты бул сапка алмаштырыңыз:
MonochromaticLED LED (LED_BUILTIN);
Бул конфигурацияда жашыл камтылган LED ден соолукка ылайыктуу болгондо күйөт жана байланыштан чыгып калганда өчөт. Эгер сиз ал байланыштан чыккандан кийин күйгүзүүнү кааласаңыз (анткени сиз, мисалы, пин 13төгү жашылдын ордуна кызыл LED колдонуп жатсаңыз), анын ордуна бул линияны колдоно аласыз:
MonochromaticLED LED (LED_BUILTIN, true);
Кийинки кадам - өзүбүздүн модулду түзүү. Бул биринчи жолу "getInstance" ыкмасын чакырып, эстутумунда анын жайгашкан жерин алсак болот:
LightModule *модулу = LightModule:: getInstance ();
Андан кийин, биз Arduino эскиздеринде адаттагыдай эле "Сериал" портун инициализациялоо менен баштап, Arduino'нун "setup ()" функциясындагы параметрлерди орнотушубуз керек:
Serial.begin (9600);
Биз бул сапты жазуу менен жарык сенсорун түзөбүз:
GroveDigitalLightSensor *lightSensor = жаңы GroveDigitalLightSensor ();
Андан кийин, биз модулубузга алар аркылуу баарлашуу үчүн Arduino Streamдеги көрсөткүчтөрүбүздү колдонууну айтабыз:
module-> setStreams (агымдар);
Биз ошондой эле модулубузга жарык сенсорун колдонуп, жарыктын интенсивдүүлүгүн көзөмөлдөп турууну айтабыз:
модуль-> setSensor (lightSensor);
Биз модулубузга визуалдык пикир берүү үчүн биздин LEDди колдонууну айтабыз:
module-> setDisplay (& led);
Акырында, биз өзүбүздүн модулубузга өзүбүздүн "орнотуу" функциясын чакырып, каалаган ички конфигурацияны жасоого даяр экенин айтабыз:
module-> setup ();
Биздин акыркы кадамыбыз - бул модулдун "run ()" функциясын чакыруу, ал "цикл" функциясынын ичине бул сапты жазуу менен Arduino "loop" функциясынын ар бир кайталанышына чакырылган:
module-> run ();
Эми эскизибиз акыры Arduinoго жүктөөгө жана модулубузду сыноого даяр!
6 -кадам: Биздин AtHome модулубузду тестирлөө
Эскизди Arduinoго жүктөө үчүн, "Куралдар"> "Порт"> "[COMx же/dev/x] (Arduino/Genuino UNO)" аркылуу Arduino UNO тактаңызды тандаңыз.
Эң акыркы нерсе, эскизди тактаңызга жүктөө үчүн жөн гана "Жүктөө" баскычын чыкылдатыңыз (жебе оңго багытталган, куралдар тилкесинин экинчи сүрөтчөсү).
Бүттү! Эми сиз модул иштеп, Arduino сериялык мониторунда көрүнгөн баалуулуктарды компьютериңизге жөнөтүшүңүз керек. Сиз муну "Куралдар" менюсундагы Arduino "Сериялык Мониторун" ачуу менен текшере аласыз жана сизде бул кадамдын экинчи аталышындагы сүрөттө окшош жыйынтык болушу керек:)
7 -кадам: Модул үчүн Case куруу
Сиз модулуңуз үчүн 3мм фанера тактайга лазер менен кесүү менен жөнөкөй коробка кура аласыз.
Куту кутучаларыбызды жасоо үчүн, биз кийинчерээк ыңгайлаштырылган керектүү өлчөмдө шаблон даярдоо үчүн makercase колдонобуз. Сиз бул кадамга тиркелген жаркыроо модулунун svg файлын таба аласыз.
Андан кийин, жүздөрдү кошпогула, башкаларын кошпогула, кийинчерээк ачып, схеманы ичине киргизип, LEDди корпустун тешигине жабыштырып койгула (биз тешикти толтуруу үчүн тунук лента колдонобуз жана LEDди алдыга жабыштырабыз. анын).
Эми Arduino'ну кубаттоо үчүн батарейканы кошуп, корпусту жабыңыз жана модулуңуз даяр жана жакшы көрүнүшү керек:)
Сунушталууда:
Кантип MP3 ойноткучту LCD менен Arduino жана DFPlayer Mini MP3 ойнотуучу модулун колдонуу менен жасаса болот: 6 кадам
Кантип MP3 ойноткучту LCD менен Arduino жана DFPlayer Mini MP3 ойноткуч модулун жасоо керек: Бүгүн биз Arduino жана DFPlayer мини MP3 ойноткуч модулун колдонуп ЖК менен MP3 ойноткуч жасайбыз. Проект SD картасындагы MP3 файлдарын окуй алат жана тындыра алат жана 10 жыл мурун түзмөк менен бирдей ойнойт. Ошондой эле мурунку ыры жана кийинки ыры кызыктуу
Караңгы жарыкта жаркыроо: 7 кадам
Кара жарыкта жаркыроо: Саламатсызбы! Бул балдар менен баарлашуу үчүн кызыктуу долбоор. Алар микросхемалар жөнүндө бир аз үйрөнүп, караңгы нерселерде жаркырашат! Бул долбоордун максаты, караңгыда жарыктар болушу үчүн, LED чырактар менен фонарик жасоо болот
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу - Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу - Rc Helicopter - Rc учагы Arduino колдонуу: 5 кадам (сүрөттөр менен)
Ардуино менен 2.4Ghz NRF24L01 модулун колдонуу менен зымсыз алыстан башкаруу | Nrf24l01 4 каналы / 6 каналды берүүчү Quadcopter үчүн алуучу | Rc Helicopter | Arduino менен Rc учагы: Rc машинасын иштетүү | Quadcopter | Дрон | RC учагы | RC кайыгы, бизге дайыма рецептор жана өткөргүч керек, RC QUADCOPTER үчүн бизге 6 каналдуу өткөргүч жана кабыл алгыч керек деп ойлойбуз жана TX менен RXтин бул түрү өтө кымбат, ошондуктан биз аны өзүбүздө жасайбыз
Жаркыроо үчүн кийиңиз: Пальмалык жылуулук менен иштеген фонарь: 9 кадам
Жаркырап кийүү: Пальмалык жылуулук менен иштеген фонарь: Мен бул көрсөтмөдө мен сизге эч кандай тышкы энергия булагы жок алаканыңызда кармагандан кийин дароо жаркыраган укмуштуу фонарикти көрсөтөм. Ал өзүңүздүн денеңиздин жылуулугун өзү иштетүү үчүн колдонот. Жарык бир нерсе таап, окуганга жаркырайт
Автоматтык электроникалык жаркыроо ылдамдыгын өзгөртүү .: 6 кадам (сүрөттөр менен)
Автоматтык электр жаркылдатуу ылдамдыгын өзгөртүү .: Унааларына LED лампочкаларын кошкондор үчүн сигналдарды же тормоздук чырактарды буруңуз. LED лампочкалары кадимки лампаларга караганда азыраак Амперди колдонгондуктан, флешер бирдиги лампа күйүп кетти деп ойлойт жана жаркылдоо ылдамдыгын эки эсе жогорулатат. Бул көрсөтмө сизге көрсөтөт