Arduino дээр суурилсан RGB ном. Фоторезисторыг arduino болон гэрлийн мэдрэгчтэй роботтой холбож байна Robimo "ухаалаг гэрэл"

Мэдээжийн хэрэг, хүүхдийн арьс мөрөөдөлтэй байсан (мөн нэг биш). Шөнийн цагаар хүүхдийн сэтгэлийг эргүүлэн авах мэт эдгээр мэдрэмжийг таахыг оролдож болно, учир нь тэр алс холын, нүдэнд танил болсон гялбаа ...

Яг одоо би BDUIR-ийн 4-р курст суралцаж байгаа бөгөөд хэрэв тэд бидэнд хэлхээний курсын төслийг цаасан дээр биш, харин lazyaku дээр хийж болно гэж хэлсэн бол надад маш их халуухан ном байсан. хүүхэд, чи өөрөө хийж болно. Түүнээс гадна, энэ нь харанхуй цагт өрөөг гэрэлтүүлдэг объект биш, харин ямар ч сэтгэлийн хөдөлгөөнийг хялбархан хянах боломжтой хавсралт юм. Яагаад үгүй ​​гэж? Би гарны тусламжтай өнгө өөрчлөх боломжийг нэмэхийг оролдсон: гараа орны дэргэдэх ширээн дээр ойртуулах тусам өнгөний аль нэг нь (RGB) илүү тод байх болно. Мөн би үүнийг алсын удирдлагын самбарын тусламжтайгаар гар урчуудаар харахыг хүссэн.

Би энэ санааг cxem.net дээр харсан гэдгийг мэдэж байна. Товчхондоо, RGB матрицыг аль өгзөг дээр байрлуулсан байсан, учир нь энэ нь дууны нэмэлт бүртгэлд зориулагдсан тул хэт авианы мэдрэгч суурилуулсан байв. Але, би матриц нэг хошуунд тэр чигтээ гэрэлтэх ёстой гэж бодсон, би бүх талаараа номын гэрэлтэй байхыг хүссэн.

Схемийн элементийг бэлтгэх


Би Arduino микроконтроллерт хүндэтгэлтэй хандсан. UNO бол миний оюун санаанд цорын ганц тохиромжтой сонголт юм, учир нь платформ нь хамгийн алдартай бөгөөд тээглүүрүүдийн тоо нь тийм ч том биш, Мега дээр, өөрөөр хэлбэл, та түүнтэй амьдралын дуу чимээг холбож болно, миний хувьд 12V, дээд талд Нано, гурав дахь аргаар ... за, та хоёр цэг дээр зупинит болно гэж би бодож байна. Энэхүү платформ нь програмчлалын энгийн, хялбар байдал, архитектур, программ хангамжийн кодыг таних чадвараараа дэлхий даяар алдартай гэдгээрээ алдартай.

Энэ төлбөрийн талаархи дэлгэрэнгүй мэдээллийг Интернетээс хялбархан олж авах боломжтой тул нийтлэл нь хэтэрхий үнэтэй биш юм.

Otzhe, системийн гол тусламж. Шаардлагатай:
- мэдрэгч, yakі vіdstezhuvatimut vіdstan' системээр keruvannya нь нэвтрүүлэх;
- алсын удирдлагын самбараас дохио унших мэдрэгч;
– svitlodiody, yakі zabezpechuvatimu nebhіdnu функциональ svіllennya;
- Keruyuchiy блок, бүхэл бүтэн системтэй keruvatime шиг.

Мэдрэгч нь төсөлд тохирсон тул алс холын ертөнц, ямар ч төрлийн дуулах өнгөт арьс: улаан, ногоон, цэнхэр. Мэдрэгчид нь гараа шөнийн гэрэл рүү ойртуулж, дууны мэдрэгч рүү ойртох тусам өнгө нь улам хүчтэй болж, ертөнц улам хол байдаг. Юуны өмнө, хэрэв та гараа өгвөл өнгөнд бага хүчдэл өгдөг бөгөөд энэ нь мэдрэгчийг илтгэнэ.

Одоогоор хамгийн алдартай алс холын ертөнц бол Sharp GP2Y0A21YK ба HC-SR04 юм. Sharp GP2Y0A21YK Vіn іk-vipromіnjuvachem болон іk-priymachem тоноглох: Эхнийх нь миний хувьд dzherelom бөгөөд өөр нэгийг барихад ашигладаг. Мэдрэгчийн энэхүү IR-өөрчлөлтийн тусламжтайгаар энэ нь хүний ​​нүдэнд үл үзэгдэх бөгөөд ийм эрчимтэй үед энэ нь богино настай биш юм.

Хэт авианы мэдрэгч HC-SR04-тэй адил энэ мэдрэгч нь хэт авианы болон дутуу гөлгөртэй байж болно. Ялалтын өмнө төвийг сахисан байдал, чичиргээгүй байдлыг харж болно. Мөн nedolіki - ди болон zalezhnіt vіd zvnіshnіh гарам нь жижиг радиус, тэдгээрийн дунд - гэрэлтүүлгийн зарим төрлийн.

Сарлаг мэдрэгчийг vikoristan хэт авианы алсын HC-SR04 төсөлд ашигладаг.
Dії HC-SR04 зарчим нь цуурайтах үзэгдлийн сайн тал дээр суурилдаг. Энэ чичиргээт чичиргээ нь акустик дохио үүсгэдэг бөгөөд шилжилтийн үед мэдрэгч рүү эргэж, хүлээн авагчид бүртгүүлдэг. Хээрийн хэт авианы өргөний өргөнийг (ойролцоогоор 340 м / с) дохио ба хүлээн авсан дохионы хоорондох саатал цагийг мэддэг тул акустик шилжилтийг нээхэд хялбар байдаг.

TRIG оролт нь микроконтроллерийн гаралттай холбогдсон. Энэ висновок дээр 10 мкс үргэлжлэх хугацаатай импульсийн дижитал дохиог хэрэглэх шаардлагатай. TRIG оролт дээрх дохиогоор мэдрэгч нь хэт авианы импульсийн багцыг илгээдэг. Оролтын дохиог хүлээн авсны дараа мэдрэгч нь ECHO гаралт дээр импульсийн дохио үүсгэдэг бөгөөд давтамж нь шилжилттэй пропорциональ байна.

IR мэдрэгч. Энэ мэдрэгчээс дохиог уншиж, тайлж, зайнаас тандан судлахад шаардлагатай гэдгийг би ойлгож байна. TSOP18 нь зөвхөн давтамжийн хувьд өөр хоорондоо чичирдэг. Төсөлд VS1838B TSOP1838 мэдрэгчийг сонгосон.

Энэхүү төсөл нь өнгө ч бай, улаан, ногоон, цэнхэр гэсэн 3 үндсэн өнгө хэрэгтэй байгаа хүмүүсийн тухай ярихад хэрэглээг гэрэлтүүлэх санаан дээр үндэслэсэн болно. Тиймээс SMD 5050RGB гэрлийн диодын загварыг сонгосон бөгөөд энэ нь тогтоосон даалгаварт гайхалтай нийцдэг.

Арьсны гэрэлд хэрэглэж буй хүчдэлийн хэмжээнээс хамааран үнэр нь энэ гэрэлтүүлгийн эрчмийг өөрчилдөг. Svіtlodiod нь резистороор дамжуулан бути холболтыг буруутай, эс тэгвээс йог төдийгүй Arduino ашиглах нь эрсдэлтэй байдаг. Эсэргүүцэл нь гэрлийн диод дээрх дууг зохих хэмжээнд хүрээлэхийн тулд шаардлагатай. Баруун талд, гэрлийн диодын дотоод опир аль хэдийн бага байгаа тул резисторыг эвдэхгүйн тулд ийм стрим нь зүгээр л гэрлийг шатаадаг гэрлийн диод болон хянагчаар дамжин өнгөрөх болно.

Төсөлд ялсан гэрэл ялгаруулах диод бүхий банзууд 12 В-т амьдардаг.

Холболтын үед "утас" дээрх гэрлийн диод дээрх хүчдэл 6V-ээс их болж, ашиглалтын хугацааг 5В-ыг хөдөлгөж байгаа мэт зохицуулах шаардлагатай бол түлхүүр горимд хэлхээнд транзистор нэмэх шаардлагатай болно. Mіy vibіr загвар BC547c дээр унаж байна.

n-p-n транзисторын ажиллах зарчмыг мартсан хүмүүст зориулж товчхон харцгаая. Тиймээс хүчдэл өгөхгүй, харин суурь ба ялгаруулагчийн утсыг аваад хаа, үүнийг бүү холдуул, богиносгохгүй, харин Ом салаа дахь резистороор дамжуулж, суурийн хүчдэл нь- ялгаруулагч нь тэгтэй тэнцүү байна. Аав аа, суурь байхгүй. Транзистор хаалттай, коллекторын ганг нь чухал биш жижиг, ижил коб стрим. Тэгээд энд станц дээр транзистор солигдож байх шиг байна. Урд талын тээрэмийг nasichennya гэж нэрлэдэг: хэрэв транзистор дахин эвдэрвэл өөр газар дэлбэрэх болно. Ийм үе шатанд шалны ялгаруулагч болох коллекторын ажиллагаа бага байдаг тул коллекторын ланц дахь навигацигүйгээр транзисторыг асаах нь ердөө л боломжгүй бөгөөд тэр даруй шатах болно. Энэ нь хэт өндөр байвал коллектор дээрх хүчдэл 0.3 ... 0.5V-ээс бага байж болно.

Эдгээр хоёр станц нь хамгийн чухал бөгөөд хамгийн чухал нь, хэрэв транзистор нь релений эхний контакттай зэрэгцэн түлхүүр горимд ажилладаг бол тэр тохиолдолд ялах болно. Ийм дэглэмийн гол мэдрэмж нь жижиг суурийн ганхуур нь үндсэн суурийнхаас хэдэн арван дахин том коллекторын том зангилааг удирддаг явдал юм. Коллекторын агуу шуугиан нь энергийн гаднах dzherel-ийн рахунокоос давж гардаг, гэхдээ бүх зүйл, є гэж нэрлэгддэг дуугарахаас илүү хүчтэй байдаг. Манай төхөөрөмж нь 12В-т ажилладаг гэрлийн диод бүхий 3 туузыг багтаасан 5V-ийн ажлын хүчдэлтэй микро схемтэй.

Түлхүүрийн каскадын ажиллах горим эвдэрсэн. Суурийн гадас дахь резисторын утгыг суллах шаардлагатай бөгөөд ингэснээр гэрлийн диод бүрэн эрчимтэй шатдаг. Розрахунка үед оюун ухаантай байх шаардлагатай бөгөөд ингэснээр суурийн хамгийн бага боломжит strum дээр коллекторын хамгийн их боломжит strum-ийн rozpodil-ийн хувийн төрөлд илүү их эсвэл илүү сайн байх болно.

Тиймээс баарыг 220 В-ын ажлын хүчдэлээр ажиллуулж, суурь төмөр замыг 5 В хүчдэлтэй микро схемээр удирдаж болно. Хэрэв транзисторыг коллектор дээр ийм хүчдэлээр хамгаалсан бол гэрэл нь асуудалгүй шатах болно.
Суурь-эмиттерийн шилжилтийн хүчдэлийн уналт нь оюун ухаанд 0.77В, суурь стрим 5мА, коллекторын стрим 0.1А байна.
Эсэргүүцлийн суурь дээрх хүчдэл:

Ом хуулийн хувьд:

Стандарт эгнээний тулгууруудын хувьд 8.2 кОм-ийн резисторыг сонгоно. Хэн дээр rozrahunok дууссан байна.

Би санамсаргүй тохиолдсон нэг асуудалд анхаарлаа хандуулахыг хүсч байна. IRremote Arduino номын санг ашиглах үед цэнхэр өнгөний тохируулга нэг цагийн турш өлгөгдсөн. Интернэтээр удаан хайсны эцэст Arduino загварын таймер 2-ыг түгжээд номын сан ялалт байгуулсан бололтой. Таймеруудыг PWM гаралттай keruvannya-д зориулж зоддог.

Таймер 0 (системийн цаг, PWM 5 ба 6);
Таймер 1 (PWM 9 ба 10);
Таймер 2 (PWM 3 ба 11).

Гарынхаа ар талд PWM 11 ашиглан цэнхэр өнгийг тохируулсан. Тиймээс PWM, таймер болон гуравдагч этгээдийн номын сантай ажиллахдаа болгоомжтой байгаарай, учир нь тэдгээр нь тэднийг ялж чадна. Github дээрх үндсэн хуудсан дээр энэ нюансын талаар юу ч хэлээгүй нь гайхалтай юм. Та 1-р таймер, 2-р тайлбарыг ашиглан мөрийг бичиж болно.

Талхны самбар дээрх элементүүдийг холбох нь дараах байдалтай байна.

Зохион байгуулалтыг туршиж үзсэний дараа "Хамбар дээр элементүүдийг байрлуулах", "Гагнуурын төмрөөр робот" гэсэн үе шатууд эхэлсэн. Дууссан төлбөрийн эхний туршилтын дараа ямар нэг зүйл буруу болсон гэсэн бодол төрж байна. Эндээс "Тестертэй бага зэрэг ажиллах" алдартай үе шат эхэлж байна. Гэсэн хэдий ч эвдрэлийг (нэмэлт контактуудыг хооронд нь гагнасан) хурдан арилгаж, эцсийн шиллэгээний судлын тэнхлэг нь бешкет гэрлийн чийдэн байв.

Баруун талд байгаа Дали зөвхөн их биений ард зогсож байв. Анхны хөтөчөөс эхлэн фанерыг манай мэдрэгчийн нүхээр хийсэн. Арын бүрхэвч нь тусгайлан znіmnoy байсан бөгөөд ингэснээр та дунд хэсгийг үзэх боломжтой, bazhannya-д зориулагдсан тул та үүнийг боловсруулж болно. Мөн дахин програмчлахад нээлттэй, тэр хоолыг төлнө.

Биеийг хоёр бүрэлдэхүүн хэсэгтэй эпокси цавуугаар наасан байна. Варто нь энэ цавууг өмнө нь судалж үзээгүй хүмүүст зориулсан онцлог шинж чанарыг илтгэнэ. Энэ нөхөр хоёр okremikh єmnosti, zmіshuvannі vіstu yakіh vіdbuvaіє mittєva khіmіchna rektsіya нь нийлүүлсэн байна. zmіshuvannya dіyati хурдан авчирсан дараа ямар ч 3-4 whilins илүү. Хамгийн хол ялсан хүмүүсийн хувьд бид шинэ хэсгийг нэмэх хэрэгтэй. Тэгэхээр та үүнийг давтан оролдох вэ, та нарт миний таашаал, жижиг хэсгүүдэд zmіshuvat болон dіyati илүү хурдан, энэ тухай бодох цаг нь тийм ч баян биш байх болно. Үүний тулд биеийг хэрхэн нааж, нааж болох талаар бодоход хэтэрхий оройтсон байна. Түүнээс гадна, нэг удаа та үүнийг алж чадахгүй.

Банзыг гэрлийн диодоор бэхлэхийн тулд булангийн дээд хэсэгт хоолой хийж, бүх сумнууд сарлагийн дундуур гайхамшигтайгаар өнгөрөв.

Хэрэв хоол нь чийдэнгийн ард уусан бол би үүнийг багадаа энгийн утсаар дээрэмдэж, тэр үрсэн уутыг нааж, суурь болж өгдөг байсан гэж би таамаглаж байсан. Багатоэдрон ороомгийн ижил, prote авах нь чийдэнгийн хувьд зарчим нь илүү эвхэгддэг, бага ууттай байсан. Бүтэц дээр утастай тулалдах гэж оролдож буй рахунокийн ард шатаж, дуугарч, утаснууд нь тасарч эхлэв. Яаралтай гараараа цавуугаар араатны дизайныг хийх боломжтой байв. Би энд CD-д туслахаар ирлээ. Виишовын үр дүн нь дараахь хочтой байна.

Үр дүнд нь юу хэлмээр байна

Би яагаад төслийг өөрчилсөн бэ? Станц дахь мэдрэгчүүдэд TRIG дохиог ашиглахын тулд Arduino-ийн гурвын оронд нэг гаралтыг сонгож болно. Тиймээс би өөрөө IR мэдрэгчийн нээлхийг солих байсан (би үүнийг мартсан), харамсалтай нь биед хэвээр байгаа боловч мэдээжийн хэрэг алсын удирдлагаас дохиог унших боломжгүй юм. Гэсэн хэдий ч та юу ч гагнах, өрөмдөх боломжгүй гэж хэн хэлсэн бэ?

Энэ бол дараагийн семестр гэдгийг мэдэхийг хүсч байна, цаасан дээр биш ажиллахыг хичээх гайхамшигт боломж, яагаад би мөрөөдлийн хүүхдийн зүйл дээр дахин нэг тэмдэг тавьж болох вэ? Та шинэ зүйлийг юугаар хялбархан туршиж үзэхээ яаж мэдэх вэ, мөн бидний өмнө юу хийхээ мэдэхгүй байна, үүнд санаа зовох хэрэггүй. Багачуудын толгойд яагаад эндээс эхэлж байгаа юм бэ, яаж ажиллаж эхлэх вэ гэсэн бодол хөвөрнө. Амьдрал үүнд маш их буруутай, үүний төлөө та үүнийг сүйрүүлж болно, гэхдээ та үүнийг оролдох шаардлагагүй, учир нь та нүдэндээ гал асч шатаж болно гэдгийг санаж байгаа тул хэн нэгэн оролдох болтугай.

Удахгүй болох төслийн хувьд бид фоторезистор ашиглах болно. Унтлагын өрөөнд харанхуй болсон үед автоматаар асдаг, гэрэлтэй үед унтардаг унтлагын өрөөний хэрэгжилтийг харцгаая.

Фоторезисторын Opir нь шинэ зүйлд зарцуулагдсан мэт гэрэлд хэвтэж байх болно. Vykoristovuyuchi photoresistor нь 4.7 кОм-ийн том резистор бүхий холбоос дээр бид хүчдэлийн өргөсгөгчийг авдаг, учир нь фоторезистороор дамжин өнгөрөх хүчдэл нь гэрэлтүүлгийн түвшингээс хамаарч өөрчлөгддөг.

Дилникээс авсан хүчдэл нь бид Arduino ADC-ийн оролт руу тэжээгддэг. Тэнд бид дуулах босгоны ач холбогдлыг дуурайж, дэнлүүг vmikaemo эсвэл vimikaemo хийдэг.

Дилникийн үндсэн диаграммыг доор үзүүлэв. Хэрэв гэрэлтүүлэг нэмэгдвэл photoresistor opir буурч, dilnik-ийн гаралтын үед хүчдэл нэмэгддэг (би ADC оролт). Хэрэв хөнгөн унавал бүх зүйл навпак болно.

Доорх зураг нь талхны самбар дээрх сонгосон хэлхээг харуулж байна. 0V ба 5V хүчдэлийг Arduino-аас авдаг. Доод A0 нь ADC-ийн оролтоор сонгогдоно.

Доорх нь Arduino тойм зураг юм. Энэ хичээл дээр зүгээр л анивчдаг LED байгаа бөгөөд энэ нь Arduino самбарт байдаг. Илүү том LED гэрэлтэй тул та 13-р хөл хүртэл (~220 Ом резистороор) холбож болно. Хэрэв та халаалтын чийдэн гэх мэт шилжүүлэгчийг илүү эрчимтэй холбосон бол түүнийг реле эсвэл тиристороор холбох хэрэгтэй.

Програмын кодууд нь файлуудыг баяжуулахад зориулагдсан тул тэдгээрийг тайлбарласан болно. Та ADC утгыг (0-ээс 1024 хүртэл) хянах боломжтой. Тиймээс, гэрэлтүүлгийг өөрчлөх замаар тодорхой замыг сонгохдоо кодын 500-ийн утгыг (асах, унтраах босго) өөрчлөх шаардлагатай.

/* ** Ном ** ** www.hobbytronics.co.uk */ int sensorPin = A0; // ADC-ийн оролтын хөлийг тохируулах unsigned int sensorValue = 0; // фоторезисторын дижитал утга void setup() ( pinMode(13, OUTPUT); Serial.begin(9600); // өгөгдлийг цуваа уншиж эхлэх (туршилтын хувьд) ) хүчингүй давталт() (sensorValue = analogRead(sensorPin); // Унших боломжтой фоторезисторын утга хэрэв (sensorValue<500) digitalWrite(13, HIGH); // включаем else digitalWrite(13, LOW); // выключаем // Для отладки раскомментируйте нижеследующие строки //Serial.print(sensorValue, DEC); // вывод данных с фоторезистора (0-1024) //Serial.println(""); // возврат каретки //delay(500); }

Нэмэлтийн хувьд

    Өөр 1 светлодиод

    220 Ом-ийн нэрлэсэн утгатай өөр 1 резистор

    дахиад 2 сум

Бүдүүвч диаграмм

Талхны самбар дээрх схем

Эрхэм хүндэтгэ

    Бүх туршилтын хувьд бид амьд болон аналог оролт, tobto хооронд фоторезистор суурилуулдаг. хүчдэлийн өргөсгөгч хэлхээний R1 байрлалд. Гэрэлтүүлгийг өөрчилснөөр бид аналог оролт дээр бага хүчдэл авахын тулд энэ нь бидэнд зайлшгүй шаардлагатай юм.

    Гэрэл нь фоторезисторыг гэрэлтүүлэхгүй байхын тулд бүрэлдэхүүн хэсгүүдийг тараахыг хичээ.

Ноорог

p050_night_light.ino #define LED_PIN 13 #define LDR_PIN A0 #define POT_PIN A1 void setup() ( pinMode(LED_PIN, OUTPUT) ; ) void loop() ( // Rіven гэрэлтүүлгийг уншиж байна. Үг хэлэхээс өмнө дүлий // та энэ утгыг нэгэн зэрэг өөрчилж, хэрэглэж болно int lightness = analogRead(LDR_PIN) ; // тохируулж болох потенциометрээс утгыг уншина // ухаалаг харанхуй ба гэрлийн хоорондох хилийн утга int босго = analogRead(POT_PIN) ; // Үнэтэнд нь оноогдсон дүлий логик өөрчлөлт // "одоо харанхуй". Логик өөрчлөлтүүд, vіdminu дээр // tsіl_snyh, зөвхөн нэг эсвэл хоёр утгыг өшөө авах боломжтой: // Үнэн (англи. үнэн) эсвэл утгагүй (англи. худал). Ийм утгатай // Мөн логик гэж нэрлэдэг. boolean tooDark = (хөнгөн байдал< threshold) ; // vikoristovuemo програмыг устгах: процессор vikonaє нэг // кодын хоёр блок ирээдүйд хуучирсан байна. // Якшчо (Англи хэлээр "хэрэв") хэтэрхий харанхуй байна ...хэрэв (хэт харанхуй) ( // ...гэрлийг асаана digitalWrite(LED_PIN, HIGH); ) өөр ( // ...мөн одоо гэрэл хэрэггүй - vimikaєmo yogo digitalWrite(LED_PIN, БАГА); )

Кодын тайлбар

    Бид зөвхөн үнэн (үнэн, 1) эсвэл худал (утгагүй, 0) утгыг хадгалдаг логикийн шинэ төрлийн өөрчлөлтийг яллаа. Qi утга нь логик вирусын тооцооллын үр дүн юм. Хэний програм нь логик viraz юм - tse хөнгөн< threshold . На человеческом языке это звучит как: «освещенность ниже порогового уровня». Такое высказывание будет истинным, когда освещенность ниже порогового уровня. Микроконтроллер может сравнить значения переменных lightness и threshold , которые, в свою очередь, являются результатами измерений, и вычислить истинность логического выражения.

    Бид энэ логик вирусыг зөвхөн нарийвчлалын үүднээс нум дээр авав. Илүү унших боломжтой код бичихээ мартуузай. Бусад төрлүүдэд нуман хаалга нь zvichaynіy арифметик шиг том хэмжээний дарааллыг нэмж болно.

    Бидний туршилтанд логик илэрхийлэл үнэн байх болно, хэрэв хөнгөн байдлын утга нь босго утгаас бага байвал оператор< . Мы можем использовать операторы > , <= , >= , == , != гэдэг нь “илүү”, “нэгээс бага”, “нэгээс олон”, “тэнцүү”, “сайн биш” гэсэн утгатай нь ойлгомжтой.

    Логик == операторыг онцгойлон анхаарч, = томилох оператортой андуураарай. Эхний төрлийн хувьд эсрэг талын утга нь адилхан чухал бөгөөд логик утга (үнэн эсвэл утгагүй) бусад төрлийн хувьд адил чухал бөгөөд баруун операндын утгыг зүүн операнд хавсаргасан болно. Эмхэтгэсэн хүн бидний нэрийг мэдэхгүй, бид өршөөл үзүүлэхийг харахгүй байна, гэхдээ бид санамсаргүйгээр өөрчлөлтийн утгыг өөрчилж болно, дараа нь бид удаан хугацаанд өршөөл үзүүлэх болно.

    Ухаалаг if мэдэгдэл (“yakscho”) нь програмчлалын хамгийн чухал аргуудын нэг юм. Энэ тусламжтайгаар бид үйл ажиллагааны дарааллыг өгсөн хэрхэн zhorstko vikonuvat болно, дараа нь шийдвэр гаргах, алгоритм ямар замаар явах ёстой, хуучирсан оюун ухаан.

    Логик илэрхийлэл нь хөнгөн байдаг< threshold есть значение: true или false . Мы вычислили его и поместили в булеву переменную tooDark («слишком темно»). Таким образом мы как бы говорим «если слишком темно, то включить светодиод»

    Ийм амжилттайгаар бид "хэрэв гэрлийн хэмжээ босго хэмжээнээс бага байвал гэрлээ асаа" гэж хэлж болно. Логик илэрхийллийг бүхэлд нь дараах тохиолдолд дамжуулна:

хэрэв (хөнгөн байдал< threshold) { // ... }

    Ухаалаг if хэллэгийн дараа блок код ирдэг бөгөөд энэ нь логик илэрхийллийн үнэнээс өөр юм. Буржгар нуман хаалга () гэмтэх талаар бүү мартаарай!

    Үнэний цаг үеийн хувьд бидэнд илүү их виконати хэрэгтэй нэгзааврын дагуу та үүнийг буржгар нумгүйгээр хэрэв (...) дараа шууд бичиж болно:

хэрэв (хөнгөн байдал< threshold) digitalWrite(LED_PIN, HIGH) ;

    if хэллэгийг else ("дараагийн") бүтцээр өргөтгөж болно. Кодын блок нь түүнийг дагаж мөрддөг ганц заавар бөгөөд хэрэв худал, "утгагүй" гэсэн логик илэрхийлэл болгон бичих шаардлагагүй болно. Буржгар нумуудыг зогсох дүрэм нь адилхан. Туршилтдаа бид "хэт харанхуй байна, гэрлээ асаа, үгүй ​​бол гэрлээ унтраа" гэж бичсэн.

Бүгдээрээ сайн уу! Би Артем Лужецкий бөгөөд би "Ухаалаг гэр" болон IoT (Зүйлсийн интернет, ярианы интернет) сэдвээр цуврал нийтлэл бичиж байна. Туслах хүний ​​ард бие даан ажиллах юм шиг янз бүрийн барилга байгууламж бүхий гэрийн орчинг бүрдүүлэх гайхалтай аргуудыг бид мэддэг. За яахав? Энийг хийцгээе!

Эхний нийтлэл нь чухал бөгөөд би илүү олон хүн IoT жижиглэн худалдаачдыг туршиж үзэхийн тулд хамгийн өргөн самбар, модулиудтай ажилладаг гэдгийг ойлгохыг хүсч байна.

Otzhe, cob-ийн хувьд бидэнд хоёр микроконтроллер хэрэгтэй тул бид ялах болно: i.

Arduino UNO

Таныг төлбөртэйгөөр таньж мэдэх шаардлагагүй гэж би бодож байна, энэ нь анхлан суралцагчид болон DIY chanelers дунд алдартай болсон. Би зөвхөн https протоколтой ажиллах боломжгүй хүмүүст л хэлэх болно, ATmega328P микроконтроллерт бүү найд, хэрэв бид микроконтроллер болон https протоколтой ажиллах юм бол ESP8266 програмчлах болно.

ESP8266

Би Troyka-Модуль ESP8266 VID Kompanії "Ampeka" нь Pricewatim байна, Ale can Schockino Vicerovyvati І Zvitch ESP модуль 8266, Vonya мэдээний эхэнд тэмдэг, толгойг залгих боломжтой болгодоггүй. 5 вольтоор холбох эсвэл хүчдэлийн тогтворжуулагчийг хэлхээнд холбох эсвэл 3.3 вольтын хүчдэлтэй зүүг мушгихад хялбар байдаг.

Данийн микроконтроллер нь дэлхийн зах зээл дээрх Espressif цувралын дотроос хамгийн хүчирхэг нь биш боловч хамгийн алдартай бөгөөд өргөн цар хүрээтэй нь юм. Vіn нь манай IoT хөгжүүлэлтийн үндэс байх болно.

Нэмэлт мэдээлэл

Бид мөн бүх doslidiv-г үүсгэх хэрэгтэй:

  1. Svіtlodiody
  2. фоторезистор
  3. Термистор
  4. хэт авианы алс холын ертөнц
  5. Пезодинамик
  6. Mini Servodrive
  7. IC - мэдрэгч
  8. ІЧ - алсын удирдлага

IoT-тэй ажиллахын тулд эдгээр бүх модулиуд байх шаардлагагүй, гэхдээ ирээдүйн бүх төслүүдийг бий болгохын тулд бид тэдгээрийг үе үе гаргаж ирэх хэрэгтэй болно.

Хөтөлбөр ба номын сан

Эхлээд номын санг аваарай, ингэснээр Arduino IDE дээр ажиллахад хялбар болгоход тусална, ингэснээр та ESP8266-г хожих боломжтой - http://wiki.amperka.ru/_media/iot-m:iot-m- libs.zip

Нөгөөтэйгүүр, IoT-ийн талаар товч ойлголт авахын тулд бидэнд өгөгдөл цэнэглэх боломжийг олгох вэбсайтууд хэрэгтэй.

  1. www.dweet.io
  2. maker.iftt.com
  3. narodmon.ru
  4. гэх мэт.

Гуравдугаарт, нэмэлт утсанд зориулж ухаалаг утсыг удирдахын тулд бидэнд Android дээр өөр өөр програм хэрэгтэй.

  1. нээлттэй төв
  2. Анивчих
  3. гэх мэт.

Энэ нь ердийн арга замууд, хөтөлбөрүүд, сайтуудаар мэдээлэгддэг бөгөөд бид үүнийг хамгийн ойрын төслүүдэд аль хэдийн мэддэг.

2. Робимо "Би чийдэнгийн талаар бодох болно"

Би аль хэдийн та nudguvati zmusiv? Өрөөнд харанхуйлж байгаа мэт энгийн чийдэнг би ашиглах болно.

Үнэндээ ийм төрлийн навигац хийхэд UNO шаардлагагүй, та дижитал гэрэл зургийн мэдрэгчийг тохируулж болно, гэхдээ ирээдүйд бид энэ төслийг танигдахын аргагүй болтол өөрчлөх болно, энэ нь ямар нэг шалтгааны улмаас тохиолдох болно.

Хэрэв та 220 вольтын хүчдэлийг цахилгаанаар ашиглахад бэлэн гэдэгт итгэлгүй байгаа бол асаагуурыг хамгийн их гэрлээр цохино. Би хуучин TLI-204 чийдэнгээ саван дээр авсан тул ямар ч дэлгүүрт (хаалганы арын хэсгийг оруулаад) хэрэглэхэд тохиромжтой.

Дэнлүү нь хоёр төрлийн ажилтай (гялалзах / гэрэлтүүлэхгүй), би асаахыг хүсч байна, би түүний ажиллагааг нэмэгдүүлэхийг хүсч, дахин асаах, дахин унтраах чадваргүй болгохыг хүсч байна.

Өөр холбогч ашиглахгүйгээр фоторезисторыг релетэй зэрэгцүүлэн холбосон тул би гурван байрлалтай унтраалгатай хоёр байрлалтай холбогчийг орлуулах гэж байна.

Бүрэн цахилгаан хэлхээ нь дараах байдлаар харагдаж болно.

Хэрэв бүх зүйл зөв бол холбогчийн гуравдахь байрлалд та микроконтроллерээс реле рүү тийрэлтэт цахилгаан нийлүүлж, дэнлүүг асааж болно.

Arduino фоторезистортой холбогдоно уу. Диаграм нь дараах байдлаар харагдаж байна.

3. "Ухаалаг гэрэл"-ийн код

Одоо өрөөний ойролцоо харанхуй байхын тулд реле рүү урсгал илгээх код бичье.

#define SHINE 5 //PIN TO PHOTORESISTOR #define REL 13 //PIN TO RLElay void setup()( pinMode(SHINE, OUTPUT); pinMode(REL, OUTPUT); Serial.begin(9600); ) void loop()() хэрэв (аналог унших(SHINE)<600) // Если света в комнате мало, то включаем лампу { digitalWrite(REL, HIGH) } else // если много, то выключаем { digitalWrite(REL, LOW); } Serial.printIn(analogRead(SHINE)); selay(500); }

Хэрэв та бүх зүйлийг холбож байгаа бол гэрэл мэдрэгчийг гэрэлтэй хамт авч хаяхаа бүү мартаарай, эс тэгвээс гэрэл байгаа эсэхийг шалгах болно. Бүх зүйлийг олох боломжтой.

Дараагийн удаа бид кодыг хялбарчилж, хэд хэдэн функц нэмэхийг оролдох болно. Удахгүй уулзацгаая!

Дасгал хийх хэрэггүй