Turinys:

„SilverLight“: „Arduino“aplinkos monitorius serverių kambariams: 3 žingsniai (su nuotraukomis)
„SilverLight“: „Arduino“aplinkos monitorius serverių kambariams: 3 žingsniai (su nuotraukomis)

Video: „SilverLight“: „Arduino“aplinkos monitorius serverių kambariams: 3 žingsniai (su nuotraukomis)

Video: „SilverLight“: „Arduino“aplinkos monitorius serverių kambariams: 3 žingsniai (su nuotraukomis)
Video: Установка Microsoft Silverlight 2024, Liepa
Anonim
„SilverLight“: „Arduino“aplinkos monitorius serverių kambariams
„SilverLight“: „Arduino“aplinkos monitorius serverių kambariams
„SilverLight“: „Arduino“aplinkos monitorius serverių kambariams
„SilverLight“: „Arduino“aplinkos monitorius serverių kambariams
„SilverLight“: „Arduino“aplinkos monitorius serverių kambariams
„SilverLight“: „Arduino“aplinkos monitorius serverių kambariams
„SilverLight“: „Arduino“aplinkos monitorius serverių kambariams
„SilverLight“: „Arduino“aplinkos monitorius serverių kambariams

Kartą man buvo duota užduotis ieškoti aplinkos zondo, kuris stebėtų temperatūrą mano įmonės serverio patalpoje. Mano pirmoji idėja buvo: kodėl gi ne tik naudojant Raspberry PI ir DHT jutiklį, jį galima nustatyti mažiau nei per valandą, įskaitant OS diegimą. Dėl to gavau šaltą atsakymą iš užkalbintų viršininkų žmonių, kad to nedarysime, nes jo įrengimas darbo valandomis kainuotų daugiau nei perkant įrenginį. Priimti tokius siaurų pažiūrų žmones dalį savo gyvenimo buvo vienas dalykas, ir aš užsisakiau „Ebay“įmonės kategorijos „EATON“šiukšles ir paskambinau, bet tą akimirką nusprendžiau, kad savo serverių kambariui sukursiu visiškai atviro kodo „Arduino“įrenginys, kuris bus daug geresnis nei ką tik užsisakiau.

Šis projektas yra pavadintas „SilverLight“, neklauskite manęs, iš kur aš gaunu šiuos pavadinimus:) Aš tiesiog pažvelgiau į blizgančią pusiau akrilo dėžutę ir nusprendžiau tokiu pavadinimu, tai neturi nieko bendro su „microhoof“produktu, apie kurį sužinojau po to.

1 žingsnis: Aparatūros projektavimas

Techninės įrangos dizainas
Techninės įrangos dizainas
Techninės įrangos dizainas
Techninės įrangos dizainas
Techninės įrangos dizainas
Techninės įrangos dizainas

Komercinės techninės įrangos apžvalga.

Gerai, kad aš net nepradėsiu, kurio puiki idėja buvo įdėti aplinkos monitorių į pakilimą, bet akivaizdu, kad tam yra rinka, todėl pažiūrėkime, ką jie gali padaryti:

Aplinkos stebėjimo prietaisas SUDERINAMAS

10/100Mb tinklas-MS, PXGUPS, PXGPDP ir PXGMS.

10/100 MB „ConnectUPS-X“, „ConnectUPS-BD“ir „ConnectUPS-E“su FW V3.01 ir naujesnėmis versijomis. MATMENYS (LXWXH)

2,26 x 1,48 x 1,15 (colio) 57,6 x 37,6 x 29,3 (mm) SVORIO

34 g

Tai labai naudinga informacija, ar ne? Nesijaudinkite, nes jie negali daug nuveikti. Norėdami net pradėti, jūsų UPS turės turėti kitą brangią papildomą kortelę, kuri sujungia ją su aplinkos jutikliu, kurį perkate atskirai, paprastai su standartiniu CAT5 kabeliu (net nebandykite nieko prijungti prie to prievado, nes nėra nieko standartinio) apie tai). Jie tvirtina, kad įrenginiui reikia 10 minučių „sušilti“, nes iš tikrųjų tai buvo valandos, o kai tai padarė, jis pasirodė lėtai atnaujinamoje „Java“sąsajoje, o mes turime temperatūrą ir drėgmę. Nuo to laiko buvo lengva nustatyti įspėjimais pagrįstas sąlygas, bet kam tai rūpi, sukurkime ką nors geresnio.

Šis projektas yra daugelio mano projektų junginys: Natalijos orų stotis, Fenikso šešėlis. Dėžutė gali stebėti šiuos aplinkos apribojimus:

  • Temperatūros/drėgmės/šilumos indeksas
  • SND, dūmų, alkoholio, propano, vandenilio, metano ir anglies monoksido koncentracijos ore (MQ2)
  • Saulės jautrumas (ar šviesa dega serverio patalpoje?)
  • Judesio PIR jutiklis (nuo šiol netgi galite automatiškai įjungti/išjungti šviesas dėl judesio jutiklio, kai kas nors įeina į kambarį)

Visi šie duomenys gražiai rodomi skystųjų kristalų ekrane, o taip pat perduodami į kompiuterį („Orange PI Zero“) tolesniam apdorojimui ir įspėjimams. Nors skaitmeninius jutiklius, tokius kaip DHT ir skaitmeninį MQ2 kaištį, būtų galima tiesiogiai prijungti prie „OrangePI“, aš visada norėčiau naudoti specialias mikroskopijas šioms užduotims atlikti ir kai reikia atnaujinti skystųjų kristalų ekraną ir atlikti kitus žemo lygio veiksmus „Arduino“yra tiesiog neprilygstamas ir gali patikimai veikti be perstojo daugelį metų (iš tikrųjų man dar nepavyko nė vieno „Arduino“, kuris veikia 24 valandas per parą). „OrangePI“su savo trūkumais (pripažinkime, kad tai yra 10 USD kompiuteris), pavyzdžiui, nenaudojamas dideliam darbo krūviui, nėra bsd palaikymo, integruotas „Wi -Fi“yra išpūstas ir tt gali lengvai susidoroti su nedideliu darbo krūviu, pvz., Paimti serijinį (USB) jutiklį ir juos apdoroti.

Tai labai paprastas techninės įrangos projektas, kuriam reikalingi šie komponentai:

  • „Arduino PRO Micro“
  • LCD ekranas 2x16 simbolių RGB
  • Kintamosios srovės izoliacijos jungiklio maitinimo modulis nuo 220V iki 5V HLK-5M05 (tai labai tinka „Arduino“/ESP projektams), tai yra 5V/5W versija!
  • 2x300ohm rezistoriai
  • 2x liemenėlės (raudona/žalia)
  • PIR judesio jutiklis
  • MQ2 jutiklis
  • DHT22
  • LDR
  • 2X10Kohm rezistorius
  • Garsinis signalas
  • Oranžinis PI nulis
  • mini USB duomenų kabelis

Aš net nesivarginau gaminti PCB, kad galėčiau naudoti tik įprastą duonos lentą, nes komponentus galima tiesiog prijungti prie „Arduino“(žr. Pridėtas nuotraukas):

-DHT22 reikės 10K prisitraukimo prie VCC (skaitmeninis)

-LDR reikės 10K ištraukimo į GND (analoginis)

-MQ2 gali būti tiesiogiai prijungtas prie bet kurio analoginio kaiščio (analoginio) <pageidautina naudoti analogą, nes kodėl gi ne, kai turime MCU su analoginiais kaiščiais, kur galime gauti tikslią vertę, o ne reguliuoti tam tikrą puodą prietaiso gale, kad gautumėte aukštą arba LOW iš jo, nes mano dizaino klijavimas vis tiek yra neprieinamas. Patikrinkite:

-PIR gali būti tiesiogiai prijungtas prie bet kurio kaiščio (skaitmeninio)

-LCD: gali būti valdomas 4 kaiščiais, gali būti prijungtas prie bet kurio kaiščio (skaitmeninis) reikės +2 RS/E (skaitmeninis)

-„Buzzer“: gali būti tiesiogiai prijungtas prie bet kokių „Arduino“kaiščių (skaitmeninis)

Mano naudojamą pinout galima pamatyti kode. Viską sujungti po to yra gana paprasta, taip pat galite tai padaryti po vieną, įsitikinkite, kad 1 jutiklis veikia puikiai, tada pereikite prie kito, viskas, ką galite suklysti, yra per klaidą prijungti laidus prie netinkamų vietų (pvz. /gnd jutikliui, iki šiol tai niekada nenužudė nė vieno mano įrenginio). Čia norėčiau pažymėti, kad man buvo sukrauta per daug VCC ir GND, aš negalėjau jų išspausti per gnybtų juostą, todėl lituosiu juos visus.

Taip pat apie DHT nepamirškite iš kitų mano projektų: jei į savo kodą įdėsite DHT biblioteką ir DHT jutiklis nebus prijungtas arba prijungtas netinkamai DHT (pvz., 11, apibrėžtas kodu, kurį naudojate 22), tai gali sukelti programą pradžioje pakabinti amžinai.

Kalbant apie PIR judesio aptikimo jutiklius, kaip matote mano paveikslėlyje, yra daugybė padirbtų jų padirbinių, iš tikrųjų man net būtų sunku nusipirkti tikrą iš „Ebay“. Padirbiniai veikia taip pat gerai, net ir ilgainiui, tačiau jų grandinė yra atspindėta, todėl „ +“ir „smeigtukai“yra atvirkščiai, taip pat juos lengva atpažinti: su mėlyna PCB nėra įprasta žalia, trūksta etikečių puodų matuokliai. Man pasisekė, kad savo dėžutėje radau autentišką, kitaip pakeitus padėtį, man užtektų 2 šviesos diodai. Pastebėjau, kad abu puodai, susukti iki pusės, man tinka. Tai suteiks jums pakankamai ilgą jutimo diapazoną, taip pat esant judesiui, skaitmeninė kojelė maždaug minutę bus laikoma HIGH padėtyje, todėl jums nereikia įvesti kodo. Klastotėse lengva nustatyti, kuri pusė yra - ir + tiesiog pažvelkite į atitinkamas elektrolitinių dangtelių, prijungtų prie kaiščių, kojas.

Dėžutės pjovimui naudojau deimantinę „dremel“galvutę (kuri buvo per didelė, bet puikiai veikė) ir įprastą gręžimo mašiną. Su šiomis jungiamosiomis dėžėmis lengva dirbti, ir nors aš nemėgstu klijuoti, aš neturėjau po ranka varžtų ir varžtų, kai jį statiau, todėl reikėjo derinti daiktus (kuriuos taip pat galima lengvai pašildyti ir išardyti vėliau, naudojant tas pats klijų pistoletas be užpildymo).

2 žingsnis: programinės įrangos projektavimas

Programinės įrangos projektavimas
Programinės įrangos projektavimas
Programinės įrangos projektavimas
Programinės įrangos projektavimas

„Arduino“kodas taip pat yra paprastas, iš esmės jis ištraukia visus jutiklio rodmenis kiekvienos kilpos pradžioje. Įjungia šviesos diodus, jei yra judesio ar dūmų, taip pat skambina signalizatoriaus garsinis signalas, jei yra dūmų (tai yra vienintelis blokavimo kodas, todėl sutrumpinau), tada rodomi duomenys LCD ekrane ir galiausiai siunčiami per kompiuterį su 10 sekundžių laikymo periodu, kad neužlietų uosto.

Šiame projekte naudojamas vienpusis ryšys iš „Arduino“-> „OrangePI“, nėra jokių komandų. Nors tai būtų visiškai įmanoma padaryti, kaip tai dariau viename iš kitų savo projektų, kai kompiuteris gali siųsti LCD_PRINT1 arba LCD_PRINT2, kad perrašytų vieną LCD ekrano eilutę savo žinute (pvz., IP adresas, veikimo laikas, sistemos data, procesoriaus naudojimas), ekrano plotas yra toks mažas, kad būtų galima rodyti duomenis iš 3 jutiklių, kad net nesivarginau. SOL ir SMK reikšmės gali būti iki 4 skaitmenų 0000-1023, o ekrane jau užima 8 vertingus simbolius.

Naudodamiesi LCD ekranu, galite pastebėti nedidelį kodo triuką, kad po kiekvienos išmatuotos vertės pridedamas tuščių tarpų atspaudas (""), tada perkeliu žymeklį į fiksuotas pozicijas, kad įdėčiau naujas piktogramas ir duomenis. Tai yra todėl, kad skystųjų kristalų ekranas nėra toks protingas, kad suprastų skaičius, jis tiesiog piešia tai, ką jis gauna, ir, pavyzdžiui, jei jūsų saulės vertė buvo 525, kuri staiga sumažėjo iki 3, ekrane bus rodomas 325, paliekantis seną šlamštą ten.

„C“valdymo kodas, veikiantis „OrangePI“ir registruojantis aplinkos duomenis bei prireikus siunčiantis įspėjimus el.

„OrangePI“veikia „Armbian“(kuri rašymo metu buvo pagrįsta „Debian Stretch“). Įtrauksiu tai į programinės įrangos dalį, nes tai buvo hw problema, kurią ji išsprendė. Štai vidutinis prietaiso energijos suvartojimas:

0,17 A - tik „Arduino“+ jutikliai

0,5-0,62 A - „OrangePI“paleidimas

0,31 A - oranžinis PI tuščiąja eiga

0,29 A - oranžinis PI išjungtas (negaliu jo išjungti, jame nėra ACPI ar pan.)

0,60 A - testavimas nepalankiausiomis sąlygomis 100% procesoriaus naudojimas 4 branduoliuose

Aš jau seniai turėjau šį „OrangePI“dėžutėje. Su senu branduoliu įrenginys išleido tiek daug srovės (kaip skaitiklis sakė, kad pasiekė apie 0,63 A), o tai, ko jis PSU tikriausiai negalėjo pateikti, kad jis paprasčiausiai neįsijungė, įkrovos procesas įstrigo ir aš užsidegau 2 eterneto lemputės nuolat ir nieko nedaryti.

Dabar tai erzina, nes „HLK-5M05“teigia, kad gali veikti 5 W 5 V įtampa, todėl gali tiekti 1 amperą, tačiau kai šie įrenginiai išeina iš Kinijos, jūs niekada nežinote, 0,63 A smailė buvo daug mažesnė už nominalią maks. vertės. Taigi aš vykdžiau paprastus perkrovimo testus, nuo 10 perkrovimų „OrangePI“sėkmingai paleis tik du kartus, o tai beveik privertė mane išmesti iš projekto, nes nemėgstu klaidingo nenuoseklaus elgesio grandinėse. Taigi aš pradėjau ieškoti „Google“, galbūt yra būdas sumažinti energijos suvartojimą įkrovos metu naudojant programinę įrangą (nes tada tai buvo tik problema) ir radau straipsnį, kuriame kalbama apie scenarijaus pakeitimą. Bin, bet tai buvo skirta „Orange PI PC“ir Saugykloje trūko failų, todėl, kad ir kaip paskutinė išeitis, aš padariau stebuklingą „tinkamą atnaujinimą“, norėdamas atnaujinti programinę -aparatinę įrangą, branduolį ir visa kita, tikėdamasis, kad jis išeikvos mažiau ir įrenginys galės paleisti ir:

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

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

Pavyko! Techninės įrangos išmetimas į programinės įrangos problemą paprastai yra tingūs „Java“kūrėjai, tačiau šiuo atveju mes sėkmingai išsprendėme aparatinės įrangos problemą, susijusią su programine įranga. Atlikau dar 20 pakartotinio paleidimo bandymų, kai įrenginys buvo paleistas kiekvienu atveju. Vis dar norėčiau pažymėti, kad elektros energijos šuolis nuo „Opi“įjungimo (prijungimo/atjungimo) yra toks didelis, kad jis bet kuriuo metu iš naujo nustatys „Arduino“(paprastas perkrovimas tiesiog mirksės LCD, bet nesukels daugiau problemų), tačiau ši problema išlieka paslėpta, nes 2 bus paleisti kartu.

Aš taip pat pažvelgiau į branduolio modulius:

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

Ko mums iš tikrųjų reikia? Gerai, kad „pwr“ir „termo“gali būti naudingi, tačiau garsas, nuoseklusis prievadas, „Wi -Fi“(jau sugedęs hw) mums jų nereikia, gali būti įtraukti į juodąjį sąrašą. Vėliau taip pat sukursiu pasirinktinį branduolį, kuriame bus tik būtini moduliai.

Mums reikia ir jis nėra įkeltas pagal numatytuosius nustatymus, tai CDC ACM, kad galėtų bendrauti su „Arduino“, įgalinkite jį naudodami:

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

Po to jau galite patikrinti ryšį naudodami:

ekranas /dev /ttyACM0 9600

Būsenos duomenys turėtų būti siunčiami kas 10 sekundžių.

Įspėjimai ir stebėjimas

Nuo įspėjimų aš tiesiog įvedžiau sistemos () skambučius į C valdymo kodą, kuris gauna duomenis iš serijinių, todėl nereikia jokių išorinių įrankių. Keletas įspėjimų pavyzdžių:

- Temperatūra pakyla virš 30 laipsnių

- Drėgmė viršija 70 % (nėra sveika serveriams)

- Kambaryje aptiktas judesys (tai gali būti erzina, jei ir toliau einate į savo serverio kambarį)

- Aptikti dūmai ar dujos (įspėjimai, viršijantys 100, gali būti vertinami rimtai, aš žaidžiau su šiuo jutikliu ir jis įsijungia daugybei dalykų, pavyzdžiui, dūmų sukūrimas šalia jutiklio su lituokliu lėmė šiek tiek daugiau nei 50, o toliau rūkant cigaretę o jis padidėjo iki 500, netgi aptiko dujas iš įprasto dezodoranto iš toli)

Norėdami išsaugoti istorinius duomenis, nesivarginau kurdamas įrankį, nes kodėl išradinėti ratą, kai turime puikias stebėjimo sistemas. Parodysiu pavyzdį, kaip tai integruoti į savo asmeninį mėgstamiausią „Zabbix“:

apt-get įdiegti zabbix-agent

Į pabaigą pridėkite: /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 "," '{print $ 5}' UserParameter = silverlight.smk, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 6}'

Vykdant „zabbix_agentd -p“dabar turėtų būti pateiktos tinkamos vertės:

silverlight.hum [t | 41]

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

Šilumos indeksą aš renku, bet nematau jokio praktinio jo panaudojimo, todėl jis tiesiog registruojamas. C valdymo kode įdiegiau 2 registravimo funkcijas, pirmasis įrašys visus duomenis vartotojui patogiu formatu:

[SILVERLIGHT] Duomenys gauti 2019-09-10 23:36:08 => Drėgmė: 44, Temperatūra: 22, Labas: 25, Saulė: 0, Judėjimas: 0, Dūmai: 21

[SILVERLIGHT] Duomenys gauti 2019-09-10 23:36:18 => Drėgmė: 44, Temp: 22, Labas: 25, Saulė: 0, Judėjimas: 0, Dūmai: 21 [SILVERLIGHT] Duomenys gauti 2019-09 -10 23:36:29 => Drėgmė: 44, temperatūra: 22, labas: 25, saulės: 0, judesys: 0, dūmai: 22 [SILVERLIGHT] Duomenys gauti 2019-09-10 23:36:39 => Drėgmė: 44, temperatūra: 22, labas: 25, saulės: 0, judesys: 0, dūmai: 21

Kitas:

void logger2 (char *text) {

FILE *f = fopen ("/dev/shm/silverlight-zbx.log", "w"); if (f == NULL) {printf ("Klaida atidarant atminties žurnalo failą! / n"); grįžti; } fprintf (f, "%s", tekstas); fdaryti (f); grįžti; }

Tai įdės 1 linijinio žurnalo atmintį (pašalins nereikalingas „sdcard“operacijas), kurios visada bus perrašytos kitą kartą. Šiame žurnale bus tik 6 duomenų stulpeliai ir nebus laiko žymos, jis yra lengvai skaitomas „Zabbix“.

Paskutinė premija: kaip užprogramuoti „Arduino“tiesiai iš „OrangePI“, kad nereikėtų kiekvieną kartą eiti prie įrenginio ir prijungti nešiojamojo kompiuterio.

Yra 2 būdai:

-Lengvas būdas: įdiekite visą „Arduino IDE“, o bibliotekos naudoja nuotolinį darbalaukį, pvz., „X11“su persiuntimu, „Xrdp“, „Xvnc“, „Nxserver“ir kt.

-Sunkus būdas: įdiekite „Arduino IDE“ir naudokite komandinę eilutę

Šį kartą mes padarysime sunkų kelią, nes nemėgstu diegti X11 serveriuose. Tam jums reikės 6 komponentų:

1, ARD 32 bitų „Arduino IDE“->

2, „Python“serijos-> apt-get install python-serial

3, „Arduino Makefile“projektas -> git klonas

4, DHT biblioteka

5, „Sparkfun“lentos apibrėžimai

6, SilverLight.ino, pagrindinis kodas

Kad būtų lengviau, aš surinkau failus, reikalingus paskutiniams 4 taškams (sketchbook.tgz), todėl jums reikės tik pirmųjų 2

Pirmiausia geriausia sukurti įprastą vartotoją, kuris turi prieigą prie USB prievado:

pridėtinis sidabras

usermod -a -G dialout silver

SCP sketchbook.tgz į įrenginį naujai sukurtame vartotojo namų kataloge ir ištraukite jį ten:

cd /home /silver

tar xvzf eskizų knyga.tgz

Norėdami šiek tiek suprasti, kas vyksta po gaubtu, kai naudojate grafinį IDE:

„Arduino“eskizo kūrimo darbo eiga naudojant „Arduino IDE“aprašyta „Arduino“svetainėje https://www.arduino.cc/en/Hacking/BuildProcess ir išsamiau čia: https://www.arduino.cc/ lt/Įsilaužimas/„BuildProcess“

Paprastai standartinis „Arduino“kūrimo procesas yra toks:

Sujunkite.ino failus į pagrindinį eskizo failą. Pagrindinio eskizo failo transformacija: pridėkite teiginį #include; kurti funkcijų deklaracijas (prototipus) apie visas pagrindinio eskizo failo funkcijas; prie pagrindinio eskizo failo pridėkite tikslo failo main.cxx turinį. Sudarykite kodą objektų failams. Susiekite objekto failus su.hex failu, paruoštu įkelti jį į „Arduino“.

Yra keletas nedidelių skirtumų tarp standartinio „Arduino“kūrimo proceso ir kūrimo proceso naudojant „Arduino-Makefile“:

Palaikomas tik vienas.ino failas. Funkcijų deklaracijos automatiškai nesukuriamos.ino faile. Vartotojas turi pasirūpinti, kad būtų sukurtos teisingos funkcijų deklaracijos.

Sukūrimo proceso esmė yra „Makefile“. Nesijaudinkite, viskas yra paruošta jums, tai yra šiek tiek sudėtingiau tokiu būdu sudaryti nestandartines plokštes, tokias kaip „SparkFun“serija.

BOARD_TAG = promicro

ALTERNATE_CORE = „SparkFun BOARD_SUB“= 16MHzatmega32U4 ARDUINO_PORT =/dev/ttyACM0 USER_LIB_PATH =/home/silver/eskizų knyga/bibliotekos ARDUINO_DIR = /opt/arduino-1.8.9 include /home/silrdinoAsk

Viskas, ką jums reikia įvesti, yra: padaryti įkėlimą (kuris pirmiausia sukurs.hex failus, o paskui juos įkelti naudoja avrdude), galų gale bus kažkas panašaus:

mkdir -p build-promicro-16MHzatmega32U4

padaryti atstatymą padaryti [1]: įvedant katalogą '/home/silver/sketchbook'/home/silver/sketchbook/Arduino-Makefile/bin/ard-reset-arduino --caterina/dev/ttyACM0 make [1]: išeinama iš katalogo ' /home/silver/sketchbook 'make do_upload make [1]: Įvedamas katalogas'/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/eskizų knyga. hex: i Prisijungimas prie programuotojo:. Rastas programuotojas: Id = "CATERIN"; tipas = S programinės įrangos versija = 1.0; Nenurodyta aparatinės įrangos versija. Programuotojas palaiko automatinį priedų didinimą. Programuotojas palaiko buferinės atminties prieigą, kai buferio dydis = 128 baitai. Programuotojas palaiko šiuos įrenginius: Įrenginio kodas: 0x44 avrdude: AVR įrenginys inicijuotas ir paruoštas priimti nurodymus avrdude: Įrenginio parašas = 0x1e9587 (tikriausiai m32u4) avrdude: skaitomas įvesties failas "build-promicro-16MHzatmega32U4/sketchbook.hex" avrdude: rašymo blykstė (11580 baitų): avrdude: 11580 baitų flash raštu avrdude: saugus režimas: saugikliai gerai (E: CB, H: D8, L: FF) avrdude done. Ačiū.

Na, ačiū avrdude, o dabar mūsų „Arduino“yra iš naujo nustatytas ir užprogramuotas nauju kodu, kurį galite tiesiog redaguoti naudodami vi arba savo mėgstamą redaktorių vietoje, nereikia jokių IDE. Atkreipčiau dėmesį, kad įkeldami turėtumėte uždaryti C valdymo programą, ekraną ar bet ką kitą, prieinamą prie arduino, kitaip prievadas grįš kaip /dev /ttyACM1 po atstatymo.

3 žingsnis: uždarymo ir užduočių sąrašas

Uždarymo ir užduočių sąrašas
Uždarymo ir užduočių sąrašas
Uždarymo ir užduočių sąrašas
Uždarymo ir užduočių sąrašas
Uždarymo ir užduočių sąrašas
Uždarymo ir užduočių sąrašas

Nors aš sukūriau šią aplinkos jutiklių dėžutę serverių patalpoms, galite ją naudoti chemijos/elektronikos laboratorijose, sandėliuose, įprastose patalpose ir viskam kitam. Ir taip, kadangi jis naudoja TCP/IP, tai yra IoT įrenginys, G turėjau tai nurodyti ir pavadinime, kad jis taptų iniciatyvesnis:)

Galite lengvai modifikuoti tiek aparatinę, tiek programinę įrangą, kad galėtumėte automatiškai įjungti kambario apšvietimą. Pažvelkite į kitą mano projektą: „Fenikso šešėlis“, kaip tai veikia šviesos valdymui, jūs turite visą aparatūrą, kad galėtumėte daryti tą patį (jis naudoja laikymo laikmačius, kad lemputės būtų įjungtos tol, kol buvo aptiktas judesys laikotarpis, jei vėl atsiranda judesys, laikmatis bus pakeltas).

Kai „OrangePI“paleidžia visą krūvą „Armbian“, galimybės yra neribotos, galite sukurti vietinę žiniatinklio sąsają, parašytą nuo nulio „php“, kad diagramose būtų rodomi istoriniai duomenys. Argi ne geriau, kad turite visiškai atviro kodo įrenginį, kuris stebi jūsų serverio patalpas, kuo galite didžiuotis, jei taip manote, sukurkite patys!

Rekomenduojamas: