Домашни сензори за arduino. Интелигентен дом, базиран на Arduino: инструкции за сглобяване стъпка по стъпка. Какви решения предлага Arduino?

Добър ден, днес ще споделя инструкциите за направата на часовник със стаен термометър ( Направи си сам часовник на arduino). Часовникът се захранва от Arduino UNO, а за показване на часа и температурата се използва графичен екран WG12864B. Като температурен датчик - ds18b20. За разлика от повечето други часовници, аз няма да използвам RTS (часовник в реално време), но ще се опитам да направя без този допълнителен модул.

Схемите на Arduino се отличават със своята простота и всеки може да започне да учи Arduino. Можете да прочетете как да свържете библиотеки и флаш arduino в нашата статия.

Да започваме.

За да създадем този часовник, имаме нужда от:

Arduino UNO (Или който и да е друг Съвместим с Arduinoплащам)
- Графичен екран WG12864B
- Датчик за температура ds18b20
- Резистор 4.7 Kom 0.25 W
- Резистор 100 ома 0,25 W
- Отделение за батерии за 4 батерии АА
- Съвпадаща кутия
- малък файл
- Лак за нокти (черен или телесен цвят)
- Някаква тънка пластмаса или картон
- Изолирбанд
- Свързващи проводници
- Платка
- Бутони
- поялник
- Припой, колофон
- Двустранна касета

Подготовка на графичния екран.
При свързването на екрана, на пръв поглед, има много проблеми и трудности. Но ако първо се справите с техните видове, ще стане много по-лесно и по-ясно. Има много разновидности и видове екрани на контролера ks0107/ks0108. Всички екрани обикновено се разделят на 4 вида:
Вариант A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Option B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Displays AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG12864J4, QY-12864F, TM12864J4, QY-12864F, TM12864F
Вариант C: Shenzhen Jinghua Displays Co Ltd. JM12864
Опция D: Wintek- Cascades WD-G1906G, Wintek - GEN/WD-G1906G/KS0108B, Wintek/WD-G1906G/S6B0108A, TECDIS/Y19061/HD61202, Varitronix/MGLS19264/HD61202

Списъкът не е пълен, има много от тях. Най-често срещаният и според мен удобен WG12864B3 V2.0. Дисплеят може да бъде свързан към Arduino чрез сериен или паралелен порт. Когато използвате с Arduino UNO, по-добре е да изберете връзката от сериен порт- тогава имаме нужда само от 3 изхода на микроконтролера, вместо поне 13 линии, когато сме свързани през паралелен порт. Всичко е свързано съвсем просто. Има още един нюанс, в продажба можете да намерите две опции за дисплей, с вграден потенциометър (за регулиране на контраста) и без него. Аз избрах, и ви съветвам да направите същото, с вградения.


Това намалява броя на частите и времето за запояване. Също така си струва да поставите резистор за ограничаване на тока от 100 ома за подсветка. При директно свързване на 5 волта има риск от изгаряне на подсветката.
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - +5V
4 (RS) - 10
5 (R/W) - 11
6(E)-13
15 (PSB) - GND
19 (BLA) - през резистор - + 5V
20 (BLK) - GND

Най-удобният начин е да сглобите всичко това в задната част на екрана и да изведете 5 проводника от него, за да се свържете с Arduino UNO. В крайна сметка трябва да изглежда така:


За тези, които все още избират паралелна връзка, ще дам таблица за свързване.

И диаграмата за екраните на опция B:



Няколко сензора могат да бъдат свързани към една комуникационна линия. Един е достатъчен за нашия часовник. Свързваме проводника от щифта „DQ“ на ds18b20 към „щифта 5“ на Arduino UNO.

Подготовка на дъската с бутони.
За да настроим часа и датата на часовника, ще използваме три бутона. За удобство запояваме три бутона на платката и извеждаме проводниците.


Свързваме се по следния начин: свързваме проводника, общ за трите бутона към "GND" Arduino. Първият бутон, той служи за влизане в режим на настройка на часа и превключване по час и дата, свързваме с "Pin 2". Вторият бутон за увеличаване на стойността до „Пин 3“ и третият бутон за намаляване на стойността до „Пин 4“.

Сглобяване на всичко.
Да избегна късо съединение, екранът трябва да бъде изолиран. В кръг увиваме с електрическа лента и нататък обратнозакрепете върху двустранна лента, изрязана по размер, лента от изолационен материал. Дебел картон или тънка пластмаса ще свърши работа. Използвах пластмаса от хартиен таблет. Оказа се следното:


Отпред на екрана, по ръба, залепваме двустранна лента върху основа от пяна, за предпочитане черна.


Свързване на щита към Arduino:


Свързваме плюса от отделението за батерии към “VIN” на Arduino, минус към “GND”. Поставете го на гърба на Arduino. Преди монтаж в кутията, не забравяйте да свържете температурния сензор и платката с бутони.


Подготовка и попълване на скицата.
Температурният сензор изисква библиотеката OneWire.

Извеждането на екрана се извършва чрез библиотеката U8glib:

За да редактирате и попълните скицата, трябва да инсталирате тези две библиотеки. Това може да стане по два начина. Просто разопаковайте тези архиви и поставете разопакованите файлове в папката "библиотеки", намираща се в папката с инсталирана Arduino IDE. Или вторият вариант е да инсталирате библиотеките директно в средата за програмиране. Без да разопаковате изтеглените архиви, в Arduino IDE изберете менюто Sketch - Include Library. В най-горната част на падащия списък изберете Добавяне на .Zip библиотека. В диалоговия прозорец, който се показва, изберете библиотеката, която искате да добавите. Отворете отново менюто Sketch - Include Library. В най-долната част на падащото меню трябва да видите нова библиотека. Сега библиотеката може да се използва в програми. Не забравяйте да рестартирате Arduino IDE след всичко това.

Температурният датчик работи по протокола One Wire и има уникален адрес за всяко устройство - 64 битов код. Не е практично да търсите този код всеки път. Следователно първо трябва да свържете сензора към Arduino, да го попълните със скицата, намираща се в менюто File - Examples - Dallas Temperature - OneWireSearch. След това стартирайте Tools - Port Monitor. Arduino трябва да намери нашия сензор, да напише неговия адрес и текущата температура. Копираме или просто записваме адреса на нашия сензор. Отворете скицата Arduino_WG12864B_Term, потърсете реда:

Байт адрес=(0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97);//адрес на моя сензор

Пишем адреса на вашия сензор между къдрави скоби, замествайки адреса на моя сензор.

Наличност:

//u8g.setPrintPos(44, 64); u8g.print(sec); // Изходни секунди за контрол на правилността на хода

Служи за показване на секунди до надпис "Данни". Това е необходимо за точно определяне на хода на времето.
Ако часовникът е бърз или изостава, трябва да промените стойността в реда:

If (micros() - prevmicros >494000) ( // промяна на нещо друго, за да коригирате, че е 500000

Емпирично определих числото, при което часовникът е достатъчно точен. Ако часовникът ви е бърз, трябва да увеличите това число, ако изоставате, намалете го. За да определите точността на хода, се нуждаете от изхода от секунди. След прецизно калибриране на числото, секундите могат да бъдат коментирани и по този начин да бъдат премахнати от екрана.

Интегрирани системи за управление на инженерни комуникации на жилище, известни като " Умна къщанабират все по-голяма популярност. Широкото въвеждане на тези системи е възпрепятствано от по-скоро висока цена на компонентитеелементи и монтажна работа. Интелигентен дом, базиран на Arduino, е решение, което е доста достъпно за всеки, който е поне малко запознат с електрониката.

Какво е Arduino

Arduino е марката, под която хардуер и софтуер за самостоятелно изграждане на системи за автоматизация и телеуправление.

Всъщност това е модулен конструктор с широк набор от възможности. Хардуерът Arduino е голям асортимент от печатни платки, върху които са организирани различни сензори, задвижки и разширителни платки. Ядрото на системата са платки с програмируеми микроконтролери различни ниватрудност от Arduino Pro Mini до Arduino Mega. Разширителните платки ви позволяват да използвате голям брой външни устройства.

На малък печатна електронна платкамонтиран е микроконтролер, някои дискретни елементи, кварц и различни видовесъединители, включително вертикални щифтове, с помощта на които се сглобяват стелажни конструкции с добавяне на разширителни карти. Atmega чиповете се използват като микроконтролери. Типът контролер определя функционалносттакси в зависимост от броя на входовете и изходите.

Толкова широко разпространен модулАрдуино Unoс микроконтролерAtmega328 има следните характеристики:

  • Цифрови I/O - 14
  • От тях 6 са ШИМ
  • Аналогови входове - 6 бр
  • Памет - 32 KB
  • Мощност - 7-12 V
  • Цена - 950 рубли

Цифрови контактимогат да бъдат програмирани да изпълняват специфична функция. Може да бъде вход или изход. Тези входове/изходи могат да работят с устройства, които изискват две нива, за да функционират. Това е логическа единица или ниво, близко до захранващото напрежение и логично ниско ниво, съответстващо на нула. На цифрови входовемогат да бъдат свързани сензори на две нива. Те включват чифт магнитно-тръбен превключвател. Този сензор реагира на отваряне на врати и прозорци. На този принцип работят много датчици за взлом и пожароизвестяване.

Цифровите изходи могат да контролират работата на електромагнитни релета, които от своя страна включват и изключват мрежовите контакти, към които са свързани различни домакински уреди. Smart от Arduino ще струва много по-малко от готов индустриален комплект.

Аналоговите входове чрез аналогово-цифрови преобразуватели предават на контролера информация за състоянието на температурни сензори, осветление и някои други устройства. Чрез сравняване на показанията на сензорите с командите, съхранени в паметта, централното устройство на системата може да управлява устройства, където е необходима плавна промяна на мощността. Шест изхода, свързани към широчинно-импулсния модулатор, позволяват плавен контрол на мощността на товара. Например, регулирайте яркостта на лампата, регулирайте температурата на нагревател или контролирайте скоростта на електрически мотор.

повечето мощна и многофункционална дъскаот тази линия е Arduino Mega. Монтиран на PCB контролерAT мега 2560 , дискретни елементи, USB конектор за захранване. Платката има 54 универсални контакта, които могат да бъдат програмирани да изпълняват I/O функции. 14 от тях могат да управляват аналогови устройства чрез модулация на ширината на импулса. 16 аналогови входа са предназначени за свързване на всякакви аналогови устройства.

контролна платка Ардуино мегаструва в рамките на 1500 рубли. Най-лесният начин да го програмирате е с персонален компютърчрез USB порт.

Периферни модули за Arduino

Контролната платка е ядрото на системата, но не можете да свържете никакви устройства към нея. Изходите са с малка товароносимост и ограничен ток. Да организира системата за управление домакински уредище са необходими външни захранващи модули, комуникационни устройства и други устройства. Това не е проблем, тъй като голям брой периферни модули са разработени за Arduino контролери.

Ето само няколко от тях:

  • Газоанализатор - MQ-2
  • Сензор за светлина - 2CH-Light-2
  • Датчик за външна температура - DS18B20-PL
  • Сензор за стайна температура и влажност – DHT-11
  • Моторни драйвери - L298N, L9110
  • Релейни модули - 1ch5V, 4ch5V
  • Модул дистанционно IC2262/2272

Сензорът, който отчита изтичане на газ в помещението, реагира на пропан и бутан, които са компоненти на битовия газ. Модулът има настройка на чувствителността и аналогови/цифрови изходи. Сензорът за светлина може да е част от автоматизирана системауправление на светлината. Състои се от два независими канала с индивидуално регулируема чувствителност. Сензорът за външна температура е проектиран да работи при температури от -55 до +125 градуса. Сензорът за стайна температура и влажност е предназначен за . Температурен диапазон от 0 до +55 0 С и влажност от 20 до 90%.

Тъй като захранващото напрежение на модулите Arduino е в диапазона от 7 до 12 волта, всички стандартни сензори, които имат същите работни нива, могат да се използват за организиране на охранителна или пожарна аларма.

Моторни драйвериви позволяват да управлявате еднофазни, двуфазни, четирифазни и стъпкови двигатели. С помощта на такива устройства можете да отваряте и затваряте щори или завеси. Серво задвижванията, свързани към драйверите, ви позволяват да регулирате потока на охлаждащата течност в отоплителните радиатори. Релейните ключове са незаменими в системата "Умен дом". Задвижвани от +5 волта логическа единица потенциал, релетата са способни да превключват натоварвания във веригите променлив токдо 10 ампера при напрежение до 250 волта.

С тяхна помощ можете да включвате и изключвате електрически контакти, електрически помпи и други системи.

Модулът за дистанционно управление се състои от дистанционно управление и приемно устройство. Дистанционното управление е оборудвано с четири бутона и осигурява предаване на команди към приемника на разстояние до 100 метра. Всички периферни модули имат еднакво захранващо напрежение и са съвместими с всеки микроконтролер Arduino.

Организация на системата "Умен дом".

Без определени умения, знания електрически схемии основите на електрониката, е по-добре да не поемате изцяло системата "Умен дом".

Програмиране Микроконтролери Arduinoизвършено на C/C++.

За да започнете, можете да напишете най-простите програми, които могат да включват и изключват светодиода или да контролират работата на микромотора. Има много примери за такива програми. Те използват прости оператори от формата: if, while, then и други. Те позволяват дори на ученици да пишат програми. Когато първите програми се изпълнят правилно, можете да опитате да сглобите по-сложни устройства, където PWM изходите ще се използват за плавно управление на светлината.

За да направите "Умен дом" на Arduino със собствените си ръце, трябва да изготвите технически проект, който ще посочи броя на сензорите и изпълнителните механизми за всяка стая. Можете да започнете с една стая, където ще бъдат изпълнени няколко прости функции. Някои от тях ще се изпълняват от сигнали от външни сензори, а други от сигнали на таймер. Когато човек стане сутрин за работа, контролерът Arduino, по сигнал на таймера, ще включи електрическата кана или кафемашината. Ако навън е тъмно, което се засича от външния сензор, светлината в стаята ще светне плавно. Комфортната стайна температура също може да бъде настроена както за сън, така и за събуждане.

За малък брой функции са подходящи микроконтролерът Arduino Uno и набор от периферни модули.

За да контролирате домакинските уреди, ще ви трябват релейни ключове, които ще включват и изключват електрически контакти. За да контролирате светлината, имате нужда от детектор за движение. Ако интелигентната система е инсталирана в кухнята, е необходимо да се осигури автоматично включванеабсорбатори, датчик за изтичане на битови газове и датчик за изтичане на вода. Като пожароизвестителен елемент в стаята трябва да се монтира детектор за дим.

Заключение

Контролерът Arduino ще ви позволи да завършите проект за интелигентен дом и да покриете сравнително малка сума. Ако изчислим всички разходи за оборудване на тристаен апартамент, тогава сумата едва ли ще надхвърли 30-40 хиляди рубли. Ако намалите броя на функциите, бюджетът ще бъде още по-скромен.

Минах, гледам и тук пишат интересни неща за различни домашни продукти. Аз също наскоро направих нещо, позволете ми, мисля, ще напиша, може би ще бъде полезно за някого, добре, или просто ще бъде интересно. Говорим за хардуера на бюджетен DIY сензор за вграждане в табла за ключове и контакти.

Но да вървим по ред.

От сравнително дълго време се интересувам от системата за автоматизация на "Умен дом". Сега имам няколко различни системисвързани в едно. Има както индустриални, така и домашни компоненти. Искам да говоря за последния домашен продукт.

Преди време в интернет попаднах на системата за домашна автоматизация MySensors. Доста напреднала (и постоянно развиваща се) безжична система, базирана на Arduino и nRF24L01+. Не става въпрос обаче за това кой се интересува - източникът ще търси.

Основните предимства на системата за мен бяха добрата софтуерна поддръжка, двупосочната комуникация, наличието на компоненти и ниската им цена.

След като играх достатъчно на breadboards, реших да разработя устройство, което може да бъде адекватно интегрирано в домашен интериор (не можете да пренебрегнете WAF). Получи се устройство, което заедно с други може да се вкопчи в стената в стандартна 63 мм кутия.

Това е първата сглобка, ще се постарая следващите да са по-точни. Големият отвор (за сензора за светлина) ще бъде покрит с пръчка от плексиглас.

Изглежда така в полуразглобен вид:

Поглед от другата страна:

Всичко това се състои от (китайски) 8MHz / 3.3V Arduino Pro Mini, nRF24L01 + радио модул, сензор за движение HC-SR510, сензор DHT22 (температура и влажност), сензор за светлина BH1750 и стандартен щепсел JUNG (можете вероятно ще използвам други, като Gira, Berker и т.н. Просто бавя това, което е под ръка). Общата цена е около $15.

PCB е проектирана от Eagle. Източници. Поръчан от ITEADStudio, беше добре направен (с изключение на коприната, надписите станаха така, така).



Може би шрифтът е твърде малък и тънък. Изглеждаше добре на гербера.



По време на процеса на сглобяване бяха открити някои дребни неудобства, нещо можеше да се подобри, но като цяло платката е доста използваема.

Идеята за този проект се появи и ме очарова по време на почивката ми.

Мисълта беше нещо подобно: „Би било страхотно да имам ръка на робот, която да може да се управлява от моята собствена!“. И след известно време се заех с разработването и реализирането на този проект. Надявам се, че ти харесва!

Основните компоненти на проекта са ръкавицата и самата роботизирана ръка. Arduino е използван като контролер. Движението на роботизираната ръка се осигурява от сервомотори. Ръкавицата е оборудвана със сензори за огъване: променливи резистори, които променят своята устойчивост на огъване. Те са свързани към едната страна на делителя на напрежението и постоянните резистори. Arduino отчита промяната в напрежението, когато сензорите са огънати, и изпраща сигнала към серво моторите, които се въртят пропорционално. По-долу е видео на работния проект.

Дизайнът на ръката е взет от проекта InMoov с отворен код. На страницата на проекта можете да изтеглите 3-D модели на всички възли и да ги отпечатате на 3-D принтер.

По-долу са всички стъпки за внедряване на ваша собствена роботизирана ръка, управлявана с ръкавица.

Необходими материали

За проекта ще ви трябва:

Всичко! Можете да започнете своя проект за роботизирана ръка!

Отпечатване на ръка

Ръката е част от проект с отворен код, наречен InMoov. Това е робот, който е отпечатан на 3-D принтер. Ръката е само отделна единица от цялостния дизайн. Изтеглете от тази страница и отпечатайте следните подробности:

Auriculaire3.stl

WristsmallV3.stl

За всеки случай прикачвам списък с части, които могат да се кликват, защото някои от тях са премахнати от главната страница на проекта.

RobCableFrontV1.stl

RobRingV3.stl (трябваше да направя допълнителни дупки в тази част, за да пасна на моите сервомашини)

RobCableBackV2.stl

RobServoBedV4.stl

(Това са две "обшивки" части - те не са необходими по отношение на структурната твърдост и нейното функциониране)


Общо печатът отне около 13-15 часа. Зависи от качеството на печат. Използвах MakerBot Replicator 2X. Препоръчвам отпечатване на пръстови детайли на стандартни или с висока резолюцияза да се избегне нежелано триене в структурата.


Свързване на сензори за огъване към Arduino

За да свържем сензорите за огъване към Arduino, трябва да включим делител на напрежение във веригата. Сензорите за огъване са по същество променлив резистор. Когато се използва в тандем с постоянен резистор, може да се следи разликата в напрежението между двата резистора. Можете да проследите разликата с помощта на аналогови щифтове на Arduino. Схемата на свързване е показана по-долу (червеният конектор е напрежение, черният е земята, синият е конекторът на самия сигнал, който е свързан към аналоговия вход на Arduino).


Резисторите на снимката са с номинал 22 kOhm. Цветовете на проводниците съответстват на цветовете, показани на електрическата схема.

Всички GND щифтове от сензорите са свързани към обща маса. Земята отива към щифта GND на Arduino. +5V на Arduino е свързан към общия захранващ щифт от всички сензори. Всеки конектор за син сигнал се свързва към отделен аналогов вход на микроконтролера.




Сглобих схемата на малка платка. Препоръчително е да изберете по-малки размери на дъската, за да я фиксирате допълнително върху ръкавицата. Можете да фиксирате нашата сглобена верига върху ръкавицата с помощта на елементарен конец и игла. Освен това не бъдете мързеливи и незабавно използвайте електрическа лента върху оголени контакти.




Инсталиране на сензори на ръкавицата

Можем да започнем да инсталираме сензорите и нашата платка върху самата ръкавица. Първо пробийте малък отвор в пластмасата на сензорите. На местата, където завършва чувствителният елемент, се пробиват дупки. ВАЖНО! Никога не пробивайте дупка в чувствителен материал. След това сложете ръкавица. Направете маркировки с молив или химикал в горната част на всяка фуга. Ще използвате тези места за монтиране на сензорите. Сензорите за огъване са прикрепени с обикновена резба. Зашийте сензорите към ръкавицата. Използвайте дупката, която сте направили в краищата на сензора. На местата, където са маркирани фугите, сензорите са "хванати" с резба отгоре. Всичко това е показано по-подробно на снимката по-долу. Платката е пришита към ръкавицата подобно на сензорите. Моля, имайте предвид, че за движението на пръстите е необходимо да оставите определен запас от дължината на проводниците. Това трябва да се вземе предвид при инсталирането на нашата платка и избора на дължина на конекторите от нея до сензорите.






Няма да навлизам в подробности за тази стъпка. Той е разгледан много подробно на уебсайта на InMoov (под „Скици за сглобяване“ и „Помощ за сглобяване“):

Когато сглобявате ръката си, уверете се, че възлите са инсталирани правилно по отношение на ориентацията в пространството. Не забравяйте да пробиете дупки в пръстите на ръката на робота за 3 mm крепежни елементи, за да намалите триенето между ставите. Отвън напълних болтовете с лепило.


Не бързайте да инсталирате въдицата. Първо проверете работата на сервомоторите.

Тест на серво мотор

В този момент сервосистемите вече трябва да са инсталирани в задната част на вашата роботизирана ръка. За да свържа сервото към Arduino и захранването, използвах малка макетна платка. Свържете всеки положителен щифт на серво мотора (червен) към една релса на макетната платка, а отрицателният щифт (черен или кафяв) към другата релса.

ВАЖНО! Не забравяйте да свържете щифта Arduino към отрицателната релса: не забравяйте, че всички заземяващи щифтове трябва да бъдат свързани заедно. VCC щифтът може да се свързва с различни захранващи устройства, но GND трябва да е еднакъв.

Качете програмата на Arduino (файлът с програмата е прикачен). Уверете се, че свързването на сензори, сервомотори и др. Беше правилно. Сложете ръкавица и включете Arduino. Сервомоторите трябва да се въртят в зависимост от това кой пръст движите. Ако сервото се движи, значи всичко работи!


Ако сте по-опитен потребител на Arduino и знаете как да проверите текущите стойности от сензорите за огъване, можете да коригирате диапазона в програмата, за да отговаря на вашите реалности. Предполагам, че всички сензори за огъване са приблизително еднакви, но ако това не е така, калибрирането на сензорите определено ще ви помогне.

Ако сервосистемите не работят правилно, уверете се, че сте ги свързали правилно (например, когато работех по този проект, забравих да свържа щифта GND на Arduino към GND на захранването и всички сервосистеми, както обикновено , В този случай нищо няма да работи). Уверете се, че всичко работи, преди да продължите.

Добавяне на въдица

Добавянето на въдица е може би най-трудната и отговорна част от проекта за ръката на робота. Уебсайтът на InMoov има инструкции за това. Концепцията е проста, но прилагането й не е толкова лесно на практика. Моля, имайте предвид, че тази част от проекта изисква концентрация и търпение. Единствената разлика между моята версия и дизайна на InMoov е използването на лепило. Благодарение на това можем да получим възможност за повече настройки на гъбата при калибриране на сервиза. За да направите това, достатъчно е да разтопите лепилото и да затегнете болтовете, от които се нуждаем. Въпреки че, разбира се, надеждността на дизайна пада. В крайна сметка, след окончателната настройка и калибриране, можем да използваме друга опция за фиксиране по всяко време.

За да калибрирате сервото, завъртете роторите така, че пръстите на роботизираната ръка да са върху масата. Свържете вашия Arduino и захранването. Поставете задвижващите кобилици по такъв начин, че в напълно "легнало" състояние на рамото напрежението да е максимално.


Обяснението на процеса на калибриране е доста трудно. Освен това инструкцията с InMoov, например, не ми пасна. Тоест, когато закрепвате, трябва да покажете въображение и да се адаптирате към вашите реалности - като например: вида на люлеещите се столове, вида на въдицето или конеца, грешки в дизайна и монтажа, разстоянието на монтаж на сервомоторите спрямо ставите на роботизирана ръка.

За щастие това е последният етап от проекта!

Послеслов


Въпреки факта, че има много по-сложни и точни (и скъпи) проекти, горният проект е много интересен и има отличен потенциал за практическо приложение. Такива дизайни не трябва да се използват при директен контакт с човек, поради липсата на точност на самата концепция. Но индустрията, медицината и т.н. за задачи без повишени изисквания за точност на движенията на ставите, нашата роботизирана ръка е доста подходяща. Е, от гледна точка на по-нататъшен "ъпгрейд" на ръката - тук полето като цяло е неразорано. Започвайки от безжично управление, завършвайки с подмяна на задвижвания, размери, разработване на допълнителни степени на свобода.

Ето защо обичам Arduino: можете много бързо и за малко пари да изградите макет или прототип на устройство, което е не само лесно за програмиране, но и може да изпълнява наистина интересни задачи.

Оставете вашите коментари, въпроси и споделете личен опитПо-долу. В дискусията често се раждат нови идеи и проекти!

Отдавна исках да автоматизирам процеса на изсушаване на банята след къпане. Имах много отзиви по темата за влажността. Реших да приложа (така да се каже) един от методите за справяне с него. Между другото, през зимата сушим дрехите си в банята. Достатъчно е да включите изпускателния вентилатор. Но наблюдението на вентилатора не винаги е удобно. Затова реших да сложа автоматизация на този случай. Първият опит с внедряването беше неуспешен. Прегледът беше. Но не се отказах...

Когато се преместих в нов апартамент, почти веднага поставих вентилатор с възвратен клапан в капака. За изсушаване на банята след къпане е необходим вентилатор. Необходим е възвратен клапан, за да се предотврати навлизането на чужди миризми от съседи в апартамента (когато вентилаторът е безшумен). Случва се. Всички вентилационни канали са индивидуални, но при полагането явно е спестен цимент. Сигурно миризмата минава през пукнатините.
Фенове, имам различни възможности. Има прости, има с таймер (регулиране на интервала от време), както е на снимката.


Това е, което използвам до ден днешен.
В конкретния случай (който няма вентилатор с таймер), всичко може да се направи на софтуерно ниво.
Тъй като живея в апартамент "мравуняк", единственото място за сушене на дрехи е балконът. В банята може да избледнее. Сушенето изисква или ниска влажност, или циркулация на въздуха. Изпълнението на двете условия е най-добрият вариант. Вентилаторът трябваше да реши този проблем. Отначало той направи точно това. Основното нещо е да не забравите да го изключите. Докато вентилаторът работи, е необходимо леко да отворите прозореца. Трябва ли да напомняте за училищния проблем с басейн и две тръби? За да влезе въздухът в аспиратора, е необходимо той да влезе в апартамента отнякъде. Който има дървена дограма, а не пластмасова, няма да има проблеми. Стига пукнатини. Но с пластмаса апартаментът се превръща в терариум.
Тогава започнах да мисля за автоматизиране на процеса. Затова поръчах датчиците.
Вече споделих тъжния опит от осъществяването на моята идея. Ето този модул. Не може да работи по ПРИНЦИП. Но нищо няма да остане. И той ще бъде използван.


(Захранващо напрежение: 5V. Максимално натоварване: 10A 250V AC и 10A 30V DC). Използвам го като релейна кутия. За нормален фен това е достатъчно.
Начертах и ​​схема на модула. Няма да има проблеми с връзката.


Червеният светодиод показва наличието на захранващо напрежение. Зелено - задействане на релето. Замених безполезния сензор (сензор за влажност, вече не съществува) с 10kΩ съпротивление. И също добави повече съпротива. Ще отиде в "умния" блок. И двете са подчертани в червено. Всичко това трябва да елиминира евентуални недоразумения. В края на краищата, релейният блок се захранва от напрежение от 5V, а „умният“ блок се захранва от 3,3V. Релейният блок се управлява от ниско ниво. Високото ниво изключва релето (вентилатора). Фърмуерът взема това предвид.
Веригата е базирана на компаратор на LM393. Тримерният резистор първоначално е проектиран да зададе прага за превключвателя за влажност. Може да се наложи да се завърти малко.
Може да се използва прости блоковереле. Продават се. Ще използвам това, което е останало след последния неуспешен опит.
Време е да погледнем в каква форма пристигнаха сензорите AM2302 (DHT22). Поръчах три наведнъж. Не мисля, че се ограничава само до банята. В главата ми се въртят много идеи. Къде само ще намерите време и желание да ги приложите.


Сензорите бяха запечатани в антистатични торбички. Всичко в ума. Запояването е точно. Искове за външен виднямам. Дори дъската е измита.


Ето какво пише на страницата на магазина:

Цифровият модул за температура и влажност AM2302 Humicap е цифров изходен сигнал, съдържащ калибриран комбиниран сензор за температура и влажност. Той използва специална технология за улавяне на цифрови модули и технология за сензор за температура и влажност, за да гарантира, че продуктите са с висока надеждност и отлична дългосрочна стабилност. Сензорът включва капацитивен чувствителен елемент за влажност и високопрецизни устройства за измерване на температурата и свързан с високопроизводителен 8-битов микроконтролер. Следователно продуктът има отлично качество, бърза реакция, способност против смущения, висока цена и други предимства. Изключително малък размер, ниска консумация на енергия, разстояние за предаване на сигнала до 20 метра. Това го прави най-добрият избор за всички видове приложения и дори за най-взискателните приложения.
Спецификация:
Размер: 40 х 23 мм
Тегло: 4гр
Напрежение: 5V
Порт: цифрова двупосочна единична шина
Температурен диапазон: -40-80 °C ± 0.5 °C
Влажност: 20-90%RH±2%RH
Платформа: Arduino, SCM
Включен пакет:
3 x Сензорен модул
На борда на части най-малко. Сензорите са неотделяеми, не са счупени.
Време е да се заемете с работата. Част от това, което ще използвам, вече съм показал. Имам нужда и от 5V захранване. Ще го направя от едно старо (вече ненужно) зарядно за телефон.

Това зарядно устройство няма USB порт. Е, много е стар (препоръчвам да използвате по-нови, те имат 5V изход). Следователно изходът е 7V. Трябваше да запоя стабилизатора MC KREN5. В това няма нищо трудно. Кой е приятел с поялник, той знае. А който не е приятел, напразно чете темата.


Не се страхувайте много, направих импровизиран. След отстраняване на грешки в механизма всичко ще изглежда прилично. Може би ще сменя зарядното. Всичко зависи от резултата, с който ще стигна до финала. Ще го инсталирам локално (постоянно) след „изчерпателно тестване“. Може да се наложи да приложите зимната / лятната версия софтуер. Температурно-влажностните характеристики на въздуха през зимата/лятото са различни.
Имам нужда и от WIFI модула от предишния преглед.


Полезен конвертор кабел (USB към RS232 TTL UART) за WIFI програмиранемодул.


Блоковата схема на моята идея изглежда проста.


Но разбира се има нюанси.
Остава да направя програма за управление на вентилатора.
Няколко условия:
1. Вентилаторът се включва, когато влажността достигне над 68%.
2. Работно време (таймер) 5 минути.
3. Прехвърляне на данни за температурата и влажността през WIFI (за всеки случай).
4. Индикация на режима чрез WIFI.
Ако се спрете на условие номер 1, тогава най-простият Arduino ще бъде достатъчен. Но имам само една платка Arduino и има три WIFI модула :)
За мен лично най-трудното място е подготовката на програмата, малко (меко казано) не е моята тема. Но животът тече и носи в хода си все нови и нови маси от хора. Ще разбера огромните простори на Arduino, използвайки примера на сензор за влажност DHT22 и WIFI модул. Но щом аз успях, значи и ти можеш.
Първо малко информация за глупаци като мен.
Програмата Arduino IDE липсва в настройките на тези платки, които ще използвам. Например трябва да се добави ESP8266.

Добавяне на компоненти на примера на ESP8266.

Първо, изтеглих и инсталирах Arduino IDE на моя компютър. След това стартирам програмата.
Файл→Настройки→Вмъкване на връзка в доп. връзки → щракнете върху OK. връзка:



Това изисква интернет връзка. Задължително!
След това отивам при управителя на борда.
Инструменти→Диск:…→Мениджър на дъска.


Намиране на моя модул аз избирам последна версия. Щраквам върху инсталиране.


В изтеглената програма Arduino IDE също липсват библиотеки за сензори. Например трябва да се добави и библиотеката DHT22.

Свързване на библиотеката с помощта на сензора DHT22 като пример.

Първо изтеглям от интернет архив като DHT.zip. Намирането не е проблем.
След това бягам Програма Ардуино IDE.
Скица→Включване на библиотека→Добавяне на zip библиотека.


Появява се раздел като този.


Посочете място за съхранение… Отворете.
Библиотеката е свързана.


Остава малко да се направи :)
Схемата на свързване на сензора за влажност може да варира. Моят дойде като модул с три пина и вече монтирани резистори на платката.

И накрая, попълване на скицата.

Попълване на скица.

Отварям готовата скица. В моя случай „WiFi-DHT22_AleksPoroshin68.ino.


Arduino IDE ще стартира автоматично.
След това свързвам програмиста, отивам на инструментите и свързвам Com-порта. Този, към който е свързан, е маркиран. Ще го активирам. В моя нетбук има три от тях: това са com6, com8 и com10.


Уча фърмуер. Можете да промените името и паролата за достъп.

Щраквам върху бутона за изтегляне.


Скицата се съставя. Достатъчно дълго.


В този момент трябва да натиснете reset on сглобена веригамодул.

В същото време GPIO 00 е на нула.
Ето и самата скица:
#включи #включи #включи #включи #include "DHT.h" #define DHTPIN 4 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); float dhtTemp = NAN; float dhtHumidity = NAN; int ledPin = 12; //GPIO 12 /* Задайте тези на желаните от вас идентификационни данни. */ const char *ssid = "AleksPoroshin"; const char *парола = "12345678"; ESP8266WebServer сървър(80); /* Само малко тестово съобщение. Отидете на http://192.168.4.1 в уеб браузър *, свързан към тази точка за достъп, за да я видите. */ void handleRoot() ( String s = "\r\n ESP201"; s += " "; s += " "; //s += "Състояние - Действия - Конфигурация"; s += "

ESP 201 модул

"; s += " "; if (isnan(dhtTemp)) s += " Температура: Грешка при четене"; else ( s += " Температура: "; s += dhtTemp; s += " C"; ) if ( isnan(dhtHumidity)) s += " Влажност: грешка при четене"; else ( s += " Влажност: "; s += dhtHumidity; s += " %"; ) if(digitalRead(ledPin) == HIGH) s + = "Ауспух: Изключен"; else s += "Ауспух: Включен"; s += ""; server.send(200, "text/html", s); ) void setup() ( delay(1000); Serial.begin(115200); Serial.println(); Serial.print("Конфигуриране на точка за достъп. .."); /* Можешпремахнете параметъра за парола, ако искате AP да бъде отворен. */ WiFi.softAP(ssid, парола); IPAddress myIP = WiFi.softAPIP(); Serial.print("IP адрес на AP: "); Сериен println(myIP); server.on("/", handleRoot); server.begin(); Serial.println("HTTP сървърът стартира"); dht.begin(); Serial.println("успешно стартиране на DHT22"); pinMode(ledPin, ИЗХОД); ) void loop() ( getDHT(); server.handleClient(); ) void getDHT() ( dhtTemp = dht.readTemperature(); dhtHumidity = dht.readHumidity()+5; if (dhtHumidity< 68) { digitalWrite(ledPin, HIGH); Serial.println("ledPin HIGH"); } else { digitalWrite(ledPin, LOW); Serial.println("ledPin LOW"); } }
Не се карайте твърде силно. Просто се уча.
След като кача скицата, за да потвърдя програмирането, свързвам GPIO към + 3.3V. След това го изключвам. Фърмуерът е зареден.


Правя оформление на breadboard. Проверявам всичко. Върши работа. Но не всичко е толкова добро, колкото би трябвало да бъде. В диапазона, който ми трябва, китайските сензори подценяват показанията с 5-6%.


Имам повече доверие на немския дървосекач. Да, и цената е няколко десетки пъти повече. И най-важното, той издържа теста.
Въведено е изменение на програмата (добавени са 5 единици). Съгласен съм, че това е грешно. Но в рамките на 40-70% показва точно. По-правилно е да премахнете характеристиката и да коригирате библиотеката. Не съм готова за това :). Останалите сензори също излъгаха. Въпреки че всички показаха приблизително същото.

Ето как изглежда уеб страницата, ако се свърже с моя WIFI модул:


Паролите и изявите са посочени в скицата.
Превключването става при 68% влажност. Всичко е чисто.


Но има едно предупреждение. И не може да се пренебрегне. На границата от 68% влажност вентилаторът може да се включва и изключва. За да разрешите този проблем, имате нужда от таймер. Имам вентилатор с таймер. Тези. няма проблем. Всеки, който има обикновен вентилатор, ще трябва да реши този проблем на софтуерно ниво.
По-нататъшната ми задача е да сглобя всичко това по схемата, но вече не на макет и да го тествам за един месец. Всички промени могат да бъдат направени по време на работа. Какво да направя и къде да вмъкна, всичко съм написал.
Няколко думи за монтажа на сензора. Не препоръчвам да го поставяте във вентилационния отвор. Причината е проста. Дори в най-чистия и добре поддържан апартамент има прах, който, когато вентилаторът е включен, се втурва там (към ветеринарния канал). Но преди година извадих вентилатора и го почистих основно.


За да не сменяте често сензорите поради повредата им, препоръчвам да намерите по-подходящо място за тях, някъде наблизо. Освен това можете да го увиете с нетъкан плат или нещо подобно, за да го предпазите от прах. И ще бъдете щастливи.
Съвсем забравих да кажа, че ако искаш сам да задаваш "коефициентите" на контрол на влажността, трябва да си поне малко в темата. Ако нямате такива уреди у дома...


Без тях ще ви е много трудно да направите нещо по тази тема.
Това е всичко.
Как правилно да се разпорежда с информацията от моя преглед, всеки решава сам. Ако нещо не е ясно, задавайте въпроси. Дано е помогнало поне на някого. Може би някой ще иска да ми помогне. Аз ще бъда много благодарен.
Успех на всички!
Функционална проверка:


Следва продължение…

Продуктът е предоставен за написване на ревю от магазина. Прегледът се публикува в съответствие с клауза 18 от Правилата на сайта.

Смятам да купя +51 Добави към любими Рецензията ми хареса +26 +65