Mündəricat:

SilverLight: Server Odaları üçün Arduino Əsaslı Ətraf Mühit Monitoru: 3 Addım (Şəkillərlə birlikdə)
SilverLight: Server Odaları üçün Arduino Əsaslı Ətraf Mühit Monitoru: 3 Addım (Şəkillərlə birlikdə)

Video: SilverLight: Server Odaları üçün Arduino Əsaslı Ətraf Mühit Monitoru: 3 Addım (Şəkillərlə birlikdə)

Video: SilverLight: Server Odaları üçün Arduino Əsaslı Ətraf Mühit Monitoru: 3 Addım (Şəkillərlə birlikdə)
Video: Otel Programı - [Giriş/Çıkış] İşlemleri 8- Oda değişikliğini nasıl yaparım?(aynı gün içinde) 2024, Iyul
Anonim
SilverLight: Server Odaları üçün Arduino Əsaslı Ətraf Mühit Monitoru
SilverLight: Server Odaları üçün Arduino Əsaslı Ətraf Mühit Monitoru
SilverLight: Server Odaları üçün Arduino Əsaslı Ətraf Mühit Monitoru
SilverLight: Server Odaları üçün Arduino Əsaslı Ətraf Mühit Monitoru
SilverLight: Server Odaları üçün Arduino Əsaslı Ətraf Mühit Monitoru
SilverLight: Server Odaları üçün Arduino Əsaslı Ətraf Mühit Monitoru
SilverLight: Server Odaları üçün Arduino Əsaslı Ətraf Mühit Monitoru
SilverLight: Server Odaları üçün Arduino Əsaslı Ətraf Mühit Monitoru

Bir dəfə şirkətimin server otağında istiliyin monitorinqi üçün ətraf mühitin araşdırılması üçün tapşırıq verildi. İlk fikrim belə idi: niyə yalnız bir Raspberry PI və DHT sensoru istifadə etmirsiniz, OS qurğusu da daxil olmaqla bir saatdan az müddətdə qurula bilər. Bunun üçün gözü bağlı patronlardan soyuq cavab aldım ki, bunu etməyəcəyik, çünki onu qurmaq bir cihaz almaqdan daha çox iş saatlarına başa gələcək. Həyatımın bir hissəsi üçün dar düşüncəli insanları bu cür qəbul etmək bir şey idi və Ebaydan bəzi müəssisə dərəcəli EATON zibili sifariş etdim və zəng etdim, amma o anda öz server otağım üçün tamamilə Açıq Mənbə Arduino tikəcəyimə qərar verdim. sifariş verdiyimdən daha yaxşı olacaq əsaslı bir cihaz.

Bu layihə SilverLight adlı koddur, məndən bu adları hardan aldığımı soruşma:) Sadəcə parlaq yarım akril qutuya baxdım və bu adla qərar verdim, bundan sonra öyrəndiyim microhoof məhsulu ilə heç bir əlaqəsi yoxdur..

Addım 1: Avadanlıq Dizaynı

Avadanlıq Dizaynı
Avadanlıq Dizaynı
Avadanlıq Dizaynı
Avadanlıq Dizaynı
Avadanlıq Dizaynı
Avadanlıq Dizaynı

Ticarət avadanlıqlarına ümumi baxış.

Tamam, buna görə böyük bir fikrə bir ətraf mühit monitoru qoymaq üçün başlamadım, amma bunun üçün bir bazar var, buna görə bunların nə edə biləcəyini görək:

Ətraf mühitin monitorinq cihazı UYĞUNLUQ

10/100Mb Şəbəkə-MS, PXGUPS, PXGPDP və PXGMS.

10/100Mb ConnectUPS-X, ConnectUPS-BD və FW V3.01 və daha yüksək olan ConnectUPS-E. ÖLÇÜLƏR (LXWXH)

2.26 x 1.48 x 1.15 (düym) 57.6 x 37.6 x 29.3 (mm) AĞIRLIQ

1.19 oz (34 q)

Çox faydalı məlumatdır, elə deyilmi? Çox şey edə bilmədikləri üçün narahat olmayın. Hətta işə başlamaq üçün, UPS-in ayrıca satın aldığınız ətraf mühit sensoru ilə əlaqəli başqa bir bahalı əlavə karta sahib olması lazım olacaq, ümumiyyətlə standart CAT5 kabeli ilə (standart bir şey olmadığı üçün bu porta heç nə bağlamağa belə cəhd etməyin. bunun haqqında). Cihazın "istiləşmək" üçün 10 dəqiqəyə ehtiyac olduğunu iddia edirlər ki, əslində saatlar idi və voila etdikdən sonra yavaş -yavaş yenilənən java interfeysində göründü və bizdə temperatur və rütubət var. Uyarılara əsaslanan şərtlər qurmaq bu nöqtədən asan idi, amma kimin daha yaxşı bir şey quracağına əhəmiyyət verir.

Bu layihə bir çox layihələrimin birləşməsidir: Natalia hava stansiyası, Feniks kölgəsi. Qutu aşağıdakı ekoloji məhdudiyyətləri izləyə bilər:

  • İstilik/rütubət/istilik indeksi
  • LPG, Duman, Alkol, Propan, Hidrogen, Metan və Karbonmonoksit konsentrasiyaları (MQ2)
  • Günəş həssaslığı (server otağında işıq yanır?)
  • Motion PIR sensoru (hətta otağa kimsə girəndə hərəkət sensoru sayəsində işığı avtomatik olaraq aça/söndürə bilərsiniz)

Bütün bu məlumatlar bir LCD ekranda gözəl bir şəkildə göstərilir və eyni zamanda bir kompüterə (Orange PI Zero) daha da işlənmə və xəbərdarlıqlar üçün göndərilir. DHT və MQ2 -nin rəqəmsal pinləri kimi rəqəmsal sensorları birbaşa OrangePI -yə bağlamaq mümkün olsa da, həmişə bu vəzifələr üçün və ayrıca LCD -ni yeniləmək və digər aşağı səviyyədə etmək üçün xüsusi mikrosxemlərdən istifadə etməyi üstün tuturam. Arduinonun heç bir şeyə inanılmaz olduğu və uzun illər etibarlı şəkildə işləyə biləcəyi (əslində 24/7 işləyən tək bir Arduino hələ də mənim üçün uğursuz oldu). OrangePI, iş yükü üçün yararsız, bsd dəstəyi yoxdur, inteqrasiya edilmiş wifi şişirdilmiş və s. (USB) vasitəsilə sensor oxunuşlarını götürmək və emal etmək kimi kiçik iş yükünü asanlıqla idarə edə bilən çatışmazlıqları olan (10 dollarlıq bir kompüterdir).

Bu, aşağıdakı komponentləri tələb edən çox sadə bir layihə aparatıdır:

  • Arduino PRO Micro
  • LCD ekran 2x16 xarakterli RGB
  • AC-DC izolyasiya açarı güc modulu 220V ilə 5V HLK-5M05 (bunlar Arduino/ESP layihələri üçün çox yaxşıdır), bu 5V/5W versiyasıdır!
  • 2x300ohm rezistorlar
  • 2 qatlı (qırmızı/yaşıl)
  • PIR hərəkət sensoru
  • MQ2 sensoru
  • DHT22
  • LDR
  • 2X10Kohm müqavimət
  • Buzzer
  • Portağal PI Sıfır
  • mini USB məlumat kabeli

Sadəcə istifadə olunan adi çörək taxtası üçün bir PCB düzəltməkdən də narahat olmadım, çünki komponentlər sadəcə Arduinoya qoşula bilər (əlavə olunan şəkillərə baxın):

-DHT22, VCC (rəqəmsal) üçün 10K çəkmə tələb edəcək

-LDR üçün GND (analoq) üçün 10K pulldown tələb olunacaq

-MQ2 hər hansı bir analog pinə (analoq) birbaşa qoşula bilər <analoqdan istifadə etməyi üstün tutun, çünki nə üçün cihazın arxasındakı bir qazanı YÜKSƏK və ya Hər halda əlçatmaz olan dizaynımdakı yapışqan səbəbiylə aşağı. Yoxlayın:

-PIR hər hansı bir pinlə birbaşa əlaqələndirilə bilər (rəqəmsal)

-LCD: 4 sancaqla idarə oluna bilər, istənilən pinə qoşula bilər (rəqəmsal) +2 RS/E (rəqəmsal)

-Buzzer: hər hansı bir Arduino pininə birbaşa qoşula bilər (rəqəmsal)

İstifadə etdiyim pinoutu kodda görmək olar. Bundan sonra hər şeyi bir -birinə bağlamaq olduqca sadədir, bunları tək -tək edə bilərsiniz, 1 sensorun mükəmməl işlədiyindən əmin olun, sonra digərinə keçin, səhv edə biləcəyiniz şey səhvən telləri yanlış yerlərə bağlamaqdır (məsələn, vcc dəyişdirmə) /gnd bir sensor üçün, indiyə qədər bu heç bir cihazımı öldürmədi). Burada qeyd edim ki, mənim üçün yığılmış çox sayda VCC və GND var idi, onları terminal zolağından sıxa bilmədim, buna görə hamısını lehimlədim.

DHT -lər haqqında digər layihələrimi də unutma: DHT kitabxanasını kodunuza qoyursunuzsa və DHT sensoru bağlanmırsa və ya səhv DHT bağlanırsa (məsələn, istifadə etdiyiniz kodda 11) proqrama səbəb ola bilər. başlanğıcda sonsuza qədər asmaq.

PIR hərəkət aşkarlama sensorları haqqında, mənim şəklimdə gördüyünüz kimi bunların çoxlu saxta saxtakarlıqları var, əslində Ebaydan əslini almaq belə çətin olardı. Sahteciliklər uzunmüddətli işlərdə də eyni şəkildə işləyir, lakin onların dövrəsi aynalıdır ki, bu da + və - sancaqların tərsinə çevrilməsinə səbəb olur, bunları da tanımaq asandır: mavi pcb ilə gəlmək adi yaşıl deyil, etiketləri yoxdur potmetrlər. Qutumda orijinal bir şey tapdığım üçün şanslıyam, əks halda mövqeyi dəyişdirmək mənim üçün 2 ledi əhatə edəcək. Gördüm ki, hər iki qazan ortada əyilib mənim üçün işləyir. Bu, hərəkət edərkən rəqəmsal ayağın təxminən bir dəqiqə YÜKSƏK mövqedə saxlanılacağını hiss etməyiniz üçün kifayət qədər uzun məsafə təmin edəcək, buna görə bunun üçün kod yazmağa ehtiyac yoxdur. Saxta olduqda, hansı tərəfin olduğunu müəyyən etmək asandır - və + pinlərə bağlı elektrolitik qapaqlar üçün uyğun ayaqlara baxın.

Qutunu kəsmək üçün almaz dremel başlığı (həddindən artıq çox idi, amma əla işləyirdi) və adi qazma maşını istifadə etdim. Bu qovşaq qutuları işləmək asandır və yapışdırmağı sevməsəm də, tikərkən əllərimdə vintlər və vintlər yox idi, buna görə də əşyaları bir -birinə yapışdırmaqla məşğul olurduq (bu da sonradan asanlıqla qızdırıla bilər və sonra parçalana bilər. İçində filament olmayan eyni yapışqan tüfəng).

Addım 2: Proqram Dizaynı

Proqram Dizaynı
Proqram Dizaynı
Proqram Dizaynı
Proqram Dizaynı

Arduino kodu da sadədir, hər döngənin əvvəlində bütün sensor oxunuşlarını çəkir. Hərəkət və ya tüstü varsa LED -ləri yandırın və tüstü varsa siqnalda siqnalizasiya siqnalı çalın (bu, qısa etdiyim yeganə blok kodudur), sonra məlumatları LCD -də göstərir və nəhayət kompüterə göndərir limanı su basmamaq üçün 10 saniyəlik gözləmə müddəti ilə.

Bu layihə Arduino-> OrangePI-dən bir tərəfli ünsiyyətdən istifadə edir, heç bir əmr tətbiq olunmur. Bunu kompüterin LCD_PRINT1 və ya LCD_PRINT2 göndərə biləcəyi digər bir layihəmdə etdiyim kimi bunu etmək mümkün olsa da, LCD ekranın bir sətrini öz mesajı ilə yaza bilər (məsələn: ip ünvanı, iş vaxtı, sistem tarixi, cpu istifadəsi), ekran sahəsi 3 sensordan məlumatları göstərmək üçün o qədər kiçikdir ki, heç narahat da olmadım. SOL və SMK dəyərləri, hər ikisi də ekranda 8 dəyərli simvol tutaraq 0000-1023 4 rəqəminə qədər gedə bilər.

LCD ilə, hər ölçülmüş dəyərdən sonra ağ boşluqların ("") çapının tətbiq olunduğunu göstərən kiçik bir hiylə görə bilərsiniz, sonra yeni nişanlar və məlumatları yerləşdirmək üçün kursoru sabit mövqelərə keçirirəm. LCD rəqəmləri anlamaq üçün o qədər də ağıllı olmadığı üçün oradadır, məsələn, nə əldə etdiyini çəkir və məsələn, birdən -birə 3 -ə düşən 525 günəş enerjisinə sahib olsanız, 325 göstərəcək ki, köhnə zibili ekranda qoyacaq. orada

OrangePI -də işləyən və ətraf mühit məlumatlarını qeyd edən və lazım olduqda e -poçt xəbərdarlıqları göndərən C nəzarət kodu.

OrangePI Armbian (Debian Stretch -ə əsaslanan yazı zamanı) işləyir. Bunu həll etdiyim bir problem olduğu üçün bunu proqram hissəsinə daxil edəcəyəm. Cihazın orta güc boşalması:

0.17 A - yalnız Arduino + sensorlar

0.5-0.62 A - OrangePI yüklənməsi

0.31 A - Boş vəziyyətdə narıncı PI

0.29 A - Narıncı PI söndürüldü (həqiqətən bağlaya bilməz, ACPI və ya buna bənzər bir şey yoxdur)

0.60 A - 4 nüvədə 100% CPU istifadəsi testi

Bu OrangePI -ni uzun müddətdir bir qutuda saxlayırdım. Köhnə kernel ilə cihaz o qədər çox cərəyan keçirdi (sayğacın dediyi kimi 0.63 A ətrafında zirvəyə çatdı) PSU, ehtimal ki, sadəcə açılmadığını təmin edə bilmədi, yükləmə prosesi ilişdi və 2 ethernet ledini yandırdım daim və heç nə etmədən.

HLK-5M05, 5V gücündə 5W gücündə 1 Amper təmin edə biləcəyini iddia etdiyi üçün bu, əsəbi bir şeydir, ancaq bu cihazların Çindən çıxdığını heç vaxt bilmirsiniz, 0.63 A zirvəsi nominal maksimumdan xeyli aşağı idi. dəyər. Beləliklə, sadə reboot testləri keçirirdim, 10 rebootdan OrangePI yalnız iki dəfə uğurla açılırdı ki, bu da məni sxemdən atmaq məcburiyyətində qoyurdu, çünki sxemlərdə səhv uyğunsuz davranışları sevmirəm. Mən googling etməyə başladım, bəlkə də proqramdan yüklənmə vaxtında enerji istehlakını azaltmağın bir yolu var (o vaxtlar bu yalnız bir problem idi) və script.bin -in dəyişdirilməsindən bəhs edən bir məqalə tapdım, ancaq Orange PI PC və fayllar anbarda yox idi, buna görə də son çarə olaraq firmware, kernel və digər hər şeyi yüksəltmək üçün sehrli "uyğun bir yüksəliş" etdim, daha az boşalacağını və cihazın açıla biləcəyini və

Linux silverlight 4.14.18-sunxi #24 SMP Cümə Fevral 9 Fevral 16:24:32 CET 2018 armv7l GNU/Linux

Linux silverlight 4.19.62-sunxi #5.92 SMP Çər 31 İyul 22:07:23 CEST 2019 armv7l GNU/Linux

İşlədi! Bir proqram probleminə hardware atmaq ümumiyyətlə tənbəl java tərtibatçılarıdır, amma bu vəziyyətdə proqramla bağlı bir hardware problemini nə qədər böyük bir uğurla həll etdik. Cihazın hər vəziyyətdə açıldığı 20 -yə yaxın yenidən yükləmə testi etdim. Hələ də qeyd edərdim ki, Opi -ni açmaqdan (bağlamaq/ayırmaqdan) gələn güc artımı o qədər böyükdür ki, istənilən vaxt Arduino -nu sıfırlayacaq (sadə bir yenidən başlatma LCD -ni titrədəcək, lakin başqa problem yaratmayacaq), amma bu problem qalmaqdadır Gizli, çünki 2 birlikdə açılacaq.

Nüvə modullarına da baxdım:

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

Bunlardan həqiqətən nəyə ehtiyacımız var? Tamam, pwr və termal faydalı ola bilər, amma səs, serial port, wifi (artıq qırılmış hw) bunların hamısına ehtiyac duymuruq qara siyahıya. Bundan sonra yalnız lazımi modullarla xüsusi bir nüvə yaradacağam.

Ehtiyacımız olan və standart olaraq yüklənməyən şey, Arduino ilə əlaqə qurmaq üçün CDC ACM -dir:

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

Bundan sonra artıq əlaqəni sınaya bilərsiniz:

ekran /dev /ttyACM0 9600

Status məlumatlarının hər 10 saniyədə bir göndərildiyini görməlisiniz.

Xəbərdarlıqlar və monitorinq

Xəbərdarlıqlara gəldikdə, məlumatları serialdan alan C nəzarət koduna system () zənglərini qoydum, buna görə heç bir xarici vasitəyə ehtiyac yoxdur. Bəzi xəbərdarlıq nümunələri:

- Temperatur 30 dərəcədən yuxarı qalxır

- Nəmlik 70 % -dən çoxdur (serverlər üçün sağlam deyil)

- Otaqda hərəkət aşkarlandı (server otağınıza davam etsəniz bu əsəbi ola bilər)

- Duman və ya qaz aşkarlandı (100 -dən çox xəbərdarlıq ciddi qəbul edilə bilər, mən bu sensorla oynadım və bir çox şey üçün açılır, məsələn, lehimləmə dəmiri ilə sensorun yanında tüstü yaratmaq, sonra siqaret çəkərkən 50 -dən bir qədər çox nəticələndi o 500 -ə qədər çivildi, hətta uzaqdan normal deodorantdan qaz aşkar etdi)

Tarixi məlumatları saxlamaq üçün bir vasitə hazırlamaqda çətinlik çəkmədim, çünki orada əla monitorinq çərçivələri olanda niyə təkəri yenidən kəşf etməliyik. Bunun şəxsi sevdiyim Zabbix -ə necə inteqrasiya ediləcəyinə dair bir nümunə göstərəcəyəm:

apt-get zabbix-agent qurun

Sonuna əlavə edin: /etc/zabbix/zabbix_agentd.conf

UserParameter = silverlight.hum, baş -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 1}'

UserParameter = silverlight.tmp, baş -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 "," '{print $ 6}'

Zabbix_agentd -p işləyərkən indi müvafiq dəyərləri qaytarmalıdır:

silverlight.hum [t | 41]

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

İstilik indeksi, toplayıram, amma praktiki istifadəsini görmürəm, belə ki, sadəcə qeyd olunur. C nəzarət kodunda 2 giriş funksiyasını tətbiq etdim, birincisi bütün məlumatları istifadəçi dostu formatda qeyd edəcək:

[SILVERLIGHT] Alınan məlumatlar 2019-09-10 23:36:08 => Rütubət: 44, Temp: 22, Salam: 25, Günəş: 0, Hərəkət: 0, Tüstü: 21

[SILVERLIGHT] Alınan məlumatlar 2019-09-10 23:36:18 => Rütubət: 44, Temp: 22, Salam: 25, Günəş: 0, Hərəkət: 0, Duman: 21 [SILVERLIGHT] Məlumatlar 2019-09 tarixində alındı -10 23:36:29 => Rütubət: 44, Temp: 22, Salam: 25, Günəş: 0, Hərəkət: 0, Duman: 22 [SILVERLIGHT] Məlumat 2019-09-10 23:36:39 daxilində alındı => Rütubət: 44, Temp: 22, Salam: 25, Günəş: 0, Hərəkət: 0, Duman: 21

İkinci:

void logger2 (char *mətn) {

FILE *f = fopen ("/dev/shm/silverlight-zbx.log", "w"); if (f == NULL) {printf ("Yaddaş qeyd faylını açarkən xəta! / n"); qayıtmaq; } fprintf (f, "%s", mətn); fclose (f); qayıtmaq; }

Bu, yaddaşa 1 layner girişi qoyacaq (sdcarddakı lazımsız rw əməliyyatlarını ortadan qaldıracaq) ki, bu da həmişə növbəti dəfə yazılacaq. Bu qeyddə yalnız 6 məlumat sütunu olacaq və zaman damgası yoxdur, Zabbix üçün asanlıqla oxunur.

Son bir bonus olaraq: Arduino -nu birbaşa OrangePI -dən necə proqramlaşdırmaq olar ki, hər dəfə cihaza yaxınlaşıb dizüstü kompüterinizi qoşmayın.

2 yol var:

-Asan yol: Tam Arduino IDE qurun və kitabxanalar X11 kimi uzaqdan idarəetmə, Xrdp, Xvnc, Nxserver və s.

-Çətin yol: Arduino IDE -ni quraşdırın və əmr satırından istifadə edin

X11 -i serverlərə yükləməyi sevmədiyim üçün bu dəfə çətin bir iş görəcəyik. Bunun üçün 6 komponentə ehtiyacınız olacaq:

1, ARM 32 bit üçün Arduino IDE ->

2, Python serialı-> apt-get python-serial yükləyin

3, Arduino Makefile layihəsi -> git clone

4, DHT kitabxanası

5, Sparkfun lövhəsinin tərifləri

6, SilverLight.ino, əsas kod

Daha asanlaşdırmaq üçün son 4 bal üçün lazım olan sənədləri (sketchbook.tgz) topladım, buna görə yalnız ilk 2 -yə ehtiyacınız olacaq

Əvvəlcə USB portuna rw girişi olan müntəzəm bir istifadəçi yaratmaq ən yaxşısıdır:

əlavə gümüş

usermod -a -G dialout gümüşü

Sketchbook.tgz -ni yeni yaradılmış istifadəçinin ev qovluğundakı cihaza SCP edin və oradan çıxarın:

cd /ev /gümüş

tar xvzf sketchbook.tgz

Qrafik IDE istifadə edərkən başlıq altında nələr olduğunu bir az başa düşmək üçün:

Arduino IDE istifadə edərkən bir Arduino eskizinin qurulması iş axını Arduino veb saytında https://www.arduino.cc/en/Hacking/BuildProcess və burada daha ətraflı burada təsvir edilmişdir: https://www.arduino.cc/ az/Hacking/BuildProcess

Ümumiyyətlə, standart Arduino qurma prosesi belədir:

. İno fayllarını əsas eskiz faylına birləşdirin. Əsas eskiz faylının çevrilməsi: #include ifadəsini əlavə edin; əsas eskiz sənədindəki bütün funksiyaların funksiya bəyannamələrini (prototiplərini) yaratmaq; hədəfin main.cxx faylının məzmununu əsas eskiz faylına əlavə edin. Kodu obyekt faylları üçün tərtib edin. Obyekt fayllarını Arduino -ya yükləmək üçün hazır olan bir.hex faylı yaratmaq üçün bağlayın.

Arduino standart qurma prosesi ilə Arduino-Makefile istifadə edərək qurma prosesi arasında bəzi kiçik fərqlər var:

Yalnız bir.ino faylı dəstəklənir. Funksiya bəyannamələri avtomatik olaraq.ino faylında yaradılmır. İstifadəçi düzgün funksiya bəyannamələrinin yaradılmasına diqqət yetirməlidir.

Quraşdırma prosesinin ürəyi Makefile -dir. Narahat olmayın, hər şey sizin üçün hazırlanmışdır, SparkFun seriyası kimi standart olmayan lövhələr üçün bu şəkildə tərtib edərkən bir az daha mürəkkəbdir.

BOARD_TAG = promicro

ALTERNATE_CORE = SparkFun BOARD_SUB = 16MHz

Və yazmağınız lazım olan hər şey: yükləmə (əvvəl.hex fayllarını quracaq, sonra yükləmək üçün avrdude istifadə edəcək), belə bir şeylə bitəcək:

mkdir -p build-promicro-16MHzatmega32U4

make make make [1]: '/home/silver/sketchbook'/home/silver/sketchbook/Arduino-Makefile/bin/ard-reset-arduino --caterina/dev/ttyACM0 make [1] qovluğuna daxil oluruq: /home/silver/sketchbook 'do_upload make [1]:'/home/silver/sketchbook '/opt/arduino-1.8.9/hardware/tools/avr/bin/avrdude -q -V -p atmega32u4 qovluğuna daxil olmaq - C /opt/arduino-1.8.9/hardware/tools/avr/etc/avrdude.conf -D -c avr109 -b 57600 -P/dev/ttyACM0 / -U flaş: w: build -promicro -16MHzatmega32U4/eskiz kitabı. hex: i Proqramçıya qoşuluram:. Proqramçı tapıldı: Id = "CATERIN"; type = S Software Version = 1.0; Hardware Versiyası verilməyib. Proqramçı avtomatik addr artımını dəstəkləyir. Proqramçı, bufer ölçüsü = 128 bayt olan tamponlu yaddaş girişini dəstəkləyir. Proqramçı aşağıdakı cihazları dəstəkləyir: Cihaz kodu: 0x44 avrdude: AVR cihazı başlatıldı və təlimatları qəbul etməyə hazırdı (11580 bayt): avrdude: 11580 bayt yazılmış avrdude: safemode: Sigortalar Tamam (E: CB, H: D8, L: FF) tamamlandı. Çox sağ ol.

Yaxşı təşəkkür edirəm, indi Arduino sıfırlanır və yeni kodla proqramlaşdırılır, yalnız vi və ya sevdiyiniz redaktorla yerli olaraq redaktə edə bilərsiniz, heç bir IDE -ə ehtiyac yoxdur. Qeyd edim ki, yükləyərkən həm C nəzarət proqramını, həm ekranı, həm də arduinoya daxil olan hər şeyi bağlamalısınız, əks halda sıfırlandıqdan sonra liman /dev /ttyACM1 olaraq geri qayıdacaq.

Addım 3: Bağlama və Ediləcəklər siyahısı

Bağlanma və Ediləcək işlər siyahısı
Bağlanma və Ediləcək işlər siyahısı
Bağlanma və Ediləcək işlər siyahısı
Bağlanma və Ediləcək işlər siyahısı
Bağlanma və Ediləcək işlər siyahısı
Bağlanma və Ediləcək işlər siyahısı

Bu ətraf mühit sensoru qutusunu server otaqları üçün yaratmış olsam da kimya/elektron laboratoriyalar, anbarlar, adi otaqlar və başqa hər şey üçün istifadə edə bilərsiniz. Bəli, TCP/IP istifadə etdiyi üçün bir IoT cihazıdır, G daha da təşəbbüskar olmaq üçün bunu başlığa da əlavə etməliydim:)

Otaqdakı işıqları avtomatik olaraq yandırmaq üçün həm hardware, həm də proqram təminatını asanlıqla dəyişə bilərsiniz. Digər layihəmə bir nəzər salın: Feniks kölgəsi işığın idarə olunması üçün necə işləyir, eyni şeyi etmək üçün əlinizdə olan bütün qurğular var (işığın içərisində hərəkət olduğu müddətdə işıqları saxlamaq üçün tutma taymerlərindən istifadə edir. vaxt dövrü, yenidən hərəkət olarsa, bir taymer vurulacaq).

OrangePI tam yığın Armbian işləyərkən imkanlar sonsuzdur, tarixi məlumatları qrafiklərdə göstərmək üçün php -də sıfırdan yazılmış yerli bir veb interfeysi yarada bilərsiniz. Server otağınızı izləyən tamamilə Açıq Mənbə cihazınızın olması daha yaxşı deyilmi?

Tövsiyə: