İçindekiler:

SilverLight: Sunucu Odaları için Arduino Tabanlı Çevre Monitörü: 3 Adım (Resimlerle)
SilverLight: Sunucu Odaları için Arduino Tabanlı Çevre Monitörü: 3 Adım (Resimlerle)

Video: SilverLight: Sunucu Odaları için Arduino Tabanlı Çevre Monitörü: 3 Adım (Resimlerle)

Video: SilverLight: Sunucu Odaları için Arduino Tabanlı Çevre Monitörü: 3 Adım (Resimlerle)
Video: 24 Aralık 2020 Bilişim Sistemleri Mühendisliğine Giriş Dersi Öğrenci Sunumları 2024, Kasım
Anonim
SilverLight: Sunucu Odaları için Arduino Tabanlı Çevre Monitörü
SilverLight: Sunucu Odaları için Arduino Tabanlı Çevre Monitörü
SilverLight: Sunucu Odaları için Arduino Tabanlı Çevre Monitörü
SilverLight: Sunucu Odaları için Arduino Tabanlı Çevre Monitörü
SilverLight: Sunucu Odaları için Arduino Tabanlı Çevre Monitörü
SilverLight: Sunucu Odaları için Arduino Tabanlı Çevre Monitörü
SilverLight: Sunucu Odaları için Arduino Tabanlı Çevre Monitörü
SilverLight: Sunucu Odaları için Arduino Tabanlı Çevre Monitörü

Bir keresinde şirketimin sunucu odasındaki sıcaklığı izlemek için bir çevresel sonda arama görevi bana verildi. İlk fikrim şuydu: neden sadece bir Raspberry PI ve bir DHT sensörü kullanmıyorsunuz, işletim sistemi kurulumu dahil bir saatten daha kısa sürede kurulabilir. Bunun için, gözleri bağlı, otoriter insanlardan, bunu yapmamamız gerektiği yönünde soğuk bir yanıt aldım, çünkü onu kurmak çalışma saatlerinde bir cihaz satın almaktan daha pahalıya mal olacak. Hayatımın bir parçası için böyle dar görüşlü insanları kabul etmek zorunda kalmak bir şeydi ve Ebay'den kurumsal düzeyde EATON çöplüğü sipariş ettim ve adını verdim ama o anda kendi sunucu odam için tamamen Açık Kaynak Arduino inşa etmeye karar verdim. Az önce sipariş ettiğimden çok daha iyi olacak tabanlı bir cihaz.

Bu proje SilverLight adlı kod, bu isimleri nereden aldığımı sormayın:) Sadece parlak yarım akrilik kutuya baktım ve bu isimle karar verdim, sonradan öğrendiklerimin mikro tırnaklı ürünle ilgisi yok..

Adım 1: Donanım Tasarımı

Donanım Tasarımı
Donanım Tasarımı
Donanım Tasarımı
Donanım Tasarımı
Donanım Tasarımı
Donanım Tasarımı

Ticari donanıma genel bakış.

Tamam, kimin harika fikrinin bir ups içine bir ortam monitörü yerleştirmek olduğuna başlamadım bile ama açıkçası bunun için bir pazar var, bu yüzden bunların neler yapabileceğini görelim:

Çevresel izleme cihazı UYUMLULUK

10/100Mb Ağ-MS, PXGUPS, PXGPDP ve PXGMS.

FW V3.01 ve üstü ile 10/100Mb ConnectUPS-X, ConnectUPS-BD ve ConnectUPS-E. BOYUTLAR (GXGXY)

2,26 x 1,48 x 1,15 (inç) 57,6 x 37,6 x 29,3 (mm) AĞIRLIK

1,19 oz (34 gr)

Bu çok faydalı bir bilgi değil mi? Endişelenme çünkü pek bir şey yapamıyorlar. Başlamak için bile UPS'inizin, bunu ayrı olarak satın aldığınız çevresel sensörle, genellikle standart CAT5 kablosuyla bağlayan başka bir pahalı eklenti kartına sahip olması gerekecektir (standart hiçbir şey olmadığı için bu bağlantı noktasına herhangi bir şey takmayı denemeyin bile). hakkında). Cihazın "ısınması" için 10 dakikaya ihtiyacı olduğunu, gerçekte saatler olduğunu ve bir kez işe yaradığında yavaş yavaş güncellenen Java arayüzünde ortaya çıktığını ve sıcaklık ve neme sahip olduğumuzu iddia ediyorlar. Uyarılara dayalı koşulları ayarlamak bu noktadan sonra kolaydı ama kimin umurunda daha iyi bir şey inşa edelim.

Bu proje birçok projemin birleşimi: Natalia meteoroloji istasyonu, Shadow of Phoenix. Kutu aşağıdaki çevresel kısıtlamaları izleyebilir:

  • Sıcaklık/nem/ısı indeksi
  • Havadaki LPG, Duman, Alkol, Propan, Hidrojen, Metan ve Karbon Monoksit konsantrasyonları (MQ2)
  • Güneş hassasiyeti (sunucu odasındaki ışık yanıyor mu?)
  • Hareket PIR sensörü (Hareket sensörü sayesinde artık odaya biri girdiğinde ışıkları otomatik olarak açıp kapatabilirsiniz)

Tüm bu veriler bir LCD ekranda güzel bir şekilde görüntülenirken, daha fazla işlem ve uyarılar için bir bilgisayara (Orange PI Zero) aktarılır. DHT ve MQ2'nin dijital pimi gibi dijital sensörleri doğrudan OrangePI'ye bağlamak mümkün olsa da, bu görevler için ve LCD'yi de güncellemeniz ve diğer düşük seviyeli işlemleri yapmanız gerektiğinde her zaman özel mikrolar kullanmayı tercih ederim. Arduino'nun rakipsiz olduğu ve uzun yıllar boyunca kesintisiz olarak güvenilir bir şekilde çalışabileceği şeyler (aslında 7/24 çalışan tek bir Arduino bile benim üzerimde başarısız olmadı). OrangePI, ağır iş yükü için kullanılamaması, bsd desteği olmaması, entegre wifi'nin şişmesi vb. eksiklikleri ile (10$'lık bir bilgisayar) seri (USB) üzerinden sensör okumaları almak ve bunları işlemek gibi küçük iş yüklerini kolayca halledebilir.

Bu, aşağıdaki bileşenleri gerektiren donanım açısından çok basit bir projedir:

  • Arduino PRO Mikro
  • LCD ekran 2x16 karakter RGB
  • AC-DC izolasyon anahtarı güç modülü 220V - 5V HLK-5M05 (bunlar Arduino/ESP projeleri için çok iyidir), bu 5V/5W versiyonudur!
  • 2x300ohm dirençler
  • 2xled (kırmızı/yeşil)
  • PIR hareket sensörü
  • MQ2 sensörü
  • DHT22
  • LDR
  • 2X10Kohm direnç
  • zil
  • Turuncu PI Sıfır
  • mini USB veri kablosu

Bileşenler basitçe Arduino'ya bağlanabildiğinden, sadece kullanılan normal devre tahtası için bir PCB yapmaya bile zahmet etmedim (ekli resimlere bakın):

-DHT22, VCC'ye (dijital) 10K çekme gerektirecektir

-LDR, GND'ye (analog) 10K'lık bir düşüş gerektirecektir

-MQ2 herhangi bir analog pine (analog) doğrudan bağlanabilir < analog kullanmayı tercih edin çünkü neden olmasın, cihazın arkasındaki bazı potları YÜKSEK veya Zaten erişilemeyen tasarımımdaki yapıştırma nedeniyle DÜŞÜK. Kontrol edin:

-PIR, herhangi bir pine (dijital) doğrudan bağlanabilir

-LCD: 4 pin ile sürülebilir, herhangi bir pine bağlanabilir (dijital) +2 RS/E (dijital) gerekir

-Buzzer: Herhangi bir Arduino pinine doğrudan bağlanabilir (dijital)

Kullandığım pin çıkışı kodda görülebilir. Bundan sonra her şeyi birbirine bağlamak oldukça basittir, bunları tek tek de yapabilirsiniz, 1 sensörün mükemmel çalıştığından emin olduktan sonra bir sonrakine geçin, yanlış alabileceğiniz tek şey, kabloları yanlışlıkla yanlış yerlere bağlamaktır (örneğin, vcc'yi değiştirmek) /gnd, şimdiye kadar hiçbir cihazımı öldürmedi). Burada benim için yığılmış çok fazla VCC ve GND olduğunu not edeceğim, onları bir terminal şeridinden sıkıştıramadım, bu yüzden hepsini lehimledim.

Ayrıca diğer projelerimden DHT'leri de unutmayın: DHT kütüphanesini kodunuza koyarsanız ve DHT sensörü bağlı değilse veya yanlış DHT bağlıysa (örn. 22 kullandığınız kodda 11 tanımlı) bu programa yol açabilir. başlangıçta sonsuza kadar asmak için.

PIR hareket algılama sensörleri hakkında, resmimde görebileceğiniz gibi, bunların tonlarca sahtesi var, hatta Ebay'den orijinal bir tane bile satın almakta zorlanırım. Sahteler, uzun vadede bile aynı şekilde çalışır, ancak + ve - pinlerinin tersine çevrilmesine neden olan devrelerini yansıtırlar, ayrıca bunları tanımak kolaydır: normal yeşil değil mavi pcb ile geliyor, etiketleri eksik potmetreler. Kutumda orijinal bulduğum için şanslıydım, aksi takdirde konumu değiştirmek benim için 2 led'i kaplayacaktı. Ortaya dönen her iki tencerenin de benim için çalıştığını buldum. Bu size algılama için yeterince uzun bir menzil sağlayacaktır, ayrıca hareket olduğunda dijital bacak yaklaşık bir dakika YÜKSEK konumda tutulacaktır, bu nedenle bunun için kodda telafi etmenize gerek yoktur. Sahtelerde, hangi tarafın - ve + olduğunu belirlemek kolaydır, sadece pimlere bağlı elektrolitik kapaklar için ilgili bacaklara bakın.

Kutuyu kesmek için elmas dremel kafa (ki bu aşırıydı ama harika çalıştı) ve normal delme makinesi kullandım. Bu bağlantı kutularıyla çalışmak kolaydır ve yapıştırmayı sevmememe rağmen, bunu yaparken elimde vida ve cıvatalar yoktu, bu yüzden bir şeyleri birbirine yapıştırma pazarlığını üstlendim (bu, daha sonra kolayca yeniden ısıtılabilir ve daha sonra sökülebilir. içinde dolgu olmadan aynı tutkal tabancası).

Adım 2: Yazılım Tasarımı

Yazılım Tasarımı
Yazılım Tasarımı
Yazılım Tasarımı
Yazılım Tasarımı

Arduino kodu da basittir, temelde her döngünün başında tüm sensör okumalarını çeker. Hareket veya duman varsa LED'leri açar ve ayrıca duman varsa buzzer'da bir alarm sesi çalar (bu tek engelleme kodudur, bu yüzden kısa yaptım), ardından verileri LCD'de görüntüler ve son olarak PC üzerinden gönderir. 10 saniye bekletme süresi ile limanı su basmasın.

Bu proje Arduino->OrangePI'den tek yönlü bir iletişim kullanıyor, uygulanan herhangi bir komut yok. Bu, bilgisayarın LCD ekranın bir satırının üzerine kendi mesajıyla yazmak için LCD_PRINT1 veya LCD_PRINT2 gönderebildiği diğer projemden birinde yaptığım gibi mükemmel bir şekilde mümkün olsa da (örneğin: ip adresi, çalışma süresi, sistem tarihi, cpu kullanımı), ekran alanı 3 sensörden gelen verileri görüntülemek için o kadar küçük ki zahmet bile etmedim. SOL ve SMK değerlerinin her ikisi de 4 haneye kadar çıkabilir 0000-1023, ekranda zaten 8 değerli karakter alır.

LCD ile kodda küçük bir hile fark edebilirsiniz, ölçülen her değerden sonra bir beyaz boşluk (" ") baskısı uygulanır, ardından yeni simgeleri ve verileri yerleştirmek için imleci sabit konumlara taşırım. Bunlar var çünkü LCD sayıları anlayacak kadar akıllı değil, sadece elde ettiği şeyi çiziyor ve örneğin 525'lik bir güneş değeriniz varsa ve aniden 3'e düştüyse, ekranda eski çöpü bırakarak 325 gösterecektir. orada.

OrangePI üzerinde çalışan ve çevresel verileri günlüğe kaydeden ve gerektiğinde e-posta uyarıları gönderen bir C kontrol kodu.

OrangePI, Armbian'ı çalıştırıyor (yazma sırasında Debian Stretch'e dayalı). Bunu, çözdüğü şeyin bir hw sorunu olduğu ile ilgili olarak yazılım bölümüne dahil edeceğim. İşte cihazın ortalama güç tüketimi:

0.17 A - Yalnızca Arduino + sensörler

0.5-0.62 A - OrangePI önyüklemesi

0.31 A - Turuncu PI boşta

0.29 A - Turuncu PI kapalı (gerçekten kapatılamaz, ACPI veya benzeri bir şeye sahip değildir)

0,60 A - 4 çekirdekte %100 CPU kullanımı için stres testi

Bu OrangePI'yi uzun zamandan beri bir kutuda taşıyorum. Eski çekirdek ile cihaz çok fazla akım boşalttı (sayacın 0,63 A civarında zirve yaptığını söylediği gibi) muhtemelen PSU'nun basitçe önyükleme yapmamasını sağlayamadı, önyükleme işlemi takıldı ve 2 ethernet ledinin yanmasını sağladım sürekli ve hiçbir şey yapmamak.

HLK-5M05, 5V üzerinde 5W yapabileceğini ve 1 Amp sağlayabileceğini iddia ettiği için bu biraz can sıkıcı bir durum, ancak Çin'den çıkan bu cihazlarla asla bilemezsiniz, 0,63 A tepe noktası, nominal maksimum değerden çok daha düşüktü değer. Bu yüzden basit yeniden başlatma testleri yapıyordum, 10 yeniden başlatmadan OrangePI yalnızca iki kez başarılı bir şekilde önyüklenirdi, bu da devrelerdeki hatalı tutarsız davranışları sevmediğim için neredeyse projeden atmama neden oldu. Bu yüzden, yazılımdan önyükleme sırasında güç tüketimini azaltmanın bir yolu olabilir (çünkü o zaman sadece bir sorundu) ve script.bin'i değiştirmekten bahseden bir makale buldum ama Orange PI PC ve içindi. dosyalar depodan eksikti, bu yüzden son çare olarak, aygıt yazılımını, çekirdeği ve diğer her şeyi yükseltmek için sihirli "uygun yükseltmeyi" yaptım, daha az boşalacağını ve cihazın önyükleme yapabileceğini umarak:

Linux Silverlight 4.14.18-sunxi #24 SMP 9 Şub Cum 16:24:32 CET 2018 armv7l GNU/Linux

Linux Silverlight 4.19.62-sunxi #5.92 SMP 31 Tem 22:07:23 CEST 2019 armv7l GNU/Linux

İşe yaradı! Donanımı bir yazılım sorununa atmak genellikle tembel java geliştiricilerinin gitmesidir, ancak bu durumda yazılımla ilgili bir donanım sorununu çözdük ne büyük bir başarı. Cihazın her bir durumda başlattığı 20 yeniden başlatma testi daha yaptım. Opi'yi açmaktan kaynaklanan güç dalgalanmasının (bağlanma/bağlantıyı kesme) o kadar büyük olduğunu ve herhangi bir zamanda Arduino'yu sıfırlayacağını (basit bir yeniden başlatma yalnızca LCD'yi titretecek, ancak başka soruna neden olmayacak) ancak bu sorun devam ediyor. 2 birlikte önyükleneceğinden gizli.

Ayrıca çekirdek modüllerine de baktı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 gerçekten neye ihtiyacımız var? Tamam, pwr ve termal faydalı olabilir ama ses, seri port, wifi (zaten bozuk hw) bunların hepsine ihtiyacımız yok kara listeye alınabilir. Ayrıca daha sonra sadece gerekli modüllerle özel bir çekirdek oluşturacağım.

İhtiyacımız olan ve varsayılan olarak yüklenmeyen, Arduino ile iletişim kurmak için CDC ACM'dir, aşağıdakilerle etkinleştirin:

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

Bundan sonra bağlantıyı şu şekilde test edebilirsiniz:

ekran /dev/ttyACM0 9600

Her 10 saniyede bir gönderilen durum verilerini görmelisiniz.

Uyarılar ve izleme

Uyarılardan itibaren, verileri seriden alan C kontrol koduna system() çağrılarını koydum, böylece harici araçlara gerek kalmadı. Bazı örnek uyarılar:

- Sıcaklık 30 C'nin üzerine çıkıyor

- Nem %70'in üzerine çıkıyor (sunucular için sağlıklı değil)

- Odada hareket algılandı (sunucu odanıza girmeye devam ederseniz bu can sıkıcı olabilir)

- Duman veya gaz algılandı (100'ün üzerindeki uyarılar ciddiye alınabilir, bu sensörle biraz oynadım ve birçok şey için açıldı, örneğin sensörün yanında havya ile duman oluşması 50'nin biraz üzerinde sonuçlandı ve sonraki sigara içerken o 500'e çıktı, hatta normal deodoranttan gelen gazı çok uzaklardan algıladı)

Geçmiş verileri tutmak için bir araç geliştirmekle uğraşmadım çünkü mükemmel izleme çerçeveleri varken tekerleği neden yeniden icat edelim. Bunu kişisel favorim Zabbix'e nasıl entegre edeceğime dair bir örnek göstereceğim:

apt-get install zabbix-agent

Sonuna ekleyin: /etc/zabbix/zabbix_agentd.conf

UserParameter=silverlight.hum, head -1 /dev/shm/silverlight-zbx.log | awk -F", " '{ print $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", " '{ 5$ yazdır }' UserParameter=silverlight.smk, head -1 /dev/shm/silverlight-zbx.log | awk -F", " '{ 6 $ yazdır }'

zabbix_agentd -p çalıştırıldığında artık uygun değerler döndürülmelidir:

silverlight.hum [t|41]

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

Isı endeksi, topluyorum ama pratik bir kullanım görmüyorum, bu yüzden sadece günlüğe kaydediliyor. C kontrol kodunda 2 günlük işlevi uyguladım, ilki tüm verileri kullanıcı dostu biçimde günlüğe kaydedecek:

[SILVERLIGHT] 2019-09-10 23:36:08 => Nem: 44, Sıcaklık: 22, Yüksek: 25, Güneş: 0, Hareket: 0, Duman: 21'de alınan veriler

[SILVERLIGHT] 2019-09-10 23:36:18 => Nem: 44, Sıcaklık: 22, Yüksek: 25, Güneş: 0, Hareket: 0, Duman: 21 [SILVERLIGHT] 2019-09'da alınan veriler -10 23:36:29 => Nem: 44, Sıcaklık: 22, Yüksek: 25, Güneş: 0, Hareket: 0, Duman: 22 [SILVERLIGHT] 2019-09-10 23:36:39 => Nem: 44, Sıcaklık: 22, Yüksek: 25, Güneş: 0, Hareket: 0, Duman: 21

İkinci olan:

void logger2(char *metin) {

DOSYA *f = fopen("/dev/shm/silverlight-zbx.log", "w"); if (f == NULL) { printf("Bellek günlük dosyası açılırken hata oluştu!\n"); dönüş; } fprintf(f, "%s", metin); fclose(f); dönüş; }

Bu, bir dahaki sefere her zaman üzerine yazılacak olan belleğe 1 satırlık bir günlük koyacaktır (sd karttaki gereksiz rw işlemlerini ortadan kaldırır). Bu günlük yalnızca 6 veri sütununu içerir ve zaman damgası içermez, Zabbix için kolayca okunabilir.

Son bir bonus olarak: Arduino'yu doğrudan OrangePI'den nasıl programlayabilirsiniz, böylece her seferinde cihaza yürümek ve dizüstü bilgisayarınızı takmak zorunda kalmazsınız.

2 yol vardır:

-Kolay yol: Tam Arduino IDE yükleyin ve kitaplıklar iletme, Xrdp, Xvnc, Nxserver vb. ile X11 gibi bazı uzak masaüstünü kullanın

-Zor yol: Arduino IDE'yi kurun ve komut satırını kullanın

X11'i sunuculara kurmaktan hoşlanmadığım için bu sefer zoru başaracağız. Bunun için 6 bileşene ihtiyacınız olacak:

1, ARM 32 bit için Arduino IDE ->

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

3, Arduino Makefile projesi -> git klonu

4, DHT kitaplığı

5, Sparkfun tahta tanımları

6, SilverLight.ino, ana kod

Kolaylaştırmak için son 4 nokta (sketchbook.tgz) için gereken dosyaları bir araya getirdim, böylece sadece ilk 2'ye ihtiyacınız olacak

Öncelikle, USB bağlantı noktasına rw erişimi olan normal bir kullanıcı oluşturmak en iyisidir:

adduser gümüş

usermod -a -G çevirmeli gümüş

Sketchbook.tgz dosyasını yeni oluşturulan kullanıcının ana dizinindeki cihaza SCP'leyin ve hemen buraya çıkarın:

cd /ev/gümüş

tar xvzf eskiz defteri.tgz

Grafik IDE'yi kullanırken kaputun altında neler olup bittiğini biraz anlamak için:

Arduino IDE kullanırken bir Arduino taslağı oluşturma iş akışı, Arduino web sitesinde https://www.arduino.cc/en/Hacking/BuildProcess ve daha ayrıntılı olarak burada açıklanmıştır: https://www.arduino.cc/ tr/Hackleme/Oluşturma Süreci

Genel olarak, standart Arduino oluşturma süreci şöyledir:

.ino dosyalarını ana çizim dosyasında birleştirin. Ana çizim dosyasının dönüştürülmesi: #include ifadesini ekleyin; ana çizim dosyasındaki tüm işlevlerin işlev bildirimlerini (prototiplerini) oluşturun; hedefin main.cxx dosyasının içeriğini ana çizim dosyasına ekleyin. Kodu nesne dosyalarına derleyin. Arduino'ya yüklenmeye hazır bir.hex dosyası üretmek için nesne dosyalarını bağlayın.

Arduino standart yapım süreci ile Arduino-Makefile kullanan yapım süreci arasında bazı küçük farklılıklar vardır:

Yalnızca bir.ino dosyası desteklenir. İşlev bildirimleri,.ino dosyasında otomatik olarak oluşturulmaz. Kullanıcı, doğru işlev bildirimlerini oluşturmaya özen göstermelidir.

Oluşturma sürecinin kalbi Makefile'dir. Endişelenmeyin, her şey sizin için hazırlandı, SparkFun serisi gibi standart olmayan panolar için bu şekilde derleme yaparken biraz daha karmaşıktır.

BOARD_TAG = promikro

ALTERNATE_CORE = SparkFun BOARD_SUB = 16MHzatmega32U4 ARDUINO_PORT = /dev/ttyACM0 USER_LIB_PATH = /home/silver/sketchbook/libraries ARDUINO_DIR = /opt/arduino-1.8.9 dahil /home/silver/sketchbook/Arduino-

Ve yazmanız gereken tek şey bir: make upload (önce.hex dosyalarını oluşturacak, ardından bunları yüklemek için avrdude'u kullanacak), şuna benzer bir sonuçla sonuçlanacak:

mkdir -p build-promicro-16MHzatmega32U4

make reset make[1]: '/home/silver/sketchbook' dizinine giriliyor /home/silver/sketchbook/Arduino-Makefile/bin/ard-reset-arduino --caterina /dev/ttyACM0 make[1]: ' dizininden çıkılıyor /home/silver/sketchbook' make do_upload make[1]: '/home/silver/sketchbook' dizinine giriliyor /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 Programlayıcıya bağlanılıyor:. Bulunan programcı: Id = "CATERIN"; tür = S Yazılım Sürümü = 1.0; Donanım Sürümü verilmedi. Programcı, otomatik adres artışını destekler. Programcı, arabelleğe alınmış bellek erişimini arabellek boyutu=128 bayt ile destekler. Programcı aşağıdaki cihazları destekler: Cihaz kodu: 0x44 avrdude: AVR cihazı başlatıldı ve talimatları kabul etmeye hazır avrdude: Cihaz imzası = 0x1e9587 (muhtemelen m32u4) avrdude: "build-promicro-16MHzatmega32U4/sketchbook.hex" giriş dosyasını okuyor avrdude: flash yazılıyor (11580 bayt): avrdude: 11580 bayt flash yazılı avrdude: safemode: Sigortalar TAMAM (E:CB, H:D8, L:FF) avrdude yapıldı. Teşekkürler.

Teşekkür ederim avrdude ve şimdi Arduino'muz sıfırlandı ve yeni kodla programlandı, sadece vi veya yerel olarak favori düzenleyicinizle düzenleyebileceğiniz, herhangi bir IDE'ye gerek yok. Yükleme sırasında hem C kontrol programını, ekranını hem de arduinoya erişen herhangi bir şeyi kapatmanız gerektiğini not ediyorum, aksi takdirde bağlantı noktası sıfırlandıktan sonra /dev/ttyACM1 olarak geri dönecektir.

3. Adım: Kapanış ve Yapılacaklar Listesi

Kapanış ve Yapılacaklar Listesi
Kapanış ve Yapılacaklar Listesi
Kapanış ve Yapılacaklar Listesi
Kapanış ve Yapılacaklar Listesi
Kapanış ve Yapılacaklar Listesi
Kapanış ve Yapılacaklar Listesi

Bu çevresel sensör kutusunu sunucu odaları için oluşturmama rağmen, onu kimya/elektronik laboratuvarları, depolar, normal odalar ve diğer her şey için kullanabilirsiniz. Ve evet, TCP/IP kullandığı için bu bir IoT cihazı, G Bunu daha girişimci hale getirmek için başlığa da koymalıydım:)

Odadaki ışıkları da otomatik olarak açabilmek için hem donanımı hem de yazılımı kolayca değiştirebilirsiniz. Diğer projeme bir göz atın: Shadow of phoenix ışık kontrolü için nasıl çalışır, aynı şeyi yapmak için elinizde tüm donanıma sahipsiniz (bir hareket algılandığı sürece ışıkları açık tutmak için tutma zamanlayıcıları kullanır) zaman periyodu, eğer tekrar hareket varsa bir zamanlayıcı hızlandırılır).

Tam bir Armbian yığını çalıştıran OrangePI ile olasılıklar sınırsızdır, grafikler üzerinde geçmiş verileri görüntülemek için php ile sıfırdan yazılmış yerel bir web arayüzü oluşturabilirsiniz. Sunucu odanızı izleyen tamamen Açık Kaynaklı bir cihazınız olması zaten daha iyi değil mi, inşa etmekten gurur duyabileceğiniz bir şey, eğer öyle düşünüyorsanız, kendiniz inşa edin!

Önerilen: