Мазмуну:

SilverLight: Server бөлмөлөрү үчүн Arduino негизделген экологиялык монитор: 3 кадам (сүрөттөр менен)
SilverLight: Server бөлмөлөрү үчүн Arduino негизделген экологиялык монитор: 3 кадам (сүрөттөр менен)

Video: SilverLight: Server бөлмөлөрү үчүн Arduino негизделген экологиялык монитор: 3 кадам (сүрөттөр менен)

Video: SilverLight: Server бөлмөлөрү үчүн Arduino негизделген экологиялык монитор: 3 кадам (сүрөттөр менен)
Video: как установить и настроить Silverlight 2024, Ноябрь
Anonim
SilverLight: Server бөлмөлөрү үчүн Arduino негизделген экологиялык монитор
SilverLight: Server бөлмөлөрү үчүн Arduino негизделген экологиялык монитор
SilverLight: Server бөлмөлөрү үчүн Arduino негизделген экологиялык монитор
SilverLight: Server бөлмөлөрү үчүн Arduino негизделген экологиялык монитор
SilverLight: Server бөлмөлөрү үчүн Arduino негизделген экологиялык монитор
SilverLight: Server бөлмөлөрү үчүн Arduino негизделген экологиялык монитор
SilverLight: Server бөлмөлөрү үчүн Arduino негизделген экологиялык монитор
SilverLight: Server бөлмөлөрү үчүн Arduino негизделген экологиялык монитор

Бир жолу мага компаниянын сервердик бөлмөсүндөгү температураны көзөмөлдөө үчүн экологиялык иликтөө издөө тапшырмасы берилди. Менин биринчи идеям: эмне үчүн Raspberry PI жана DHT сенсорун колдонбостон, аны OS орнотууну кошкондо бир сааттан аз убакытта орнотсо болот. Бул үчүн мен көзүмдү байлаган жетекчилерден мындай кылбайбыз деген суук жооп алгам, анткени аны орнотуу үчүн аппаратты сатып алууга караганда жумуш убактысы кымбатыраак болот. Жашообуздун бир бөлүгүндө ушундай тар ойлуу адамдарды кабыл алуу бир нерсе болчу жана мен Ebayден кээ бир EATON таштандыларына буйрук берип, аны чакырып алчумун, бирок мен өзүмдүн сервердик бөлмөм үчүн толугу менен Open Source Arduino курууну чечтим. негизделген түзмөк, мен буйрутмадан алда канча жакшы болот.

Бул долбоор SilverLight деп аталган код, бул аттарды кайдан алдым деп сурабаңыз:) Мен жалтырак жарым акрил кутусун карадым жана ушул ат менен чечтим, бул мен билгенден кийин микрохоф продуктусуна эч кандай тиешеси жок..

1 -кадам: Аппараттык дизайн

Аппараттык Дизайн
Аппараттык Дизайн
Аппараттык Дизайн
Аппараттык Дизайн
Аппараттык Дизайн
Аппараттык Дизайн

Коммерциялык жабдыктарга сереп.

Макул, мен экологиялык мониторду көтөрүү идеясын баштай элекмин, бирок анын базары бар, андыктан алардын эмне кыла аларын карап көрөлү:

Айлана -чөйрөнү көзөмөлдөөчү шайкештик

10/100Mb Network-MS, PXGUPS, PXGPDP жана PXGMS.

10/100Mb ConnectUPS-X, ConnectUPS-BD жана ConnectUPS-E FW V3.01 жана андан жогору. ӨЛЧӨМДӨР (LXWXH)

2.26 x 1.48 x 1.15 (дюйм) 57.6 x 37.6 x 29.3 (мм) САЛМАК

1,19 унция (34 гр)

Бул абдан пайдалуу маалымат, туурабы? Коркпоңуз, анткени алар көп нерсени кыла алышпайт. Ал тургай, баштоо үчүн, сиздин UPSте өзүнчө сатып алган экологиялык сенсор менен, адатта, стандарттуу CAT5 кабели менен байланыштыруучу дагы бир кымбат addon-карт болушу керек болот (стандарттык эч нерсе жок болгондуктан, бул портко эч нерсе туташтырууга аракет кылбаңыз. ал жөнүндө). Алар түзмөктү "жылытуу" үчүн 10 мүнөт керек деп ырасташат, ал чындыгында бир нече саат болчу жана voila кылганда, ал жай интерфейсинде жаңыртылган Java интерфейсинде пайда болгон жана бизде температура жана нымдуулук бар. Эскертүүлөргө негизделген шарттарды түзүү ушул учурдан тартып оңой болду, бирок ким жакшы нерсе куруп берели.

Бул долбоор менин көптөгөн долбоорлорумдун жыйындысы: Наталья метеостанциясы, Феникс көлөкөсү. Кутуча төмөнкү экологиялык чектөөлөрдү көзөмөлдөй алат:

  • Температура/нымдуулук/жылуулук индекси
  • LPG, түтүн, спирт, пропан, суутек, метан жана көмүр кычкыл газынын абадагы концентрациясы (MQ2)
  • Күндүн сезгичтиги (сервер бөлмөсүндө жарык күйүп турабы?)
  • Motion PIR сенсору (кимдир бирөө бөлмөгө киргенде, кыймыл сенсорунун жардамы менен сиз жарыкты автоматтык түрдө күйгүзүп/өчүрө аласыз)

Бул маалыматтардын бардыгы ЖК экранда жакшы көрсөтүлөт, андан ары иштетүү жана эскертүүлөр үчүн компьютерге (Orange PI Zero) жөнөтүлөт. DHT жана MQ2нин санариптик пини сыяктуу OrangePIге санарип сенсорлорду туташтыруу мүмкүн болсо да, мен ар дайым бул тапшырмалар үчүн атайын микрофондорду колдонгум келет жана качан ЖКны жаңыртуу керек жана башка төмөнкү деңгээлде нерселер Arduino жөн эле эч нерсеге татыктуу эмес жана ишенимдүү түрдө көп жылдар бою тынымсыз иштей алат (чындыгында, 24/7 иштеген бир дагы Arduino менде азырынча ишке ашкан жок). OrangePI кемчиликтери менен (бул 10 долларлык компьютер), оор жүктөм үчүн жараксыз, bsd колдоосу жок, интеграцияланган wifi түйүлгөн ж.б.уңулдуу жумуш жүктөмүн оңой эле чече алат, сенсордук көрсөткүчтөрдү сериялык (USB) аркылуу кабыл алуу жана аларды иштетүү.

Бул төмөнкү компоненттерди талап кылган абдан жөнөкөй проект жабдыктары:

  • Arduino PRO Micro
  • LCD экран 2x16 белгиден турган RGB
  • AC-DC изоляциялоочу электр модулу 220Vдан 5V HLK-5M05ке чейин (бул Arduino/ESP долбоорлору үчүн абдан жакшы), бул 5V/5W версиясы!
  • 2х300 Ом резисторлор
  • 2xleds (кызыл/жашыл)
  • PIR кыймыл сенсору
  • MQ2 сенсор
  • DHT22
  • LDR
  • 2X10Kohm каршылыгы
  • Коңгуроо
  • Orange PI Zero
  • мини USB маалымат кабели

Мен жөн эле колдонулган кадимки нан үчүн PCB жасоону убара кылган жокмун, анткени компоненттерди жөн гана Arduino менен туташтырса болот (тиркелген сүрөттөрдү караңыз):

-DHT22 VCCге (санарип) 10K тартууну талап кылат

-LDR үчүн GND үчүн 10K ачылышы талап кылынат (аналогдук)

-MQ2 түздөн -түз каалаган аналогдук пинге (аналогго) туташтырылышы мүмкүн <аналогду колдонууну артык көрөт, анткени аналогдук казыктары бар MCU болгондо эмне үчүн биз түзмөктүн арт жагындагы казанды жөнгө салуунун ордуна, так баасын ала алабыз. Дизайндагы клейингдин айынан ансыз деле жеткиликсиз. Текшерүү:

-PIR түздөн -түз каалаган пинге туташтырылышы мүмкүн (санарип)

-LCD: 4 казык менен айдалышы мүмкүн, каалаган пинге туташа алат (санарип) +2 RS/E керек (санарип)

-Buzzer: каалаган Arduino казыктарына түз туташтырылышы мүмкүн (санарип)

Мен колдонгон пинут коддон көрүнүп турат. Баарын бир -бирине туташтыруу - бул абдан алдыга жылгандыктан, сиз аларды бир -бирден жасай аласыз, 1 сенсордун кемчиликсиз иштешин текшерип, андан кийинкисине өтүңүз, жаңылыштык кетире турган нерселер - зымдарды туура эмес жерлерге туташтыруу (мисалы, VC алмаштыруу) /gnd сенсор үчүн, буга чейин бул менин түзмөктөрүмдүн эч бирин өлтүргөн эмес). Бул жерде белгилей кетчү нерсе, мен үчүн толтурулган VCC жана GNDs өтө көп болчу, мен аларды терминал тилкеси аркылуу кысып албадым, ошондуктан мен алардын бардыгын ширеттим.

DHTлер жөнүндө менин башка долбоорлорумду да унутпаңыз: эгер сиз DHT китепканасын кодуңузга койсоңуз жана DHT сенсору туташкан эмес же DHT туура эмес туташкан болсо (мис., Сиз колдонгон коддо 11 аныкталган), бул программага алып келиши мүмкүн. башында түбөлүккө асылып калуу.

PIR кыймылын аныктоо сенсорлору жөнүндө, менин сүрөтүмдө көрүп турганыңыздай, булардын жасалма жасалгалары көп, чындыгында мен Ebayден чыныгы сатып алууну кыйын көрөм. Жасалмалар ошондой эле иштейт, ал тургай, узак мөөнөттүү, бирок алардын схемасы күзгүгө ээ, бул + жана - пинтердин артка бурулушуна алып келет, муну таануу оңой: көк түстөгү компьютер менен келген кадимки жашыл эмес, этикеткалар жок потметрлер. Мен кутучамдан чыныгы табуу үчүн бактылуу болдум, антпесе позицияны өзгөртүү мен үчүн 2 ледди камтыйт. Мен эки казандын тең ортосуна чейин ийилгенин көрдүм. Бул сизге кыймылда болгондо, сезүү үчүн жетишерлик узак аралыкты берет, санарип буту бир мүнөттөй ЖОГОРУ абалда сакталат, андыктан бул үчүн кодду толтуруунун кажети жок. Жасалмаларда кайсы тарап экенин аныктоо оңой - жана + төөнөгүчтөргө туташкан электролиттик капкактар үчүн тиешелүү буттарды караңыз.

Кутуну кесүү үчүн мен бриллиант дремелдин башын (ашыкча болгон, бирок жакшы иштеген) жана кадимки бургулоочу машинаны колдондум. Бул бириктирүү кутучалары менен иштөө оңой, бирок мен жабыштырууну жактырбасам да, аны курууда колдорумда бурамалар менен болттор болгон эмес, ошондуктан нерселерди бири -бирине жабыштыруу үчүн соодалашуу болгон (муну кийинчерээк оңой эле ысытууга жана бөлүп алууга болот). ичинде филаменти жок ошол эле желим курал).

2 -кадам: Программалык камсыздоонун дизайны

Программалык камсыздоонун дизайны
Программалык камсыздоонун дизайны
Программалык камсыздоонун дизайны
Программалык камсыздоонун дизайны

Arduino коду дагы жөнөкөй, ал ар бир циклдин башында сенсордун бардык көрсөткүчтөрүн тартат. Кыймыл же түтүн болсо, LEDди күйгүзүңүз, эгерде түтүн бар болсо, коңгуроодо ойготкучтун үнүн чыгарат (бул жалгыз блокировка коду, ошондуктан мен аны кыска кылдым), андан кийин маалыматтарды ЖКда көрсөтүп, акыры ЖК аркылуу жөнөтөт портту суу каптабоо үчүн, 10 секунд кармоо мөөнөтү менен.

Бул долбоор Arduino-> OrangePIден бир тараптуу байланышты колдонот, эч кандай буйруктар жок. Мен муну башка долбоорлорумдун биринде жасагандай кылсам болот, бирок компьютер LCD_PRINT1 же LCD_PRINT2ди ЖК экрандын бир сабын өзүнүн билдирүүсү менен кайра жазууга жөнөтө алат (мисалы: ip дареги, иштөө убактысы, системанын датасы, cpu колдонуу), экрандын аянты 3 сенсордун маалыматтарын көрсөтүү үчүн ушунчалык кичинекей болгондуктан, мен эч убара болгон жокмун. SOL жана SMK баалуулуктары экранда 8 баалуу белгини камтыган 0000-1023 4 цифрасына чейин барышы мүмкүн.

ЖК менен кичинекей бир трюкту байкаса болот, анда ар бир өлчөнгөн мааниден кийин боштуктардын ("") басылышы колдонулат, анда мен курсорду белгиленген позицияга жылдырып, жаңы сүрөтчөлөрдү жана маалыматтарды жайгаштырам. Булар бар, анткени ЖК сандарды түшүнүү үчүн анчалык акылдуу эмес, ал эмнеге ээ экенин тартат жана мисалы, эгерде сизде 525 күндүн мааниси бар болсо, ал күтүлбөгөн жерден 3кө чейин төмөндөп кеткен болсо, анда ал 325ти экранда таштап кетет. ал жерде

C башкаруу коду OrangePIде иштейт жана айлана -чөйрөнүн маалыматын каттайт жана керек болгондо электрондук почта эскертүүлөрүн жөнөтөт.

OrangePI Armbian (Debian Stretchке негизделген убакта) иштеп жатат. Мен муну программалык камсыздоо бөлүгүнө киргизем, анткени ал кандай көйгөйдү чечти. Бул жерде түзмөктүн орточо кубаттуулугу:

0.17 A - Arduino гана + сенсорлор

0.5-0.62 A - OrangePI жүктөө

0.31 A - Orange PI бош турганда

0.29 A - Orange PI өчүрүлгөн (аны чындап жабуу мүмкүн эмес, анда ACPI же ушуга окшош нерсе жок)

0.60 A - Стресс -тест 100 ядрону 4% CPU колдонуу

Мен бул OrangePIди көптөн бери коробкада кармап жүрчүмүн. Эски ядро менен түзмөк ушунчалык көп токту (эсептегич 0,63 А тегерегине жеткенде) ал PSU жөн эле жүктөлбөй калганын камсыздай албаса, жүктөө процесси тыгылып калган жана мен 2 ethernet ледди күйгүзүп алдым дайыма жана эч нерсе кылбайт.

HLK-5M05 5Vда 5W кыла алат деп ырастагандай, бул 1 Амперди камсыздай алат, бирок бул түзмөктөр Кытайдан чыкканда, сиз эч качан билбейсиз, 0.63 A чокусу бааланган максимумдан бир кыйла төмөн болгон баалуулук. Ошентип, мен жөнөкөй өчүрүп -күйгүзүү тесттерин жүргүзүп жаттым, 10 кайра жүктөөдөн баштап OrangePI эки жолу ийгиликтүү жүктөлөт, бул мени долбоордон ыргытып жиберүүгө мажбур кылды, анткени мага микросхемалардын шайкеш келбеген жүрүм -туруму жаккан жок. Ошентип, мен программалык камсыздоодон жүктөө убактысында энергия керектөөнү азайтуунун жолу бар экенин ойлоно баштадым (анткени бул бир гана маселе болчу) жана script.binди тууралоо жөнүндө кээ бир макалаларды таптым, бирок бул Orange PI PC үчүн жана Файлдар сактагычта жок болчу, андыктан акыркы чара катары мен сыйкырдуу "жаңыртууну" кылдым, ал азыраак агып кетет деп үмүттөнүп, микрофонду, ядро жана башка нерселерди жаңыртуу үчүн:

Linux silverlight 4.14.18-sunxi #24 SMP Жума 9 февраль 16:24:32 CET 2018 armv7l GNU/Linux

Linux silverlight 4.19.62-sunxi #5.92 SMP Шар Июл 31 31 22:07:23 CEST 2019 armv7l GNU/Linux

Ал иштеген! Программалык камсыздоонун көйгөйүнө аппаратты ыргытуу, адатта, жалкоо Java иштеп чыгуучулар болуп саналат, бирок бул учурда биз программалык камсыздоо менен жабдык көйгөйүн чечтик, бул кандай чоң ийгилик. Мен дагы 20дай өчүрүп -күйгүзүү тестин өткөрдүм, түзмөк ар бир учурда жүктөлөт. Мен дагы эле белгилей кетейин, Opi'ди күйгүзүүдөн (туташтыруу/ажыратуу) кубаттуулуктун чоңдугу ушунчалык чоң, ал каалаган убакта Arduino -ны баштапкы абалга келтирет (жөнөкөй өчүрүп -күйгүзүү ЖКны жаркылдатып, бирок башка көйгөйлөрдү жаратпайт), бирок бул маселе бойдон калууда жашырылган, анткени 2 бирге жүктөлөт.

Мен дагы ядро модулдарын карап чыктым:

usb_f_acm u_serial g_serial libcomposite xradio_wlan mac80211 лима sun8i_codec_analog snd_soc_simple_card gpu_sched sun8i_adda_pr_regmap sun4i_i2s snd_soc_simple_card_utils ТТС sun4i_gpadc_iio snd_soc_core cfg80211 snd_pcm_dmaengine industrialio snd_pcm snd_timer SND sun8i_ths soundcore cpufreq_dt uio_pdrv_genirq UIO thermal_sys pwrseq_simple

Булардан бизге чынында эмне керек? Жарайт, pwr жана термалдык пайдалуу болушу мүмкүн, бирок үн, сериялык порт, wifi (сынган hw) булардын бардыгын кара тизмеге киргизүүгө болбойт. Мен ошондой эле кийинчерээк керектүү модулдарды камтыган ыңгайлаштырылган ядро түзөм.

Бизге эмне керек жана ал демейки боюнча жүктөлбөйт, CDC ACM Arduino менен байланышып, аны иштетүү:

echo "cdc-acm" >> /etc /модулдар

Андан кийин, сиз буга чейин туташууну текшере аласыз:

экран /dev /ttyACM0 9600

Статус маалыматтары ар 10 секундда жөнөтүлүп турушу керек.

Эскертүүлөр жана мониторинг

Эскертүүлөр боюнча, мен жөн гана system () чалууларды C көзөмөлдөө кодуна койгом, ал сериялык маалыматтарды алат, андыктан эч кандай тышкы инструменттер талап кылынбайт. Кээ бир мисалдар эскертмелери:

- Температура 30 градустан ашат

- Нымдуулук 70 % дан ашат (серверлер үчүн соо эмес)

- Бөлмөдө кыймыл аныкталды (эгер сиз сервердик бөлмөгө кире берсеңиз, бул тажатма болушу мүмкүн)

- Түтүн же газ табылды (100дөн ашык эскертүүлөр олуттуу кабыл алынышы мүмкүн, мен бул сенсор менен ойнодум жана ал көптөгөн нерселер үчүн күйгүзүлөт, мисалы, темир менен сенсордун жанында түтүн пайда кылуу, андан кийин тамеки чегүүдө 50дөн бир аз ашып кетти ал 500гө чейин көтөрүлдү, ал тургай, алыстан кадимки дезодоранттагы газды байкады)

Тарыхый маалыматтарды сактоо үчүн мен инструментти иштеп чыгуудан убара болгон жокмун, анткени эмне үчүн дөңгөлөктү кайра ойлоп табуу керек, анткени бизде ал жерде мыкты мониторинг системалары бар болчу. Мен муну жеке сүйүктүүм Zabbixке кантип интеграциялоонун мисалын көрсөтөм:

apt-get zabbix-agent орнотуу

/Etc/zabbix/zabbix_agentd.conf аягына кошуу

UserParameter = silverlight.hum, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{$ 1 басып чыгаруу' '

UserParameter = silverlight.tmp, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 2}' UserParameter = silverlight.sol, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 4}' UserParameter = silverlight.mot, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 5}' UserParameter = silverlight.smk, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{$ 6 басып чыгаруу' '

Zabbix_agentd -p иштетүү азыр тиешелүү маанилерди кайтарышы керек:

silverlight.hum [t | 41]

silverlight.tmp [t | 23] silverlight.sol [t | 144] silverlight.mot [t | 0] silverlight.smk [t | 19]

Жылуулук индекси, мен аны чогултам, бирок анын практикалык колдонулушун көргөн жокмун, андыктан ал жөн гана жазылып турат. C контролдоо кодунда мен 2 каттоо функциясын ишке ашырдым, биринчиси бардык маалыматтарды колдонуучуга ыңгайлуу форматта каттайт:

[SILVERLIGHT] Маалымат 2019-09-10 23:36:08 => Нымдуулук: 44, Темп: 22, Hi: 25, Күн: 0, Кыймыл: 0, Түтүн: 21

[SILVERLIGHT] Маалымат 2019-09-10 23:36:18 => Нымдуулук: 44, Темп: 22, Hi: 25, Күн: 0, Кыймыл: 0, Түтүн: 21 [SILVERLIGHT] Маалымат 2019-09да алынган -10 23:36:29 => Нымдуулук: 44, Темп: 22, Салам: 25, Күн: 0, Кыймыл: 0, Түтүн: 22 [КҮМҮШ] Маалымат 2019-09-10 23:36:39 => алынган Нымдуулук: 44, Темп: 22, Салам: 25, Күн: 0, Кыймыл: 0, Түтүн: 21

Экинчи:

Void logger2 (char *текст) {

FILE *f = fopen ("/dev/shm/silverlight-zbx.log", "w"); if (f == NULL) {printf ("Эс тутум журналынын файлын ачууда ката кетти! / n"); кайтуу; } fprintf (f, "%s", текст); fclose (f); кайтуу; }

Бул эс тутумга 1 лайнер журналын коёт (sdcardдагы керексиз rw операцияларын жок кылат), ал кийинки жолу дайыма жазылып калат. Бул журнал 6 маалымат тилкесин камтыйт жана убакыт белгиси жок, аны Zabbix оңой окуй алат.

Акыркы бонус катары: Arduino программасын OrangePIден кантип түз программалоо керек, андыктан ар бир жолу түзмөккө чейин жөө басып, ноутбукту туташтыруунун кажети жок.

2 жолу бар:

-Оңой жол: Толук Arduino IDEди орнотуңуз жана китепканалар X11 сыяктуу алыскы рабочийди багыттоо, Xrdp, Xvnc, Nxserver ж.

-Кыйын жол: Arduino IDE орнотуп, буйрук сабын колдонуңуз

Биз X11ди серверлерге орнотууну жакшы көрбөгөндүктөн, бул жолу кыйын жолго барабыз. Бул үчүн сизге 6 компонент керек болот:

1, ARM 32 бит үчүн Arduino IDE ->

2, Python serial-> apt-get python-serial орнотуу

3, Arduino Makefile долбоору -> git clone

4, DHT китепканасы

5, Sparkfun тактасынын аныктамалары

6, SilverLight.ino, негизги код

Жеңилдетүү үчүн мен акыркы 4 пунктка керектүү файлдарды топтодум (sketchbook.tgz), ошондуктан сизге биринчи 2 гана керек болот

Биринчиден, USB портуна rw мүмкүнчүлүгү бар кадимки колдонуучуну түзүү эң жакшы:

кошумча күмүш

usermod -a -G терүү күмүш

SCP sketchbook.tgz жаңы түзүлгөн колдонуучунун үй каталогундагы түзмөккө жана аны ошол жерден чыгарыңыз:

CD /үй /күмүш

tar xvzf sketchbook.tgz

Графикалык IDEди колдонуп жатканда капоттун астында эмне болуп жатканын бир аз түшүнүү үчүн:

Arduino IDE колдонууда Arduino эскизин куруунун курулуш процесси Arduino веб -сайтында https://www.arduino.cc/en/Hacking/BuildProcess жана кененирээк бул жерде сүрөттөлгөн: https://www.arduino.cc/ en/Hacking/BuildProcess

Жалпысынан алганда, стандарттык Arduino куруу процесси:

. Ino файлдарын негизги эскиз файлына бириктирүү. Негизги эскиз файлын трансформациялоо: #include билдирүүсүн кошуу; негизги эскиз файлындагы бардык функциялардын декларацияларын (прототиптерин) түзүү; негизги эскиз файлына максаттуу main.cxx файлынын мазмунун кошуу. Объект файлдарына кодду түзүңүз. Объект файлдарын шилтемелеңиз.hex файлын Arduinoго жүктөөгө даяр.

Arduino стандарттык куруу процесси менен Arduino-Makefileди колдонуу процессинин ортосунда бир аз айырмачылыктар бар:

Бир гана.ino файлы колдоого алынат. Функция декларациялары.ino файлында автоматтык түрдө түзүлбөйт. Колдонуучу туура функция декларациясын түзүүгө кам көрүшү керек.

Куруу процессинин жүрөгү Makefile. Кабатыр болбоңуз, баары сиз үчүн даярдалган, SparkFun сериясы сыяктуу стандарттуу эмес такталар үчүн ушундай жол менен түзүүдө бир аз татаалыраак.

BOARD_TAG = промикро

ALTERNATE_CORE = SparkFun BOARD_SUB = 16MHz

Жөн гана терүү керек: a: upload (бул.hex файлдарын түзөт, анан аларды жүктөө үчүн avrdude колдонот), ал төмөнкүдөй нерсе менен аяктайт:

mkdir -p build-promicro-16MHzatmega32U4

make reset [1]: '/home/silver/sketchbook'/home/silver/sketchbook/Arduino-Makefile/bin/ard-reset-arduino --caterina/dev/ttyACM0 make [1] каталогуна кирүү /home/silver/sketchbook 'do_upload make [1]:'/home/silver/sketchbook '/opt/arduino-1.8.9/hardware/tools/avr/bin/avrdude -q -V -p atmega32u4 каталогуна кирүү - C /opt/arduino-1.8.9/hardware/tools/avr/etc/avrdude.conf -D -c avr109 -b 57600 -P/dev/ttyACM0 / -U flash: w: build -promicro -16MHzatmega32U4/sketchbook. hex: i Программистке туташуу:. Табылган программист: Id = "CATERIN"; type = S Software Version = 1.0; Аппараттык версия берилген эмес. Программист автоматтык кошууну колдойт. Программист буферленген эс тутумуна кирүүнү колдойт buffersize = 128 байт. Программист төмөнкү түзмөктөрдү колдойт: Түзмөк коду: 0x44 avrdude: AVR түзмөгү инициализацияланган жана көрсөтмөлөрдү кабыл алууга даяр (11580 байт): avrdude: 11580 байт флэш жазылган avrdude: safemode: Сактандыргычтар OK (E: CB, H: D8, L: FF) аткарылды. Рахмат.

Жакшы рахмат avrdude, эми биздин Arduino жаңы код менен калыбына келтирилип, программаланган, муну сиз жөн гана vi же сүйүктүү редакторуңуз менен түзөтө аласыз, эч кандай IDEге муктаж эмес. Жүктөө учурунда C башкаруу программасын, экранды же arduinoго кирүүчү башка нерселерди жабышыңыз керектигин белгилеп кетмекмин, антпесе порт баштапкы абалга келгенден кийин /dev /ttyACM1 катары кайтып келет.

3 -кадам: Жабуу жана Тизмелердин тизмеси

Жабуу жана Тизмелер тизмеси
Жабуу жана Тизмелер тизмеси
Жабуу жана Тизмелер тизмеси
Жабуу жана Тизмелер тизмеси
Жабуу жана Тизмелер тизмеси
Жабуу жана Тизмелер тизмеси

Мен бул экологиялык сенсор кутучасын сервердик бөлмөлөр үчүн түзсөм да, аны химия/электрондук лабораториялар, кампалар, кадимки бөлмөлөр жана башка нерселер үчүн колдонсоңуз болот. Ооба, ал TCP/IP колдонуп жүргөндүктөн, бул IoT түзмөгү, мен аны дагы демилгелүү кылуу үчүн аталышка коюшум керек эле:)

Сиз бөлмөдө жарыкты автоматтык түрдө күйгүзүү үчүн аппараттык жана программалык камсыздоону оңой өзгөртө аласыз. Менин башка долбоорумду карап көрүңүз: Феникс көлөкөсү, бул жарыкты көзөмөлдөө үчүн кандайча иштейт, сизде ошол эле нерсени жасоо үчүн бардык жабдыктар бар (ал жарыкты өчүрүү үчүн кармоо таймерин колдонот. убакыт аралыгы, эгерде кайра кыймыл болсо, таймер өйдө көтөрүлөт).

OrangePI толук стек Армбиян иштеткенде, мүмкүнчүлүктөр чексиз, графикалык тарыхый маалыматтарды көрсөтүү үчүн PHPде нөлдөн баштап жазылган жергиликтүү веб -интерфейсти түзө аласыз. Бул сиздин сервердик бөлмөңүздү көзөмөлдөгөн ачык булак түзмөгүңүздүн бар экендиги эмеспи, эгер сиз муну өзүңүз куруп жатсаңыз, сыймыктана аласыз!

Сунушталууда: