Агуулгын хүснэгт:

SilverLight: Серверийн өрөөнүүдийн Arduino дээр суурилсан байгаль орчны хяналт: 3 алхам (зурагтай)
SilverLight: Серверийн өрөөнүүдийн Arduino дээр суурилсан байгаль орчны хяналт: 3 алхам (зурагтай)

Видео: SilverLight: Серверийн өрөөнүүдийн Arduino дээр суурилсан байгаль орчны хяналт: 3 алхам (зурагтай)

Видео: SilverLight: Серверийн өрөөнүүдийн Arduino дээр суурилсан байгаль орчны хяналт: 3 алхам (зурагтай)
Видео: Java tech talk: Spring Boot and GraphQl integration. Как сделать это просто? 2024, Долдугаар сарын
Anonim
SilverLight: Серверийн өрөөнүүдийн Arduino дээр суурилсан байгаль орчны хяналт
SilverLight: Серверийн өрөөнүүдийн Arduino дээр суурилсан байгаль орчны хяналт
SilverLight: Серверийн өрөөнүүдийн Arduino дээр суурилсан байгаль орчны хяналт
SilverLight: Серверийн өрөөнүүдийн Arduino дээр суурилсан байгаль орчны хяналт
SilverLight: Серверийн өрөөнүүдийн Arduino дээр суурилсан байгаль орчны хяналт
SilverLight: Серверийн өрөөнүүдийн Arduino дээр суурилсан байгаль орчны хяналт
SilverLight: Серверийн өрөөнүүдэд зориулсан Arduino -д суурилсан байгаль орчны хяналт
SilverLight: Серверийн өрөөнүүдэд зориулсан Arduino -д суурилсан байгаль орчны хяналт

Нэг удаа надад компанийнхаа серверийн өрөөний температурыг хянах орчны шинжилгээг хайж олох даалгавар өгсөн. Миний анхны санаа бол: Raspberry PI болон DHT мэдрэгчийг яагаад ашиглаж болохгүй вэ, үүнийг OS суулгацыг оруулаад нэг цаг хүрэхгүй хугацаанд тохируулж болно. Үүний тулд би нүдийг нь боосон дарга нараас үүнийг хийхгүй гэсэн хүйтэн хариулт авсан, учир нь үүнийг тохируулах нь төхөөрөмж худалдаж авахаас илүү үнэтэй болно. Амьдралынхаа нэг хэсэг шиг явцуу сэтгэлгээтэй хүмүүсийг ийм байдлаар хүлээж авах нь нэг зүйл байсан бөгөөд би Ebay -ийг аж ахуйн нэгжийн зэрэглэлийн EBON хог хаягдал худалдаж авахыг захиалсан боловч тэр үед би өөрийн серверийн өрөөнд бүрэн нээлттэй эх сурвалжтай Arduino барихаар шийдсэн юм. суурилуулсан төхөөрөмж нь миний захиалснаас хамаагүй дээр байх болно.

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

Алхам 1: Тоног төхөөрөмжийн дизайн

Тоног төхөөрөмжийн дизайн
Тоног төхөөрөмжийн дизайн
Тоног төхөөрөмжийн дизайн
Тоног төхөөрөмжийн дизайн
Тоног төхөөрөмжийн дизайн
Тоног төхөөрөмжийн дизайн

Арилжааны тоног төхөөрөмжийн тойм.

За, би хүрээлэн буй орчны мониторыг ups -ийн дотор байрлуулах гайхалтай санаагаа эхлүүлээгүй байгаа ч гэсэн зах зээл байгаа нь ойлгомжтой тул юу хийж болохыг харцгаая.

Байгаль орчны хяналтын төхөөрөмж Тохиромжтой байдал

10/100Mb сүлжээ-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 кабелиар холбодог (стандарт зүйл байхгүй тул тэр порт руу юу ч залгах гэж бүү оролдоорой. Үүний тухай). Тэд төхөөрөмжийг "дулаацуулахад" 10 минут шаардагддаг бөгөөд энэ нь бодит байдал дээр хэдэн цаг байсан бөгөөд үүнийг хийсний дараа энэ нь аажмаар шинэчлэгддэг java интерфейс дээр гарч ирсэн бөгөөд бид температур, чийгшилтэй байна. Анхааруулгад суурилсан нөхцлийг тохируулах нь энэ үеэс хялбар байсан боловч хэн илүү сайн зүйлийг бүтээхийг хүсч байна.

Энэ төсөл бол миний олон төслийн нэгдэл юм: Наталья цаг уурын станц, Финиксийн сүүдэр. Хайрцаг нь дараахь байгаль орчны хязгаарлалтыг хянах боломжтой.

  • Температур/чийгшил/дулааны индекс
  • Агаар дахь LPG, утаа, архи, пропан, устөрөгч, метан, нүүрстөрөгчийн дутуу ислийн агууламж (MQ2)
  • Нарны мэдрэмтгий байдал (серверийн өрөөнд гэрэл асдаг уу?)
  • Motion PIR мэдрэгч (хэн нэгэн өрөөнд орж ирэхэд хөдөлгөөн мэдрэгчийн ачаар одооноос эхлэн гэрэл асаах/унтраах боломжтой болно)

Энэ бүх өгөгдлийг LCD дэлгэц дээр сайхан харуулдаг бөгөөд цааш нь боловсруулж, анхааруулах зорилгоор компьютерт (Orange PI Zero) дамжуулдаг. DHT, MQ2 дижитал зүү гэх мэт дижитал мэдрэгчийг OrangePI -д шууд залгах боломжтой байсан ч би эдгээр ажлуудад зориулагдсан микро төхөөрөмж ашиглахыг илүүд үздэг бөгөөд хэрэв та LCD -ийг шинэчлэх шаардлагатай бол бусад түвшний доод түвшинг хийх хэрэгтэй. Arduino-г давж гаршгүй зүйл бөгөөд олон жилийн турш тасралтгүй найдвартай ажиллуулж чаддаг (үнэн хэрэгтээ 24/7 ажилладаг ганц ч Arduino миний хувьд амжилтгүй болсон). OrangePI -ийн дутагдалтай талууд (үүнийг 10 долларын үнэтэй компьютер гэж бодъё) ажлын ачаалал ихтэй үед ашиглах боломжгүй, bsd дэмжлэггүй, wifi сүлжээ хавтгайрсан гэх мэт жижиг ачааллыг хялбархан зохицуулж чаддаг.

Энэ бол дараах бүрэлдэхүүн хэсгүүдийг шаарддаг маш энгийн төслийн техник хангамж юм.

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

Би зүгээр л ашигладаг ердийн талхны хавтангийн хувьд ПХБ хийх гэж санаа зовсонгүй, учир нь бүрэлдэхүүн хэсгүүдийг Arduino -тэй холбох боломжтой (хавсаргасан зургийг үзнэ үү):

-DHT22 нь VCC (дижитал) руу 10K татах шаардлагатай болно.

-LDR нь GND (аналог) руу 10K татах шаардлагатай болно.

-MQ2 -ийг ямар ч аналог зүүтэй шууд холбож болно (аналог) Миний дизайнд наалдсан тул ямар ч байсан хүрэх боломжгүй юм. Шалгах:

-PIR нь ямар ч зүүтэй шууд холбогдож болно (дижитал)

-LCD: 4 зүүгээр жолоодож болно, дурын зүүгээр холбож болно (дижитал) +2 RS/E (дижитал) хэрэгтэй болно.

-Buzzer: ямар ч Arduino зүүтэй шууд холбогдох боломжтой (дижитал)

Миний ашигласан pinout кодыг харж болно. Үүний дараа бүх зүйлийг хооронд нь холбох нь маш энгийн бөгөөд та тэдгээрийг нэг нэгээр нь хийж болно, 1 мэдрэгч төгс ажиллаж байгаа эсэхийг шалгаарай, дараа нь дараагийнх руу очно уу, буруу утсыг буруу газруудад холбох нь буруу юм (жишээлбэл, vcc солих) /gnd нь мэдрэгчийн хувьд одоогоор энэ нь миний ямар ч төхөөрөмжийг алсангүй). Надад тэмдэглэсэн зүйл бол надад зориулагдсан маш олон VCC ба GNDs байсан тул би тэдгээрийг терминал туузаар шахаж чадаагүй тул бүгдийг нь гагнав.

DHT -ийн талаар миний бусад төслүүдээс бүү мартаарай: хэрэв та DHT номын санг коддоо оруулсан бөгөөд DHT мэдрэгч холбогдоогүй эсвэл DHT буруу холбогдсон бол (жишээ нь таны ашиглаж буй кодонд 11 тодорхойлогдсон) програм руу хөтөлж болно. эхэндээ үүрд өлгөх.

PIR хөдөлгөөн илрүүлэх мэдрэгчийн тухай, миний зурган дээрээс харахад эдгээр хуурамч хуурамч зүйлс маш олон байгаа нь үнэн хэрэгтээ Ebay -ээс жинхэнэ утас худалдаж авахад надад хэцүү байх болно. Хуурамч нь урт хугацаанд ч гэсэн адилхан ажилладаг боловч тэдний хэлхээг толин тусгал болгодог бөгөөд ингэснээр + ба - зүүг буцаахад хүргэдэг бөгөөд үүнийг танихад хялбар байдаг: цэнхэр компьютертэй ердийн ногоон биш, шошго байхгүй потметр. Би хайрцган дотроосоо жинхэнэ орлуулагчийг олсон нь азтай байсан, эс тэгвээс байрлалыг өөрчилснөөр миний хувьд 2 ледийг хамрах болно. Хажуугаар нь тогшсон савнууд хоёулаа надад тохирсон болохыг би олж мэдсэн. Энэ нь танд хөдөлгөөн хийх үед дижитал хөлийг нэг минут орчим өндөр байрлалд байлгах тул мэдрэх хангалттай урт хугацааг өгөх болно, ингэснээр та кодоо нөхөх шаардлагагүй болно. Хуурамч дээр аль талыг нь тодорхойлоход хялбар байдаг ба + голтой холбогдсон электролит тагны харгалзах хөлийг хараарай.

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

Алхам 2: Програм хангамжийн дизайн

Програм хангамжийн дизайн
Програм хангамжийн дизайн
Програм хангамжийн дизайн
Програм хангамжийн дизайн

Arduino код нь бас энгийн бөгөөд гогцоо бүрийн эхэнд бүх мэдрэгчийн заалтыг татаж авдаг. Хэрэв хөдөлгөөн, утаа байгаа бол LED -ийг асааж, утаа гарсан тохиолдолд дохиоллын дохиог тоглуулна (энэ бол цорын ганц хаах код тул би үүнийг богиносгосон), дараа нь өгөгдлийг LCD дээр харуулаад эцэст нь компьютер руу илгээнэ үү. боомтыг үерлэхгүйн тулд 10 секунд барих хугацаатай.

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

LCD -ийн тусламжтайгаар хэмжигдэхүүн бүрийн дараа цагаан хоосон зай ("") хэвлэхийг ашигладаг кодын жижиг заль мэхийг анзаарч, дараа нь курсороо тогтмол байрлал руу шилжүүлж шинэ дүрс, өгөгдлийг байрлуулна. LCD дэлгэц нь тоонуудыг ойлгоход тийм ч ухаалаг биш тул юу олж авдгаа зурдаг бөгөөд жишээ нь хэрэв та нар 525 -ийн нарны үнэтэй байсан бол гэнэт 3 болж буурсан бол 325 дэлгэц дээр хуучин хог хаягдлаа үлдээх болно. Тэнд.

OrangePI дээр ажилладаг C хяналтын код, хүрээлэн буй орчны өгөгдлийг бүртгэх, шаардлагатай бол имэйлийн анхааруулга илгээх.

OrangePI нь Armbian (Debian Stretch дээр үндэслэн бичиж байх үед) ажиллуулж байна. Үүнийг шийдсэн асуудал нь хх асуудал байсан тул би үүнийг програм хангамжийн хэсэгт оруулах болно. Төхөөрөмжийн дундаж эрчим хүчний алдагдлыг энд харуулав.

0.17 A - Зөвхөн Arduino + мэдрэгч

0.5-0.62 A - OrangePI ачаалах

0.31 A - Улбар шар өнгийн PI идэвхгүй байна

0.29 A - Улбар шар өнгийн PI унтраалттай (үнэхээр унтрааж чадахгүй, ACPI эсвэл үүнтэй төстэй зүйл байхгүй)

0.60 A - 4 цөмт CPU -ийн хэрэглээг 100% турших

Би энэ OrangePI -ийг удаан хугацаанд хайрцагт хийж байсан. Хуучин цөмийн тусламжтайгаар төхөөрөмж маш их гүйдэл алддаг (тоолуурын хэлснээр 0.63 А орчимд оргилд гарсан), PSU нь ачаалахгүй байсан тул ачаалах процесс гацсан бөгөөд би 2 ethernet LED -ийг асааж байна. байнга, юу ч хийдэггүй.

HLK-5M05 нь 5В хүчдэл дээр 5W хүч чадал өгч чаддаг бөгөөд энэ нь 1 Amp-ийг хангаж чаддаг боловч эдгээр төхөөрөмжүүд Хятадаас гарч байгааг та хэзээ ч мэдэхгүй, 0.63 A оргил нь хамгийн дээд хэмжээнээс доогуур байсан юм. үнэ цэнэ. Тиймээс би дахин ачаалах энгийн туршилтуудыг явуулж байсан бөгөөд 10 дахин ачаалснаас эхлэн OrangePI нь зөвхөн хоёр удаа амжилттай ачаалагдах болно. Тиймээс би програм хангамжаас ачаалах үед эрчим хүчний зарцуулалтыг бууруулах арга байж магадгүй гэж эргэлзэж эхлэв (энэ нь зөвхөн асуудал байсан). Хадгалах санд файлууд байхгүй байсан тул хамгийн сүүлд нь би програм хангамж, цөм болон бусад бүх зүйлийг сайжруулахын тулд ид шидийн "зохистой шинэчлэлт" хийсэн бөгөөд энэ нь бага хэмжээний ус зайлуулах болно гэж найдаж байна.

Linux silverlight 4.14.18-sunxi #24 SMP Баасан 2 сарын 9 16:24:32 CET 2018 armv7l GNU/Linux

Linux silverlight 4.19.62-sunxi #5.92 SMP Лхагва 7-р сарын 31 22:07:23 CEST 2019 armv7l GNU/Linux

Энэ болчихлоо! Програм хангамжийн асуудалд тоног төхөөрөмж хаях нь ихэвчлэн залхуу java хөгжүүлэгчид байдаг боловч энэ тохиолдолд бид програм хангамжийн техник хангамжийн асуудлыг шийдсэн нь маш том амжилт юм. Би төхөөрөмж бүрийг ачаалж байсан 20 орчим дахин ачаалах туршилт хийсэн. Опи -г асаах (холбох/салгах) нь асар их хэмжээтэй тул Arduino -г хүссэн үедээ дахин тохируулах болно (энгийн дахин ачаалахад л LCD анивчих боловч өөр асуудал үүсгэхгүй), гэхдээ энэ асуудал хэвээр байна. 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 ttm 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 секунд тутамд илгээж байгааг харах ёстой.

Анхааруулга, хяналт

Сэрэмжлүүлгийн хувьд би C хяналтын кодонд system () дуудлагыг оруулсан бөгөөд энэ нь өгөгдлийг цувралаас хүлээн авдаг тул гадны хэрэгсэл шаардлагагүй болно. Зарим жишээ анхааруулга:

- Температур 30 хэмээс дээш байна

Чийглэг 70 % -иас дээш байдаг (серверийн хувьд эрүүл биш)

- Өрөөн доторх хөдөлгөөнийг илрүүлэв (хэрэв та серверийнхээ өрөөнд үргэлжлүүлэн орвол энэ нь ядаргаатай байж магадгүй юм)

- Утаа эсвэл хий илэрсэн (100 -аас дээш анхааруулгыг нухацтай авч үзэх боломжтой, би энэ мэдрэгчээр тоглосон бөгөөд энэ нь маш олон зүйлийг асаадаг, жишээлбэл, гагнуурын төмрөөр мэдрэгчийн хажууд утаа гаргахад тамхи татах үед 50 -иас дээш гардаг. o 500 хүртэл нэмэгдсэн, тэр ч байтугай алс холын ердийн дезодорантаас хий илрүүлсэн)

Түүхэн өгөгдлийг хадгалахын тулд би маш сайн хяналтын хүрээтэй болсон үед яагаад дугуйг дахин зохион бүтээх хэрэгслийг бүтээх талаар санаа зовсонгүй. Үүнийг хувийн дуртай Zabbix -тээ хэрхэн нэгтгэх жишээг үзүүлэх болно.

apt-get суулгах zabbix-agent

/Etc/zabbix/zabbix_agentd.conf файлын төгсгөлд нэмнэ үү

UserParameter = silverlight.hum, толгой -1 /dev/shm/silverlight-zbx.log | awk -F "," '{$ 1 хэвлэх' '

UserParameter = silverlight.tmp, толгой -1 /dev/shm/silverlight-zbx.log | awk -F "," '{хэвлэх $ 2}' UserParameter = silverlight.sol, толгой -1 /dev/shm/silverlight-zbx.log | awk -F "," '{хэвлэх $ 4}' UserParameter = silverlight.mot, толгой -1 /dev/shm/silverlight-zbx.log | awk -F "," '{хэвлэх $ 5}' UserParameter = silverlight.smk, толгой -1 /dev/shm/silverlight-zbx.log | awk -F "," '{$ 6 хэвлэх' '

Zabbix_agentd -p -ийг ажиллуулах нь зохих утгуудыг буцааж өгөх ёстой.

мөнгөн гэрэл.хүм [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, Сайн байна уу: 25, Нар: 0, Хөдөлгөөн: 0, Утаа: 21

[SILVERLIGHT] Мэдээллийг 2019-09-10 23:36:18 цагт хүлээн авсан => Чийгшил: 44, Темп: 22, Сайн байна уу: 25, Нар: 0, Хөдөлгөөн: 0, Утаа: 21 [SILVERLIGHT] Өгөгдлийг 2019-09-нд хүлээн авсан -10 23:36:29 => Чийгшил: 44, Темп: 22, Сайн байна уу: 25, Нар: 0, Хөдөлгөөн: 0, Утаа: 22 [SILVERLIGHT] Мэдээллийг 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 давхар бүртгэлийг оруулах болно. Энэ бүртгэлд зөвхөн 6 өгөгдлийн багана байх бөгөөд цаг хугацааны тамга байхгүй тул үүнийг Zabbix уншихад хялбар болно.

Эцсийн урамшууллын хувьд: Arduino -г OrangePI -ээс хэрхэн шууд програмчлах вэ, ингэснээр та төхөөрөмж рүү ойртож, зөөврийн компьютерээ залгах шаардлагагүй болно.

2 арга бий:

-Хялбар арга: Arduino IDE -ийг бүрэн суулгаж, номын сан нь X11 гэх мэт зарим алсын ширээний компьютерийг дамжуулах, Xrdp, Xvnc, Nxserver гэх мэтээр ашигладаг.

-Хэцүү аргаар: Arduino IDE -г суулгаад командын мөрийг ашиглана уу

Би X11 -ийг сервер дээр суулгах дургүй тул бид энэ удаад хэцүү арга замыг туулах болно. Үүнийг хийхийн тулд танд 6 бүрэлдэхүүн хэсэг хэрэгтэй болно.

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

2, Python цуваа-> apt-get python-series суулгах

3, Arduino Makefile төсөл -> git clone

4, DHT номын сан

5, Sparkfun самбарын тодорхойлолт

6, SilverLight.ino, үндсэн код

Илүү хялбар болгохын тулд би сүүлийн 4 оноо (sketchbook.tgz) шаардлагатай файлуудыг багцалсан тул танд зөвхөн эхний 2 хэрэгтэй болно

Нэгдүгээрт, USB порт руу rw хандалттай энгийн хэрэглэгчийг бий болгох нь хамгийн сайн арга юм.

нэмэлт мөнгө

usermod -a -G дуудлагын мөнгө

Шинээр үүсгэсэн хэрэглэгчийн гэрийн лавлах дахь sketchbook.tgz -ийг төхөөрөмжид SCP хийж, тэндээс задална уу.

cd /home /мөнгө

tar xvzf sketchbook.tgz

График IDE -ийг ашиглаж байхдаа бүрээсний доор юу болж байгааг ойлгохын тулд:

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

Ерөнхийдөө Arduino -ийг бүтээх стандарт үйл явц нь:

. Ino файлуудыг үндсэн ноорог файлд нэгтгэх. Үндсэн ноорог файлыг өөрчлөх: #include мэдэгдлийг нэмэх; үндсэн ноорог файл дахь бүх функцын функцын мэдэгдлийг (прототип) үүсгэх; үндсэн ноорог файлд зорилтот main.cxx файлын агуулгыг хавсаргана уу. Кодыг объект файлуудад хөрвүүлэх. Объект файлуудыг холбосноор Arduino -д байршуулахад бэлэн болсон.hex файлыг үүсгэнэ.

Arduino стандарт бүтээх процесс ба Arduino-Makefile ашиглан бүтээх процессын хооронд бага зэрэг ялгаа бий.

Зөвхөн нэг.ino файлыг дэмждэг.. Ino файлд функцын мэдэгдлийг автоматаар үүсгэхгүй. Хэрэглэгч зөв функцын мэдэгдлийг бий болгоход анхаарах ёстой.

Бүтээх үйл явцын гол цөм нь Makefile юм. Санаа зовох хэрэггүй, бүх зүйл танд зориулагдсан болно, SparkFun цуврал гэх мэт стандарт бус самбаруудыг ингэж эмхэтгэх нь арай илүү төвөгтэй юм.

BOARD_TAG = промикро

ALTERNATE_CORE = SparkFun BOARD_SUB = 16MHz

Та бичих ёстой зүйл бол a: make upload (.hex файлуудыг үүсгэх бөгөөд дараа нь тэдгээрийг байршуулахын тулд avrdude -ийг ашиглана) бөгөөд дараах байдлаар дуусах болно.

mkdir -p build-promicro-16MHzatmega32U4

make reset make [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"; төрөл = S Програм хангамжийн хувилбар = 1.0; Тоног төхөөрөмжийн хувилбарыг өгөөгүй байна. Программист нь автоматаар нэмэгдэхийг дэмждэг. Программист буфертай санах ойн хандалтыг буфер хэмжээ = 128 байтаар дэмждэг. Программист дараах төхөөрөмжүүдийг дэмждэг: Төхөөрөмжийн код: 0x44 автомат: AVR төхөөрөмжийг эхлүүлж, зааврыг хүлээн авахад бэлэн байна avrdude: Төхөөрөмжийн гарын үсэг = 0x1e9587 (магадгүй m32u4) avrdude: "build-promicro-16MHzatmega32U4/sketchbook.hex" оролтын файлыг унших: (11580 байт): avrdude: 11580 байт флэш бичсэн avrdude: safemode: Гал хамгаалагч OK (E: CB, H: D8, L: FF) avrdude хийгдсэн. Баярлалаа.

Avrdude -д баярлалаа, одоо манай Arduino шинэ кодоор шинэчлэгдэж, програмчлагдсан байгаа бөгөөд та үүнийг орон нутгийн хэмжээнд vi эсвэл дуртай редактороороо засварлаж болно, ямар ч IDE ашиглах шаардлагагүй болно. Та байршуулахдаа C хяналтын програм, дэлгэц эсвэл arduino руу нэвтрэх бусад зүйлийг хоёуланг нь хаах ёстойг анхаарна уу, эс тэгвээс дахин тохируулсны дараа порт /dev /ttyACM1 хэлбэрээр эргэж ирнэ.

Алхам 3: Хаалтын болон хийх жагсаалт

Хаалтын болон хийх жагсаалт
Хаалтын болон хийх жагсаалт
Хаалтын болон хийх жагсаалт
Хаалтын болон хийх жагсаалт
Хаалтын болон хийх жагсаалт
Хаалтын болон хийх жагсаалт

Хэдийгээр би энэхүү орчны мэдрэгч хайрцгийг серверийн өрөөнүүдэд зориулан бүтээсэн боловч та үүнийг хими/электрон лаборатори, агуулах, ердийн өрөө болон бусад зүйлд ашиглаж болно. Тийм ээ, энэ нь TCP/IP ашигладаг тул энэ нь IoT төхөөрөмж юм, G үүнийг илүү санаачилгатай болгохын тулд үүнийг гарчигт оруулах ёстой байсан:)

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

OrangePI -ийг Armbian -ийг бүрэн хэмжээгээр ажиллуулснаар боломжууд хязгааргүй бөгөөд та түүхэн өгөгдлийг график дээр харуулахын тулд php дээр эхнээс нь бичсэн локал вэб интерфэйсийг үүсгэж болно. Хэрэв та өөрийн серверийн өрөөг хянаж, бахархаж болохуйц нээлттэй эх сурвалжтай төхөөрөмжтэй бол энэ нь илүү дээр биш гэж үү?

Зөвлөмж болгож буй: