Агуулгын хүснэгт:
- Алхам 1: Бүрэлдэхүүн хэсгүүдийг цуглуулах
- Алхам 2: Манай номын санг суулгах
- Алхам 3: Шаардлагатай номын санг суулгах
- Алхам 4: Модулийг угсрах
- Алхам 5: Гэрэлтүүлгийн модулийн тоймыг бичих
- Алхам 6: Манай AtHome модулийг турших
- Алхам 7: Модулийн кейс үүсгэх
Видео: AtHome ашиглан гэрэлтүүлгийн модулийг бүтээх: 7 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
AtHome бол ухаалаг гар утасны аппликейшн болон вэб програмыг тэжээхэд зориулагдсан API-ийг илтгэдэг бие даасан мэдээллийн сантай холбогддог хэд хэдэн бие даасан мэдрэгч модулийн холбосон шийдлийг хөгжүүлэх зорилготой Epitech-ийн AtHome группээс гаргасан бүрэн эх сурвалж, нээлттэй програм хангамжийн оюутны төсөл юм. Модулиуд нь байшингийн дотоод орчныг хянадаг бөгөөд хэрэглэгчдэд ногоон (сайн) -аас улаан (муу) хүртэл харааны хариу өгөх чадвартай бөгөөд дамжуулагдсан өгөгдлийг хэрэглэгч модулийн цуваа холболтоор дамжуулан хардаг. хэрэв та үүнийг ашигладаг бол манай програмууд.
Хэдийгээр энэ төсөл идэвхтэй хөгжиж байгаа ч гэсэн манай модулийн үндсэн функцууд бэлэн болсон бөгөөд өөрчлөн тохируулсан модулиудыг боловсруулахад ашиглахад хялбар гэж үзэж байна. Тиймээс ийм гэрэлтүүлгийн модулийн жишээг ашиглан өөрийн энгийн модулийг хэрхэн бүтээхийг танд санал болгож байна.
Эдгээр модулиудыг үндсэндээ Arduino-тэй нийцтэй самбараар (Arduino-ийн хэсэгчилсэн цөм нь Stream, Wire болон UART урсгалын дэмжлэгтэй байхад хангалттай байх ёстой), LED (улаан нэг эсвэл RGB) гарсан тохиолдолд улаан болж хувирдаг. мэдрэгч, цахилгаан хангамж (хананы цахилгаан хангамж эсвэл батерей) ба лазер хайчлах хайрцаг.
Тийм ээ, энэ нь мэдээжийн хэрэг шинэ зүйл биш, олон тооны мэдрэгчтэй төслүүд байдаг, гэхдээ эрүүл мэндийн асуудлыг илрүүлэх, харилцаа холбоо тогтоох, мэдээллийг өөрөө удирдах сервер дээр хадгалах, дүрслэх програм гэх мэт бусад шинж чанарууд танд тусална гэж найдаж байна. Эсвэл та байшингаа, энгийн төслүүд эсвэл сонирхолтой зүйлээ хянахыг хүсч байвал:)
Алхам 1: Бүрэлдэхүүн хэсгүүдийг цуглуулах
Энэ төслийн хувьд AtHome модулийг бүтээхэд танд хэдэн бүрэлдэхүүн хэсэг хэрэгтэй болно.
- 1x Arduino-тэй нийцтэй самбар: Энд би Arduino UNO-г ашиглах болно (гэхдээ энэ нь TI Launchpads, ESP8266 самбар гэх мэт бусад самбартай ажилладаг)
- 1х мэдрэгч: Би TSL2561 гэрэлтэх мэдрэгчийг ашиглах болно (дэмжигдсэн мэдрэгчийн жагсаалтыг манай номын сангийн баримт бичигт байгаа болно)
- 1х 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: Шаардлагатай номын санг суулгах
Ажиллахын тулд манай номын сан таны компьютер дээр бусад номын санг суулгах шаардлагатай байна.
- Архипенкогийн даалгавар төлөвлөлтийн номын сан
- SEEED Studio Grove дижитал гэрэл мэдрэгчийн номын сан
- SEEED Studio Grove Chainable RGB LED номын сан
- Adafruit NeoPixel номын сан
Та тэдгээрийг "Sketch"> "Номын санг оруулах"> "Номын санг удирдах …" хэсэгт очиж 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 -ийнхээ DI -ийн зүүгээ Arduino -ийнхоо 8 -р зүү рүү холбоно уу. Хэрэв танд ийм LED байхгүй бол санаа зовох хэрэггүй, Arduino хавтангийнхаа суурилуулсан LED эсвэл кодын өчүүхэн өөрчлөлтөөр сонгодог гэрлийг ашиглах боломжтой.
Алхам 5: Гэрэлтүүлгийн модулийн тоймыг бичих
Шинэ ноорог үүсгэж, модулийнхаа кодыг бичье.
Хэрэв та ноорог тайлбарыг сонирхохгүй байгаа бол үүнийг Arduino IDE дээрээ хуулж, буулгаж болно.
#оруулах
LightModule = AtHomeModule ашиглах; Шууд *урсгал = {& Цуваа, nullptr}; GroveChainableLED:: Pins grovePins = {7, 8}; GroveChainableLED LED (& 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 ашиглах;
"ашиглах" түлхүүр үг нь бид өөр нэр үүсгэж байгаа бөгөөд дараа нь өгсөн нэр нь "=" тэмдэгтийн дараах дараалалтай тохирч байна гэсэн үг юм.
"AtHomeModule" бол бидний шинэ нэр өгч буй энэ хайрцгийн жинхэнэ нэр бөгөөд утгын дүрслэл, санах ойд хадгалагдах утгуудын тоог тодорхойлдог параметрүүдийг "" хооронд жагсаасан болно.
Одоо бид дараа нь "AtHomeModule" нэрийг ашиглах үед Arduino энэ нь "AtHomeModule" бүтэн нэрийг хэлснийг мэдэх болно.
Хэрэв та өөрийн хайрцгийг 1 биш 5 утгыг санах ойд хадгалахыг хүсч байвал "1" -ийг "5" -аар солиход л хангалттай бөгөөд Arduino нь таны хүссэн зүйлийг хийх чадвартай өөр төрлийн хайрцгийг бий болгоно. Гэсэн хэдий ч хэрэв модуль нь мэдрэгчийн 5 утгыг үр дүнтэй хэмжих цаг болоогүй байхад өөрийн утгыг илгээхээр програмчлагдсан бол сүүлийн байршуулснаас хойш зөвхөн шинэ утгыг илгээдэг тул тэдгээрийн 5 -ийг нь хэзээ ч харахгүй гэдгийг анхаарна уу.
Дараа нь бид модульд ашигладаг Arduino дамжуулалтаар заагч агуулсан массив үүсгэх шаардлагатай бөгөөд үүнийг "nullptr" товчлуураар үргэлж зогсооно. Энд би зөвхөн USB портоор компьютертэй холбогддог Arduino -ийн "Цуваа" урсгалыг ашиглаж байгаа тул массив дараах байдлаар харагдаж байна.
Шууд *урсгал = {& Цуваа, nullptr};
"*" Тэмдэгт нь төрөл нь заагч (элементийн байрлал биш, элемент өөрөө), "" хаалт нь Arduino -д энэ нь массив гэсэн үг бөгөөд ингэснээр бид олон утгыг тавьж болно.
Дараа нь бид LED -ээ бий болгох хэрэгтэй. Үүнийг хийхийн тулд бид дараах хоёр мөрийг бичих хэрэгтэй;
GroveChainableLED:: Pins grovePins = {7, 8};
GroveChainableLED LED (& grovePins);
Хэрэв танд Grove RGB LED байхгүй ч харааны санал хүсэж байгаа бол ноорогны энгийн өөрчлөлтөөр үүнийг хийж болно. Өмнөх хоёр мөрийг энэ мөрөөр солино уу.
MonochromaticLED LED (LED_BUILTIN);
Энэхүү тохиргоонд ногоон өнгөтэй LED гэрэл нь эрүүл мэндэд тохирсон байвал асах бөгөөд холбоо тасарсан үед унтрах болно. Хэрэв та холболт дууссан үед асаахыг хүсч байвал (жишээ нь та 13 -р зүү дээрх ногоон гэрлийн оронд улаан LED ашиглаж байгаа тул) оронд нь энэ шугамыг ашиглаж болно.
MonochromaticLED LED (LED_BUILTIN, үнэн);
Дараагийн алхам бол манай модулийг өөрөө бий болгох явдал юм. Энэ нь "getInstance" аргыг дуудах замаар бид түүний байршлыг санах ойд анх удаа олж авахад иймэрхүү хийгддэг:
LightModule *модуль = LightModule:: getInstance ();
Дараа нь бид Arduino -ийн ноорог дээрх "Цуваа" портыг ердийн байдлаар эхлүүлж Arduino -ийн "setup ()" функцэд параметрүүдийг тохируулах хэрэгтэй.
Цуваа эхлэх (9600);
Бид энэ мөрийг бичих замаар гэрэл мэдрэгчийг бий болгодог.
GroveDigitalLightSensor *lightSensor = шинэ GroveDigitalLightSensor ();
Дараа нь бид модульд Arduino Stream дээрх олон тооны заагчийг ашиглан тэдэнтэй харилцахыг хэлье.
модуль-> setStreams (урсгал);
Мөн бид модульд байгаа гэрлийн мэдрэгчийг ашиглан модулийн байгаа гэрлийн эрчмийг хянаж байхыг хэлье.
модуль-> setSensor (lightSensor);
Бид харааны санал өгөх үүднээс LED -ээ ашиглахыг модульд хэлэв.
модуль-> setDisplay (& удирдсан);
Эцэст нь хэлэхэд бид өөрийн модулийг өөрийн "тохиргоо" функцийг дуудаж, шаардлагатай дотоод тохиргоог хийхэд бэлэн байна гэж хэлдэг.
модуль-> тохиргоо ();
Бидний сүүлчийн алхам бол модулийнхаа "run ()" функцийг дуудах явдал бөгөөд үүнийг Arduino -ийн "давталт" функцын давталт бүрт энэ мөрийг "давталт" функцын дотор бичээд дуудахаар зохион бүтээсэн болно.
модуль-> ажиллуулах ();
Одоо бидний ноорог Arduino -д байршуулж, модулийг туршихад бэлэн боллоо!
Алхам 6: Манай AtHome модулийг турших
Ноорог зургийг Arduino -д байршуулахын тулд "Tools"> "Port"> "[COMx эсвэл/dev/x] (Arduino/Genuino UNO)" хэсэгт орж Arduino UNO самбараа сонгоно уу.
Хамгийн сүүлд хийх зүйл бол "Байршуулах" товчлуур дээр дарна уу (тойрог товчлуур нь баруун тийш харсан сумтай, багажны самбарын хоёр дахь дүрс).
Боллоо! Одоо та модуль ажиллаж байх ёстой бөгөөд Arduino -ийн цуваа монитор дээр харагдах утгыг компьютерт илгээх ёстой. Та үүнийг "Хэрэгслүүд" цэснээс Arduino -ийн "Цуваа монитор" -ыг нээж шалгаж болох бөгөөд энэ алхамын хоёр дахь гарчгийн зураг шиг харагдах болно.:)
Алхам 7: Модулийн кейс үүсгэх
Та модулийнхаа энгийн хайрцгийг 3 мм фанер банзаар лазераар хайчилж болно.
Хайрцагныхаа хайрцгийг хийхийн тулд бид makercase ашиглан загварыг дараа нь хүссэн хэмжээгээрээ тохируулж бэлтгэдэг. Та энэ алхамд хавсаргасан гэрэлтүүлгийн модулийн svg файлыг олох болно.
Дараа нь зөвхөн нэгээс бусад нүүрийг нааж, дараа нь нээж, хэлхээгээ дотор нь хийж, гэрлийг LED хайрцгийн нүхэнд наана (бид тунгалаг соронзон хальс ашиглан нүхийг дүүргэж, гэрлийг тарааж, LED -ийг урд талд байрлуулна. үүнээс).
Одоо Arduino -г тэжээхийн тулд зайгаа нэмж, хайрцгийг хаагаад таны модуль бэлэн болсон байх ёстой.
Зөвлөмж болгож буй:
Arduino болон DFPlayer Mini MP3 тоглуулагчийн модулийг ашиглан LCD ашиглан MP3 тоглуулагч хэрхэн хийх вэ: 6 алхам
Arduino болон DFPlayer Mini MP3 тоглуулагчийн модулийг ашиглан LCD тоглуулагчийг хэрхэн яаж хийх вэ: Өнөөдөр бид Arduino болон DFPlayer мини MP3 тоглуулагчийн модулийг ашиглан LCD тоглуулагч хийх болно. Төсөл нь SD карт дээрх MP3 файлуудыг уншиж, түр зогсоох боломжтой. мөн 10 жилийн өмнөх төхөөрөмжтэй адил тоглоорой. Мөн өмнөх дуу, дараагийн дуу нь хөгжилтэй байдаг
Хичээл: Arduino UNO ашиглан VL53L0X лазерын хүрээ мэдрэгчийн модулийг хэрхэн бүтээх вэ: 3 алхам
Хичээл: Arduino UNO ашиглан VL53L0X лазерын хүрээний мэдрэгчийн модулийг хэрхэн бүтээх вэ: Тодорхойлолт: Энэхүү заавар нь бүх залууст VL53L0X лазерын хүрээ мэдрэгч модуль, Arduino UNO ашиглан зайны детекторыг хэрхэн яаж бүтээх талаар нарийвчлан харуулах болно. хүсч байна. Зааврыг дагаж, энэ багшийг ойлгох болно
I2C / IIC LCD дэлгэц - Arduino ашиглан SPI -IIC модулийг ашиглан I2C LCD дэлгэц рүү SPI LCD ашиглах: 5 алхам
I2C / IIC LCD дэлгэц | IUC LCD дэлгэц дээр SPI LCD дэлгэцийг SPI -ийг IIC модулийг ашиглан Arduino ашиглан ашиглаарай: Сайн байна уу залуусаа, ердийн SPI LCD 1602 -ийг холбоход хэт олон утас байдаг тул үүнийг arduino -той холбоход маш хэцүү боловч зах зээл дээр боломжтой нэг модуль байдаг. SPI дэлгэцийг IIC дэлгэц болгон хөрвүүлэх тул та зөвхөн 4 утас холбох хэрэгтэй
Өөрийнхөө NRF24L01+pa+lna модулийг хэрхэн бүтээх вэ: 5 алхам
NRF24L01+pa+lna модулийг хэрхэн бүтээх вэ: Nrf24L01 дээр суурилсан модуль нь утасгүй холбооны төслүүдэд хэрэгжүүлэхэд хялбар тул маш их алдартай болсон. Модулийг ПХБ -ийн хэвлэмэл хувилбар эсвэл монополь антенны хамт 1 доллараас бага үнээр олж болно.Эдгээр хямд модулиудтай холбоотой асуудал бол
2.4Ghz NRF24L01 модулийг ашиглан Arduino ашиглан утасгүй алсын удирдлага - Nrf24l01 4 суваг / Quadcopter -ийн 6 суваг дамжуулагч хүлээн авагч - Rc нисдэг тэрэг - Arduino ашиглан Rc онгоц: 5 алхам (зурагтай)
2.4Ghz NRF24L01 модулийг ашиглан Arduino ашиглан утасгүй удирдлага | Nrf24l01 4 суваг / Quadcopter -ийн 6 суваг дамжуулагч хүлээн авагч | Rc нисдэг тэрэг | Arduino ашиглан Rc онгоц: Rc машин ажиллуулах | Квадрокоптер | Дрон | RC онгоц | RC завь, бидэнд үргэлж хүлээн авагч, дамжуулагч хэрэгтэй байдаг, RC QUADCOPTER -ийн хувьд бидэнд 6 суваг дамжуулагч, хүлээн авагч хэрэгтэй гэж бодъё, энэ төрлийн TX ба RX нь хэтэрхий үнэтэй тул бид үүнийг өөрөө хийх болно