Mundarija:

SilverLight: Server xonalari uchun Arduino asosidagi ekologik monitor: 3 qadam (rasmlar bilan)
SilverLight: Server xonalari uchun Arduino asosidagi ekologik monitor: 3 qadam (rasmlar bilan)

Video: SilverLight: Server xonalari uchun Arduino asosidagi ekologik monitor: 3 qadam (rasmlar bilan)

Video: SilverLight: Server xonalari uchun Arduino asosidagi ekologik monitor: 3 qadam (rasmlar bilan)
Video: как установить и настроить Silverlight 2024, Noyabr
Anonim
SilverLight: Server xonalari uchun Arduino asosidagi ekologik monitor
SilverLight: Server xonalari uchun Arduino asosidagi ekologik monitor
SilverLight: Server xonalari uchun Arduino asosidagi ekologik monitor
SilverLight: Server xonalari uchun Arduino asosidagi ekologik monitor
SilverLight: Server xonalari uchun Arduino asosidagi ekologik monitor
SilverLight: Server xonalari uchun Arduino asosidagi ekologik monitor
SilverLight: Server xonalari uchun Arduino asosidagi ekologik monitor
SilverLight: Server xonalari uchun Arduino asosidagi ekologik monitor

Bir marta menga kompaniyamning server xonasida haroratni kuzatish uchun ekologik zondni qidirish topshirig'i berildi. Mening birinchi fikrim: nima uchun Raspberry PI va DHT sensoridan foydalanmasligingiz kerak, uni OS o'rnatilishi bilan bir soatdan kamroq vaqt ichida sozlash mumkin. Buning uchun men ko'zlari bog'langan xo'jayinlardan bunday qilmaymiz, degan sovuq javob oldim, chunki uni o'rnatish uchun qurilma sotib olishdan ko'ra ko'proq vaqt kerak bo'ladi. Men hayotimning bir qismi uchun shunday tor fikrli odamlarni qabul qilishim kerak edi va men Ebay -ga korxona darajasidagi EATON -ni buyurtma qildim va qo'ng'iroq qildim, lekin men o'sha paytda o'z server xonam uchun Arduino -ni butunlay ochaman deb qaror qildim. asoslangan qurilma, bu men buyurgan narsadan ancha yaxshi bo'ladi.

Bu loyiha SilverLight deb nomlangan kod, mendan bu ismlarni qayerdan olganimni so'ramang:) Men faqat yaltiroq yarim akril qutiga qaradim va shu nom bilan qaror qildim, bu men bilgan mikroxop mahsulotiga hech qanday aloqasi yo'q..

1 -qadam: Uskuna dizayni

Uskuna dizayni
Uskuna dizayni
Uskuna dizayni
Uskuna dizayni
Uskuna dizayni
Uskuna dizayni

Tijorat uskunalari haqida umumiy ma'lumot.

OK, shuning uchun men boshlamayman, kimning fikri atrof -muhit monitorini ko'tarish edi, lekin buning uchun bozor bor, shuning uchun ular nima qila olishini ko'rib chiqaylik:

Atrof -muhit monitoringi mosligi

10/100Mb tarmoq-MS, PXGUPS, PXGPDP va PXGMS.

10/100 Mb ConnectUPS-X, ConnectUPS-BD va ConnectUPS-E bilan FW V3.01 va undan yuqori. O'LMALARI (LXWXH)

2.26 x 1.48 x 1.15 (dyuym) 57.6 x 37.6 x 29.3 (mm) Og'irligi

1.19 oz (34 g)

Bu juda foydali ma'lumotlar, shunday emasmi? Xavotir olmang, chunki ular ko'p ish qila olmaydi. Hatto ishga tushirish uchun, sizning UPS-ni alohida sotib oladigan atrof-muhit sensori bilan bog'laydigan, odatda, standart CAT5 kabeli bilan bog'laydigan boshqa qimmatbaho qo'shimcha karta bo'lishi kerak bo'ladi (hatto bu portga hech narsa ulashga urinmang, chunki standart narsa yo'q) bu haqida). Ularning aytishicha, "isinish" uchun qurilmaga 10 daqiqa kerak bo'ladi, bu aslida soatlab edi va voila paydo bo'lgandan keyin u asta -sekin yangilanayotgan java interfeysida paydo bo'ldi va bizda harorat va namlik bor. Ogohlantirishlarga asoslangan shartlarni o'rnatish shu paytdan boshlab oson edi, lekin kim yaxshi ish qilsa, o'sha narsani o'ylaylik.

Bu loyiha mening ko'plab loyihalarimning birlashmasidir: Natalya meteorologik stantsiyasi, Feniks soyasi. Quti quyidagi ekologik cheklovlarni kuzatishi mumkin:

  • Harorat/namlik/issiqlik indeksi
  • LPG, tutun, alkogol, propan, vodorod, metan va uglerod oksidi havodagi konsentratsiyasi (MQ2)
  • Quyosh sezgirligi (server xonasida chiroq yonadimi?)
  • Motion PIR sensori (siz xonaga kimdir kirganda harakat sensori yordamida shu paytdan boshlab chiroqlarni avtomatik ravishda yoqishingiz/o'chirishingiz mumkin)

Bu ma'lumotlarning hammasi LCD displeyda yaxshi ko'rsatiladi va keyinchalik qayta ishlash va ogohlantirish uchun kompyuterga (Orange PI Zero) o'tkaziladi. DHT va MQ2 raqamli pinlari kabi raqamli datchiklarni to'g'ridan -to'g'ri OrangePI -ga ulash mumkin bo'lsa -da, men har doim bu vazifalar uchun maxsus mikrosxemalarni ishlatishni afzal ko'raman va LCDni yangilash kerak bo'lganda Arduino-ni yengib bo'lmaydigan va ko'p yillar davomida ishonchli ishlashga qodir (aslida 24/7 ishlaydigan Arduino hali men uchun muvaffaqiyatsiz bo'lgan). OrangePI kamchiliklari bilan (bu 10 dollarlik kompyuter) og'ir ish yuki uchun yaroqsiz, bsd qo'llab -quvvatlanmagan, Wi -Fi ulanmagan va hokazo.

Bu juda oddiy loyiha apparati bo'lib, u quyidagi komponentlarni talab qiladi:

  • Arduino PRO Micro
  • LCD displey 2x16 belgidan iborat RGB
  • AC-DC izolyatsion kalit 220V dan 5V gacha HLK-5M05 quvvat moduli (bu Arduino/ESP loyihalari uchun juda yaxshi), bu 5V/5W versiyasi!
  • 2x300 ohmli rezistorlar
  • 2 karra (qizil/yashil)
  • PIR harakat sensori
  • MQ2 sensori
  • DHT22
  • LDR
  • 2X10 kohmli qarshilik
  • Buzzer
  • To'q rangli PI nol
  • mini USB ma'lumot kabeli

Men oddiy ishlatilgan oddiy taxta uchun tenglikni ishlab chiqarishni ham bezovta qilmadim, chunki komponentlarni Arduino -ga ulash mumkin (ilova qilingan rasmlarga qarang):

-DHT22 VCC (raqamli) uchun 10K tortishni talab qiladi.

-LDR uchun GND (analog) uchun 10K pulldown kerak bo'ladi.

-MQ2 har qanday analog pinga (analog) to'g'ridan -to'g'ri ulanishi mumkin <analogdan foydalanishni afzal ko'radi, chunki nima uchun biz analog pinli MCUga ega bo'lsakda, biz qurilmaning orqa qismidagi potni sozlash o'rniga, aniq qiymatni olamiz. Mening dizaynimga yopishib olganim uchun baribir kirish mumkin emas. Tekshiring:

-PIR har qanday pinga to'g'ridan -to'g'ri ulanishi mumkin (raqamli)

-LCD: 4 pinli haydash mumkin, har qanday pinga ulanishi mumkin (raqamli) +2 RS/E (raqamli) kerak bo'ladi.

-Buzzer: har qanday Arduino piniga to'g'ridan -to'g'ri ulanishi mumkin (raqamli)

Men ishlatgan pinout kodda ko'rinadi. Hamma narsani bir -biriga bog'lab qo'yish juda oson, siz ularni birma -bir qilishingiz mumkin, 1 ta sensorning to'liq ishlashiga ishonch hosil qiling, so'ngra ikkinchisiga o'ting, xato qilishingiz mumkin bo'lgan narsa - simlarni noto'g'ri joylarga noto'g'ri ulash (masalan, vcc almashtirish) /gnd sensori uchun, hozirgacha bu hech qachon mening qurilmalarimni o'ldirmagan). Men shuni ta'kidlashni istardimki, men uchun juda ko'p VCC va GND yig'ilgan edi, men ularni terminal chizig'idan siqib chiqara olmadim, shuning uchun hammasini lehimladim.

DHTlar haqida boshqa loyihalarim haqida ham unutmang: agar siz DHT kutubxonasini kodingizga qo'ysangiz va DHT sensori ulanmagan yoki noto'g'ri DHT ulangan bo'lsa (masalan, siz foydalanayotgan kodda 11 ko'rsatilgan bo'lsa), bu dasturga olib kelishi mumkin. boshida abadiy osilib qolish.

PIR harakatini aniqlash datchiklari haqida, mening rasmimda ko'rib turganingizdek, ularning soxta qalbakilashtirishlari bor, aslida men Ebaydan haqiqiyini sotib olish qiyin bo'lardi. Soxta narsalar, hatto uzoq muddatda ham, xuddi shunday ishlaydi, lekin ularning oynasi aks ettirilgan, bu esa + va - pimlarning teskari aylanishiga olib keladi, shuningdek ularni tanib olish oson: ko'k pcb bilan kelganda odatdagidek yashil emas, teglar yo'q potmetrlar. Men qutisidan haqiqiy topganimga omadli bo'ldim, aks holda pozitsiyani o'zgartirish men uchun ikkita LEDni qamrab oladi. Men shuni bildimki, ikkala qozon ham o'rtada o'ralgan, men uchun ishlaydi. Bu sizga sezish uchun etarlicha uzoq masofani beradi, agar harakat bo'lsa, raqamli oyoq taxminan bir daqiqa davomida yuqori holatda bo'ladi, shuning uchun siz kodni to'ldirishingiz shart emas. Soxta narsalarda qaysi tomoni ekanligini aniqlash oson - va + pinlarga ulangan elektrolitik qopqoqlar uchun mos keladigan oyoqlarga qarang.

Qutini kesish uchun men olmosli dremel boshini (bu juda yaxshi ishlagan, lekin juda yaxshi ishlagan) va oddiy burg'ulash mashinasini ishlatardim. Bu birlashma qutilari bilan ishlash oson va men yopishtirishni yoqtirmasam ham, ularni qurishda qo'limda vintlar va boltlar bo'lmagan, shuning uchun narsalarni yopishtirish uchun savdolashib olganman (ularni keyinchalik osonlikcha qizdirish va ajratish mumkin. plomba bo'lmagan bir xil yopishtiruvchi qurol).

2 -qadam: dasturiy ta'minot dizayni

Dasturiy ta'minot dizayni
Dasturiy ta'minot dizayni
Dasturiy ta'minot dizayni
Dasturiy ta'minot dizayni

Arduino kodi ham oddiy, u har bir tsikl boshida sensorning barcha o'qilishini tortadi. Agar harakat yoki tutun bo'lsa, LEDlarni yoqadi, shuningdek tutun bo'lsa signal signalini chiqaradi (bu faqat blokirovka kodi, shuning uchun men uni qisqartirdim), so'ngra ma'lumotlarni LCD displeyda ko'rsatadi va nihoyat kompyuterga yuboradi. portni suv bosmaslik uchun 10 soniya ushlab turish muddati bilan.

Ushbu loyihada Arduino-> OrangePI bir tomonlama aloqasi qo'llaniladi, hech qanday buyruqlar bajarilmaydi. Men buni boshqa loyihalarimdan birida bajargan bo'lsam -da, LCD displeyning bir satrini o'z xabari bilan yozish uchun LCD_PRINT1 yoki LCD_PRINT2 ni yuborishi mumkin edi (masalan: IP manzili, ish vaqti, tizim sanasi, cpu foydalanish), ekran maydoni 3 ta sensordan ma'lumotlarni ko'rsatish uchun juda kichik, men hatto bezovta qilmadim. SOL va SMK qiymatlari 4 ta 0000-1023 raqamiga qadar ko'tarilishi mumkin, ular ekranda 8 ta qimmatli belgini oladi.

LCD displeyda siz har bir o'lchangan qiymatdan keyin oq bo'shliqlar ("") yozuvi qo'llaniladigan kodda kichik hiyla -nayrangni ko'rishingiz mumkin, keyin men yangi piktogramma va ma'lumotlarni joylashtirish uchun kursorni belgilangan joylarga o'tkazaman. Bu erda, chunki LCD raqamlarni tushunish uchun aqlli emas, u nimani oladi, masalan, agar sizda quyosh qiymati 525 bo'lsa, u birdaniga 3 ga kamaygan bo'lsa, u 325 -ni ko'rsatadi, chunki eski axlatni ekranda qoldiradi. Mana.

OrangePI -da ishlaydigan va atrof -muhit ma'lumotlarini hisobga oladigan va kerak bo'lganda elektron pochta xabarlarini yuboradigan C boshqaruv kodi.

OrangePI Armbian (Debian Stretch -ga asoslangan) yozadi. Men buni dasturiy ta'minot qismiga qo'shaman, chunki u hal qilgan muammosi. Mana, qurilmaning o'rtacha quvvati:

0,17 A - faqat Arduino + sensorlar

0,5-0,62 A - OrangePI yuklanishi

0,31 A - to'q sariq PI ishlamayapti

0,29 A - to'q sariq PI o'chirilgan (uni o'chira olmaysiz, ACPI yoki shunga o'xshash narsa yo'q)

0,60 A - Stress testi 100% protsessor 4 yadroda

Menda bu OrangePI uzoq vaqtdan beri qutida edi. Eski yadro bilan qurilma juda ko'p oqimni to'kdi (hisoblagich 0,63 A atrofida cho'qqiga chiqdi), PSU, ehtimol, yuklanmagan bo'lsa, yuklash jarayoni tiqilib qoldi va men 2 ethernet LEDni yondirdim. doimiy va hech narsa qilmasdan.

Endi bu juda zerikarli, chunki HLK-5M05 5Vda 5 Vt quvvatga ega bo'lishi mumkin, bu esa 1 Amperni ta'minlay oladi, lekin Xitoydan chiqadigan bu qurilmalar bilan siz hech qachon bilmaysiz, 0,63 A cho'qqisi nominal maksimaldan ancha past edi. qiymat. Shunday qilib, men oddiy qayta ishga tushirish testlarini o'tkazardim, 10 ta qayta yuklashdan OrangePI faqat ikki marta muvaffaqiyatli yuklanadi, bu meni loyihadan chiqarib yuborishga majbur qildi, chunki men sxemalarda noto'g'ri xatolarni yoqtirmayman. Shunday qilib, men dasturiy ta'minotdan yuklash vaqtida quvvat sarfini kamaytirishning yo'lini topa boshladim (chunki bu faqat muammo edi) va script.bin -ni sozlash haqida gapiradigan maqolani topdim, lekin bu Orange PI PC va fayllar omborda yo'q edi, shuning uchun oxirgi chora sifatida men dasturiy ta'minotni, yadroni va boshqa hamma narsani yangilash uchun sehrli "to'g'ri yangilash" qildim, chunki u kamroq to'kiladi va qurilma ishga tushadi va:

Linux silverlight 4.14.18-sunxi #24 SMP 9-fevral, 9-fevral, 16:24:32 CET 2018 armv7l GNU/Linux

Linux silverlight 4.19.62-sunxi #5.92 SMP 31-iyul, chorshanba 22:07:23 CEST 2019 armv7l GNU/Linux

Ishladi! Dasturiy ta'minot muammosiga qo'shimcha qurilmalarni tashlab yuborish, odatda, dangasa java ishlab chiquvchilaridir, lekin bu holda biz dasturiy ta'minot bilan bog'liq muammoni hal qildik, bu qanday katta muvaffaqiyat. Men har bir holatda yuklangan yana 20 ta qayta yuklash testini o'tkazdim. Shunga qaramay, shuni ta'kidlashni istardimki, Opi -ni yoqish (ulanish/uzish) kuchining oshishi shunchalik kattaki, u Arduino -ni istalgan vaqtda qayta tiklaydi (oddiy qayta yuklash LCD displeyini miltillaydi, lekin boshqa muammo tug'dirmaydi), lekin bu muammo qolmoqda. yashiringan, chunki 2 birgalikda yuklanadi.

Men yadro modullarini ham ko'rib chiqdim:

usb_f_acm u_serial g_serial libcomposite xradio_wlan mac80211 Lima 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

Bulardan bizga aslida nima kerak? OK, pwr va termal foydali bo'lishi mumkin, lekin ovozli, ketma -ket port, wifi (singan hw allaqachon) bizga kerak emas, bularning hammasini qora ro'yxatga kiritish mumkin. Bundan tashqari, men faqat kerakli modullarga ega bo'lgan maxsus yadro yarataman.

Bizga kerak bo'lgan va u sukut bo'yicha yuklanmagan - bu CDC ACM, Arduino bilan bog'lanish uchun uni yoqish:

echo "cdc-acm" >> /etc /modules

Shundan so'ng siz ulanishni allaqachon sinab ko'rishingiz mumkin:

ekran /dev /ttyACM0 9600

Status ma'lumotlari har 10 soniyada yuborilishini ko'rishingiz kerak.

Ogohlantirishlar va monitoring

Ogohlantirishlarga kelsak, men C boshqaruv kodiga system () qo'ng'iroqlarini kiritdim, u ma'lumotlarni ketma -ket qabul qiladi, shuning uchun hech qanday tashqi vositalar talab qilinmaydi. Ba'zi bir ogohlantirish misollari:

- Harorat 30 darajadan oshadi

Namlik 70 % dan oshadi (serverlar uchun yaxshi emas)

- Xonada harakat aniqlandi (agar siz server xonangizda davom etsangiz, bu sizni bezovta qilishi mumkin)

- Tutun yoki gaz aniqlandi (100 dan ziyod ogohlantirishlarga jiddiy yondashish mumkin, men bu sensor bilan o'ynaganman va u ko'p narsalarda yonadi, masalan, lehim bilan datchik yonida tutun paydo bo'lishi 50 dan oshib ketishiga olib keladi, keyin sigaret chekayotganda) u 500 gacha ko'tarildi, hatto uzoqdan oddiy deodorantdan gaz topdi)

Tarixiy ma'lumotlarni saqlash uchun men vositani ishlab chiqishdan bezovta qilmadim, chunki bizda juda yaxshi monitoring tizimlari bo'lganida, g'ildirakni nima uchun kashf qilish kerak. Men buni shaxsiy sevimlilarim Zabbixga qanday qo'shish mumkinligi haqidagi misolni ko'rsataman:

apt-get install zabbix-agent

Oxiriga qo'shing: /etc/zabbix/zabbix_agentd.conf

UserParameter = silverlight.hum, bosh -1 /dev/shm/silverlight-zbx.log | awk -F "," '{chop etish $ 1}'

UserParameter = silverlight.tmp, bosh -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 2}' UserParameter = silverlight.sol, bosh -1 /dev/shm/silverlight-zbx.log | awk -F "," '{chop etish $ 4}' UserParameter = silverlight.mot, bosh -1 /dev/shm/silverlight-zbx.log | awk -F "," '{$ 5 chop etish' UserParameter = silverlight.smk, bosh -1 /dev/shm/silverlight-zbx.log | awk -F "," '{$ 6 chop etish' '

Zabbix_agentd -p ishga tushirilsa, endi tegishli qiymatlarni qaytarishi kerak:

farrux.xumor [t | 41]

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

Issiqlik indeksi, men uni yig'aman, lekin undan amaliy foydalanishni ko'rmayapman, shuning uchun u faqat qayd qilinadi. C boshqaruv kodida men 2 ta yozish funktsiyasini amalga oshirdim, birinchisi barcha ma'lumotlarni foydalanuvchilar uchun qulay bo'lgan formatda qayd qiladi:

[SILVERLIGHT] Qabul qilingan ma'lumotlar 2019-09-10 23:36:08 => Namlik: 44, Harorat: 22, Salom: 25, Quyosh: 0, Harakat: 0, Tutun: 21

[SILVERLIGHT] 2019-09-10 23:36:18 da olingan ma'lumotlar -10 23:36:29 => Namlik: 44, Harorat: 22, Salom: 25, Quyosh: 0, Harakat: 0, Tutun: 22 [SILVERLIGHT] Ma'lumotlar 2019-09-10 23:36:39 => da olingan. Namlik: 44, Harorat: 22, Salom: 25, Quyosh: 0, Harakat: 0, Tutun: 21

Ikkinchisi:

void logger2 (char *matn) {

FILE *f = fopen ("/dev/shm/silverlight-zbx.log", "w"); if (f == NULL) {printf ("Xotira jurnali faylini ochishda xato! / n"); qaytish; } fprintf (f, "%s", matn); fclose (f); qaytish; }

Bu xotiraga 1 laynerli jurnalni qo'yadi (sdcarddagi keraksiz rw operatsiyalarini yo'q qiladi), bu keyingi safar har doim yoziladi. Bu jurnal faqat 6 ta ma'lumotlar ustunini o'z ichiga oladi va vaqt tamg'asi yo'q, uni Zabbix oson o'qiydi.

Yakuniy bonus sifatida: Arduino -ni to'g'ridan -to'g'ri OrangePI -dan qanday dasturlash kerak, shuning uchun har safar qurilmaga yaqinlashib, noutbukni ulash shart emas.

2 xil yo'l bor:

-Oson yo'l: To'liq Arduino IDE -ni o'rnating va kutubxonalar X11 kabi uzoqdan ish stolidan foydalanadi, Xrdp, Xvnc, Nxserver va boshqalar.

-Qattiq usul: Arduino IDE -ni o'rnating va buyruq satridan foydalaning

Bu safar biz qiyin yo'lni bosib o'tamiz, chunki men X11 -ni serverlarga o'rnatishni yoqtirmayman. Buning uchun sizga 6 ta komponent kerak bo'ladi:

1, ARM 32 bit uchun Arduino IDE ->

2, Python serial-> apt-get install python-serial

3, Arduino Makefile loyihasi -> git klon

4, DHT kutubxonasi

5, Sparkfun taxtasi ta'riflari

6, SilverLight.ino, asosiy kod

Buni osonlashtirish uchun oxirgi 4 ball (sketchbook.tgz) uchun kerakli fayllarni to'pladim, shuning uchun sizga faqat birinchi 2 kerak bo'ladi

Birinchidan, USB portiga rw kirish huquqiga ega bo'lgan oddiy foydalanuvchi yaratish eng yaxshisidir:

qo'shimcha kumush

usermod -a -G kumush

Sketchbook.tgz -ni yangi yaratilgan foydalanuvchining uy katalogidagi qurilmaga SCP va uni shu erda chiqarib oling:

CD /uy /kumush

tar xvzf sketchbook.tgz

Grafik IDE -dan foydalanganda kaput ostida nima bo'layotganini tushunish uchun:

Arduino IDE -dan foydalanganda Arduino eskizini yaratish jarayoni Arduino veb -saytida tasvirlangan https://www.arduino.cc/en/Hacking/BuildProcess va bu erda batafsil: https://www.arduino.cc/ uz/Hacking/BuildProcess

Umuman olganda, standart Arduino yaratish jarayoni quyidagicha:

. Ino fayllarini asosiy eskiz fayliga birlashtirish. Asosiy eskiz faylini o'zgartirish: #include ifodasini qo'shing; asosiy eskiz faylidagi barcha funktsiyalar deklaratsiyalarini (prototiplarini) yaratish; main.cxx nishonini asosiy sketch fayliga qo'shing. Kodni ob'ekt fayllariga kompilyatsiya qiling. Ob'ekt fayllarini Arduino -ga yuklashga tayyor bo'lgan.hex faylini yaratish uchun bog'lang.

Arduino standart yaratish jarayoni va Arduino-Makefile yordamida qurish jarayoni o'rtasida bir oz farq bor:

Faqat bitta.ino fayl qo'llab -quvvatlanadi. Funktsiya deklaratsiyalari avtomatik ravishda.ino faylida yaratilmaydi. Foydalanuvchi to'g'ri funktsiya deklaratsiyasini yaratish haqida g'amxo'rlik qilishi kerak.

Qurilish jarayonining yuragi Makefile hisoblanadi. Xavotir olmang, hamma narsa siz uchun tayyorlangan, SparkFun seriyasi kabi nostandart taxtalar uchun shunday tuzishda biroz murakkabroq.

BOARD_TAG = promokro

ALTERNATE_CORE = SparkFun BOARD_SUB = 16MHz

Va siz yozishingiz kerak bo'lgan narsa: yuklash (avval.hex fayllarini yaratadi, keyin ularni yuklash uchun avrdude -dan foydalanadi), u quyidagicha bo'ladi:

mkdir -p build-promicro-16MHzatmega32U4

reset qilish make [1]: '/home/silver/sketchbook'/home/silver/sketchbook/Arduino-Makefile/bin/ard-reset-arduino --caterina/dev/ttyACM0 make [1] katalogiga kirish /home/silver/sketchbook 'do_upload make make [1]:'/home/silver/sketchbook 'katalogiga kirish /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 flesh: w: build -promicro -16MHzatmega32U4/sketchbook. hex: i dasturchiga ulanish:. Topilgan dasturchi: Id = "CATERIN"; type = S Software Version = 1.0; Uskuna versiyasi berilmagan. Dasturchi avtomatik qo'shishni qo'llab -quvvatlaydi. Dasturchi buferli xotiraga kirishni qo'llab -quvvatlaydi = 128 bayt. Dasturchi quyidagi qurilmalarni qo'llab-quvvatlaydi: Qurilma kodi: 0x44 avrdude: AVR qurilmasi ishga tushirildi va ko'rsatmalarni qabul qilishga tayyor: Qurilma imzosi = 0x1e9587 (ehtimol m32u4) avrdude: "build-promicro-16MHzatmega32U4/sketchbook.hex" kirish faylini o'qish: fleshka yozish (11580 bayt): avrdude: 11580 bayt flesh yozilgan avrdude: safemode: Sigortalar OK (E: CB, H: D8, L: FF) bajarildi. Rahmat.

Sizga rahmat, avrdude, va endi bizning Arduino yangi kod bilan qayta o'rnatildi va dasturlashtirildi, siz uni vi yoki sevimli muharriringiz yordamida tahrir qilishingiz mumkin, hech qanday IDE kerak emas. Shuni ta'kidlashni istardimki, siz yuklash paytida C boshqaruv dasturini, ekranni yoki arduino -ga kiradigan boshqa narsalarni yopishingiz kerak, aks holda qayta o'rnatilgandan so'ng port /dev /ttyACM1 sifatida qaytadi.

3 -qadam: Yopish va qilinadigan ishlar ro'yxati

Yopish va qilinadigan ishlar ro'yxati
Yopish va qilinadigan ishlar ro'yxati
Yopish va qilinadigan ishlar ro'yxati
Yopish va qilinadigan ishlar ro'yxati
Yopish va qilinadigan ishlar ro'yxati
Yopish va qilinadigan ishlar ro'yxati

Men bu atrof -muhit sensori qutisini server xonalari uchun yaratgan bo'lsam ham, siz uni kimyo/elektron laboratoriyalar, omborlar, oddiy xonalar va boshqa narsalar uchun ishlatishingiz mumkin. Ha, chunki u TCP/IP dan foydalangani uchun bu IoT qurilmasidir, G men uni yanada tashabbuskor qilish uchun shu nomga qo'yishim kerak edi:)

Xonadagi chiroqlarni avtomatik ravishda yoqish uchun siz apparat va dasturiy ta'minotni osongina o'zgartirishingiz mumkin. Mening boshqa loyihamga qarang: Feniks soyasi, bu yorug'likni boshqarish uchun qanday ishlaydi, sizda hamma narsa bor, xuddi shu ishni bajarish uchun (sizda harakat aniqlangan ekan, chiroqlarni ushlab turish uchun taymerlar ishlatiladi) vaqt oralig'i, agar yana harakat bo'lsa, taymer uriladi).

OrangePI to'liq to'plamli Armbian bilan ishlaganda, imkoniyatlar cheksiz, siz grafiklarda tarixiy ma'lumotlarni ko'rsatish uchun PHP -dan noldan yozilgan mahalliy veb -interfeys yaratishingiz mumkin. Agar siz o'zingizning server xonangizni kuzatib boradigan to'liq ochiq manba qurilmangiz bo'lsa, bundan yaxshiroq emasmi?

Tavsiya: