Tartalomjegyzék:

SilverLight: Arduino alapú környezeti monitor kiszolgálószobákhoz: 3 lépés (képekkel)
SilverLight: Arduino alapú környezeti monitor kiszolgálószobákhoz: 3 lépés (képekkel)

Videó: SilverLight: Arduino alapú környezeti monitor kiszolgálószobákhoz: 3 lépés (képekkel)

Videó: SilverLight: Arduino alapú környezeti monitor kiszolgálószobákhoz: 3 lépés (képekkel)
Videó: Arduino with Silverlight 2024, Július
Anonim
SilverLight: Arduino alapú környezeti monitor kiszolgálószobákhoz
SilverLight: Arduino alapú környezeti monitor kiszolgálószobákhoz
SilverLight: Arduino alapú környezeti monitor kiszolgálószobákhoz
SilverLight: Arduino alapú környezeti monitor kiszolgálószobákhoz
SilverLight: Arduino alapú környezeti monitor kiszolgálószobákhoz
SilverLight: Arduino alapú környezeti monitor kiszolgálószobákhoz
SilverLight: Arduino alapú környezeti monitor kiszolgálószobákhoz
SilverLight: Arduino alapú környezeti monitor kiszolgálószobákhoz

Egyszer azt a feladatot kaptam, hogy keressek egy környezeti szondát a cégem szervertermében a hőmérséklet figyelésére. Az első ötletem az volt, hogy miért nem csak egy málna PI -t és egy DHT -érzékelőt használ, mert az operációs rendszer telepítésével együtt kevesebb, mint egy óra alatt beállítható. Erre azt a hideg választ kaptam bekötött szemű főnököktől, hogy ezt nem fogjuk megtenni, mert munkaidőben többe kerül a beállítása, mint egy eszköz vásárlása. Az volt, hogy életem egy részében be kellett fogadnom ilyen szűk látókörű embereket, és megrendeltem néhány vállalati szintű EATON szemetet az Ebay -ről, és hívom, de abban a pillanatban úgy döntöttem, hogy saját szerver szobámhoz egy teljesen nyílt forráskódú Arduino -t fogok építeni alapú eszköz, amely sokkal jobb lesz, mint amit most rendeltem.

Ez a projekt SilverLight kódnevű, ne kérdezd tőlem, honnan veszem ezeket a neveket:) Csak néztem a fényes fél akril dobozt, és ezzel a névvel döntöttem, ennek semmi köze a microhoof termékhez, amiről utána tudtam meg.

1. lépés: Hardvertervezés

Hardver tervezés
Hardver tervezés
Hardver tervezés
Hardver tervezés
Hardver tervezés
Hardver tervezés

Kereskedelmi hardver áttekintés.

Ok, nem is kezdem azzal, hogy kitűnő ötlete az volt, hogy egy környezeti monitort helyezzenek el egy ups -be, de nyilván van piaca, ezért nézzük meg, mit tehetnek ezek:

Környezetellenőrző készülék KOMPATIBILITÁS

A 10/100Mb Network-MS, PXGUPS, PXGPDP és PXGMS.

A 10/100Mb ConnectUPS-X, ConnectUPS-BD és ConnectUPS-E FW V3.01 vagy újabb verzióval. MÉRETEK (LXWXH)

2,26 x 1,48 x 1,15 (hüvelyk) 57,6 x 37,6 x 29,3 (mm) SÚLY

34 g

Ez nagyon hasznos információ, nem? Nem kell aggódni, mert nem sokat tehetnek. A kezdéshez az UPS-nek szüksége lesz egy másik drága kiegészítő kártyára, amely összekapcsolja ezt a külön megvásárolt környezeti érzékelővel, általában szabványos CAT5 kábellel (ne is próbáljon semmit csatlakoztatni a porthoz, mert nincs szabvány erről). Azt állítják, hogy a készüléknek 10 percre van szüksége ahhoz, hogy "bemelegedjen", ami valójában órákig tartott, és ha egyszer megtörtént, akkor a lassan frissülő java felületükön megjelent, és van hőmérséklet és páratartalom. Innentől kezdve könnyű volt a riasztásokon alapuló feltételek beállítása, de kit érdekel, építsünk valami jobbat.

Ez a projekt több projektem együttese: Natalia meteorológiai állomás, a Főnix árnyéka. A doboz képes a következő környezeti korlátok figyelésére:

  • Hőmérséklet/páratartalom/hőindex
  • LPG, füst, alkohol, propán, hidrogén, metán és szén -monoxid koncentráció a levegőben (MQ2)
  • Napérzékenység (a lámpa világít a szerver szobában?)
  • Mozgás PIR érzékelő (ezentúl akár automatikusan is ki/be kapcsolhatja a lámpákat a mozgásérzékelőnek köszönhetően, ha valaki belép a szobába)

Mindezek az adatok szépen megjeleníthetők az LCD -képernyőn, miközben továbbítják a számítógéphez (Orange PI Zero) további feldolgozás és riasztások céljából. Bár lehetséges lenne az OrangePI -hez csatlakoztatni a digitális érzékelőket, például a DHT -t és az MQ2 digitális tüskéjét, én mindig inkább dedikált mikrókat használok ezekhez a feladatokhoz, és amikor az LCD -t is frissítenie kell, és más alacsony szintű műveleteket kell végeznie Az Arduino egyszerűen verhetetlen, és megbízhatóan képes megállás nélkül futni hosszú éveken keresztül (valójában még egyetlen Arduino sem, amelyik 24/7 üzemel, nem sikerült nekem). Az OrangePI a hiányosságaival (valljuk be, hogy ez egy 10 dolláros számítógép), például használhatatlan a nagy munkaterheléshez, nincs bsd -támogatás, az integrált wifi fel van puffadva stb.

Ez egy nagyon egyszerű projekt hardver, amely a következő összetevőket igényli:

  • Arduino PRO Micro
  • LCD képernyő 2x16 karakter RGB
  • AC-DC leválasztó kapcsoló tápmodul 220V-5V HLK-5M05 (ezek nagyon jók Arduino/ESP projektekhez), ez az 5V/5W verzió!
  • 2x300ohm ellenállások
  • 2x szalvéta (piros/zöld)
  • PIR mozgásérzékelő
  • MQ2 érzékelő
  • DHT22
  • LDR
  • 2X10Kohm ellenállás
  • Berregő
  • Orange PI Zero
  • mini USB adatkábel

Nem is vettem a fáradtságot, hogy PCB -t készítsek ehhez a szokásos kenyérlaphoz, mert az alkatrészek egyszerűen csatlakoztathatók az Arduino -hoz (lásd a mellékelt képeket):

-A DHT22 10K felhúzást igényel a VCC -hez (digitális)

-Az LDR 10K lehúzást igényel a GND -hez (analóg)

-MQ2 közvetlenül csatlakoztatható bármely analóg tűhöz (analóg) <inkább analógot használjon, mert miért ne, ha van egy analóg érintkezős MCU -nk, ahol a pontos értéket kaphatjuk, ahelyett, hogy beállítanánk néhány potot a készülék hátoldalán, hogy magas vagy LOW belőle, a tervezésemben egyébként is elérhetetlen ragasztás miatt. Ellenőrizze:

-A PIR közvetlenül csatlakoztatható bármilyen tűhöz (digitális)

-LCD: 4 tűvel hajtható, bármelyik tűhöz csatlakoztatható (digitális) +2 RS/E (digitális)

-Buzzer: közvetlenül csatlakoztatható bármilyen Arduino csaphoz (digitális)

Az általam használt pinout látható a kódban. Mindezek összekötése ezután meglehetősen egyszerű, egyenként is elvégezheti, győződjön meg arról, hogy 1 érzékelő tökéletesen működik, majd folytassa a következővel, csak tévedhet, ha véletlenül rossz helyre csatlakoztatja a vezetékeket (pl. /gnd egy érzékelő esetében, eddig ez soha nem ölte meg egyik készülékemet sem). Amit itt megjegyeznék, hogy túl sok VCC és GND volt összerakva számomra, nem tudtam összenyomni őket egy sorkapocson, így forrasztottam őket.

Szintén a DHT -kről ne feledkezzen meg a többi projektemből: ha beírja a DHT könyvtárat a kódjába, és a DHT érzékelő nincs csatlakoztatva, vagy rosszul van csatlakoztatva a DHT (pl. hogy örökké lógjon az elején.

A PIR mozgásérzékelő szenzorokról, amint a képemen is látszik, rengeteg hamisítvány van ezekből, valójában még azt is nehezen venném, ha eredeti terméket vásárolnék az Ebay -től. A hamisítványok ugyanolyan jól működnek, még hosszú távon is, de tükröződik az áramkörük, ami miatt a + és - csapok megfordulnak, és ezeket is könnyű felismerni: kék PCB -vel érkezik, nem a szokásos zöld, hiányzik a címke a fazékmérők. Szerencsém volt, hogy egy eredeti terméket találtam a dobozomban, különben a pozíció megváltoztatása lefedi számomra a 2 ledet. Azt tapasztaltam, hogy mindkét edény félúton forog nekem. Ez elegendő hatótávolságot biztosít az érzékeléshez akkor is, ha mozgás van, a digitális láb körülbelül egy percig HIGH helyzetben marad, így nem kell pótolni ezt a kódot. A hamisítványokon könnyen meghatározható, hogy melyik oldal a - és + csak nézze meg a csapokhoz csatlakoztatott elektrolitsapkák megfelelő lábait.

A doboz vágásához gyémánt dremel fejet használtam (ami túlzás volt, de remekül működött) és normál fúrógépet. Ezekkel a csatlakozódobozokkal könnyű dolgozni, és bár nem szeretem a ragasztást, nem volt kéznél csavar és csavar, amikor ezt megépítettem, ezért megvettem az alkut, hogy összeragaszthassam a dolgokat (amelyek később könnyen felmelegíthetők és szétszedhetők. ugyanaz a ragasztópisztoly töltés nélkül).

2. lépés: Szoftvertervezés

Szoftver tervezés
Szoftver tervezés
Szoftver tervezés
Szoftver tervezés

Az Arduino kód is egyszerű, alapvetően minden ciklus elején lekér minden érzékelő leolvasást. Bekapcsolja a LED -eket, ha mozgás vagy füst van, és riasztási hangot ad a csengőn, ha füst van (ez az egyetlen blokkoló kód, ezért rövidítettem), majd megjeleníti az adatokat az LCD -n, és végül elküldi a számítógépen 10 másodperces tartási idővel, nehogy elárasztja a portot.

Ez a projekt az Arduino-> OrangePI egyirányú kommunikációját használja, nincsenek végrehajtva semmilyen parancsok. Bár ez teljesen lehetséges lenne, mint egy másik projektemben, ahol a számítógép LCD_PRINT1 vagy LCD_PRINT2 -t küldhet, hogy felülírja az LCD képernyő egy sorát saját üzenetével (pl. Ip -cím, üzemidő, rendszerdátum, cpu használat), a képernyő olyan kicsi a 3 érzékelő adatainak megjelenítéséhez, hogy nem is zavartam magam. A SOL és az SMK értékek akár 4 számjegyűek is lehetnek 0000-1023, és már 8 értékes karaktert foglal el a képernyőn.

Az LCD kijelzőn észrevehet egy kis trükköt a kódban, miszerint minden mért érték után üres helyek ("") kerülnek nyomtatásra, majd a kurzort fix pozíciókba helyezem az új ikonok és adatok elhelyezéséhez. Ezek azért vannak, mert az LCD nem olyan okos, hogy megértse a számokat, csak lerajzolja, amit kap, és ha például 525 -ös napelemes értéke hirtelen 3 -ra csökkent, akkor 325 -öt jelenít meg a képernyőn ott.

Egy C vezérlőkód fut az OrangePI -n, és naplózza a környezeti adatokat, és szükség esetén e -mail értesítéseket küld.

Az OrangePI futtatja az Armbiant (amely a Debian Stretch alapján készült íráskor). Ezt a szoftver részbe fogom beilleszteni, mivel hw probléma volt, amit megoldott. Íme az eszköz átlagos energiafogyasztása:

0,17 A - csak Arduino + érzékelők

0,5-0,62 A - OrangePI indítás

0,31 A - Narancssárga PI alapjáraton

0,29 A - A narancssárga PI ki van kapcsolva (nem igazán lehet kikapcsolni, nincs ACPI vagy hasonló)

0,60 A - Stressz teszt 100% CPU használat 4 magon

Ez az OrangePI már régóta dobozban volt. A régi kernellel az eszköz akkora áramot eresztett le (ahogy a mérő szerint a csúcs 0,63 A körül volt), amit a tápegység valószínűleg nem tudott biztosítani, hogy egyszerűen nem indult be, a rendszerindítási folyamat elakadt, és a 2 ethernet led világított folyamatosan és semmit sem csinál.

Ez most bosszantó, mivel a HLK-5M05 azt állítja, hogy 5 W-on képes 5 V-on, így képes 1 Amp-ot biztosítani, de mivel ezek az eszközök Kínából jönnek ki, soha nem lehet tudni, a 0,63 A csúcs sokkal alacsonyabb volt, mint a névleges max. érték. Tehát egyszerű újraindítási teszteket futtattam le, 10 újraindítás után az OrangePI csak kétszer indult el sikeresen, ami majdnem kiesett a projektből, mivel nem szeretem a hibás, következetlen viselkedést az áramkörökben. Szóval elkezdtem googlizni, talán van valami módja annak, hogy csökkentse az energiafogyasztást a rendszerindításkor a szoftverből (mivel ez csak akkor volt probléma), és találtam egy cikket, amely a script.bin módosításáról beszél, de ez az Orange PI PC és a A fájlok hiányoztak a tárolóból, így bármiféle végső megoldásként varázslatos "apt frissítést" hajtottam végre a firmware, a kernel és minden egyéb frissítéséhez, remélve, hogy az kevésbé fog lemerülni, és az eszköz be tud indulni, és:

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 Jul 31. 22:07:23 CEST 2019 armv7l GNU/Linux

Működött! A hardver szoftverproblémára való dobása általában a lusta java fejlesztőknek megy, de ebben az esetben megoldottuk a hardverproblémát a szoftverrel, ami nagy siker. További 20 újraindítási tesztet végeztem, amikor az eszköz minden egyes esetben indult. Még mindig megjegyezném, hogy az Opi bekapcsolása (csatlakoztatás/leválasztás) által okozott áramlökés olyan nagy, hogy bármikor visszaállítja az Arduino -t (egy egyszerű újraindítás csak villog az LCD -n, de nem okoz további problémákat), de ez a probléma továbbra is fennáll elrejtve, mivel a 2 együtt indul.

Megnéztem a kernel modulokat is:

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

Valójában mire van szükségünk ezekből? Ok, a pwr és a termál hasznos lehet, de a hang, a soros port, a wifi (már megszakadt a hw), nem kell, hogy mindezek feketelistára kerüljenek. A későbbiekben létrehozok egy egyéni kernelt is, csak a szükséges modulokkal.

Amire szükségünk van, és alapértelmezés szerint nincs betöltve, az a CDC ACM, hogy kommunikáljon az Arduino -val, engedélyezze a következővel:

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

Ezt követően már tesztelheti a kapcsolatot a következőkkel:

screen /dev /ttyACM0 9600

10 másodpercenként látnia kell az állapotadatokat.

Riasztások és megfigyelés

A riasztások miatt csak beraktam a rendszer () hívásokat a C vezérlőkódba, amely soros adatokat fogad, így nincs szükség külső eszközökre. Néhány példa figyelmeztetések:

- A hőmérséklet 30 C fölé emelkedik

- A páratartalom meghaladja a 70 % -ot (nem egészséges a szerverek számára)

- Mozgást észlelt a szobában (ez bosszantó lehet, ha továbbra is a szerver szobában tartózkodik)

- Füstöt vagy gázt észleltek (a 100 feletti riasztásokat komolyan lehet venni, játszottam ezzel az érzékelővel, és sok mindenre bekapcsol, például a füst létrehozása az érzékelő mellett forrasztópáka segítségével valamivel több, mint 50, miközben legközelebb cigarettázik o 500 -ig emelkedett, még a hagyományos dezodorokból származó gázokat is észlelt messziről)

A történelmi adatok megőrzése érdekében nem foglalkoztam egy eszköz kifejlesztésével, mert miért kell feltalálni a kereket, ha kiváló megfigyelési kereteket kaptunk. Mutatok egy példát, hogyan lehet ezt beépíteni személyes kedvencembe, a Zabbixbe:

apt-get install zabbix-agent

Adja hozzá a /etc/zabbix/zabbix_agentd.conf végéhez

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}'

A zabbix_agentd -p futtatásával most vissza kell adnia a megfelelő értékeket:

ezüstfény.hum [t | 41]

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

A hőindexet gyűjtöm, de gyakorlati hasznát nem látom, így csak naplózásra kerül. A C vezérlőkódban 2 naplózási funkciót valósítottam meg, az első az összes adatot felhasználóbarát formátumban rögzíti:

[SILVERLIGHT] 2019-09-10 23:36:08 => Páratartalom: 44, Temp: 22, Szia: 25, Nap: 0, Mozgás: 0, Füst: 21

[SILVERLIGHT] 2019-09-10 23:36:18 => Páratartalom: 44, Temp: 22, Szia: 25, Nap: 0, Mozgás: 0, Füst: 21 [SILVERLIGHT] 2019-09 -10 23:36:29 => Páratartalom: 44, hőmérséklet: 22, sziasztok: 25, napelem: 0, mozgás: 0, füst: 22 [EZÜSTVILÁGÍTÁS] Az adatok érkeztek: 2019-09-10 23:36:39 => Páratartalom: 44, Hőmérséklet: 22, Sziasztok: 25, Nap: 0, Mozgás: 0, Füst: 21

A második:

void logger2 (karakter *szöveg) {

FILE *f = fopen ("/dev/shm/silverlight-zbx.log", "w"); if (f == NULL) {printf ("Hiba a memórianaplófájl megnyitásakor! / n"); Visszatérés; } fprintf (f, "%s", szöveg); fclose (f); Visszatérés; }

Ez egy 1 soros naplót helyez a memóriába (kiküszöböli a felesleges rw műveleteket az sdcardon), amelyet legközelebb mindig felülír. Ez a napló csak a 6 adatoszlopot tartalmazza, és nincs időbélyeg, ez könnyen olvasható a Zabbix számára.

Utolsó bónuszként: hogyan programozhatja az Arduino -t közvetlenül az OrangePI -ből, hogy ne kelljen minden alkalommal odamennie az eszközhöz, és csatlakoztatnia a laptopot.

2 módja van:

-Könnyű módszer: Telepítse a teljes Arduino IDE -t, és a könyvtárak valamilyen távoli asztalt, például X11 -et használnak átirányítással, Xrdp, Xvnc, Nxserver stb.

-Kemény mód: Telepítse az Arduino IDE -t, és használja a parancssort

Ezúttal keményen fogunk járni, mivel nem szeretek X11 -t telepíteni a szerverekre. Ehhez 6 komponensre lesz szüksége:

1, Arduino IDE az ARM 32 bithez ->

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

3, Arduino Makefile projekt -> git klón

4, DHT könyvtár

5, Sparkfun tábla definíciók

6, SilverLight.ino, fő kód

Hogy megkönnyítsem, az utolsó 4 ponthoz szükséges fájlokat összegyűjtöttem (sketchbook.tgz), így csak az első 2 -re lesz szüksége

Először is a legjobb, ha rendszeres felhasználót hoz létre, aki rw hozzáféréssel rendelkezik az USB -porthoz:

adduser ezüst

usermod -a -G dialout ezüst

SCP -vel a sketchbook.tgz fájlt az eszközhöz az újonnan létrehozott felhasználó saját könyvtárában, és bontsa ki ott:

cd /home /ezüst

tar xvzf vázlatfüzet.tgz

Ha szeretné megérteni, hogy mi történik a motorháztető alatt, amikor grafikus IDE -t használ:

Az Arduino vázlat készítésének folyamatát az Arduino IDE használatakor az Arduino webhelyén (https://www.arduino.cc/en/Hacking/BuildProcess) és részletesebben itt találja: https://www.arduino.cc/ hu/Hacker/BuildProcess

Általában az Arduino szabványos építési folyamata a következő:

Kombinálja az.ino fájlokat a fő vázlatfájlba. A fő vázlatfájl átalakítása: adja hozzá az #include utasítást; funkció deklarációk (prototípusok) létrehozása a fő vázlatfájl összes funkciójáról; csatolja a cél main.cxx fájljának tartalmát a fő vázlatfájlhoz. Fordítsa le a kódot az objektumfájlokhoz. Kapcsolja össze az objektumfájlokat egy.hex fájl létrehozásával, amely készen áll az Arduino -ba való feltöltésre.

Vannak némi különbségek az Arduino szabványos építési folyamata és az Arduino-Makefile-t használó építési folyamat között:

Csak egy.ino fájl támogatott. A funkció deklarációk nem jönnek létre automatikusan az.ino fájlban. A felhasználónak gondoskodnia kell a helyes funkció deklarációk létrehozásáról.

Az építési folyamat szíve a Makefile. Ne aggódjon, minden készen áll az Ön számára, ez egy kicsit bonyolultabb, ha így fordítunk olyan nem szabványos táblákhoz, mint a SparkFun sorozat.

BOARD_TAG = promicro

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

És csak annyit kell begépelnie, hogy: a feltöltés (amely először felépíti a.hex fájlokat, majd az avrdude segítségével tölti fel őket), valami ilyesmi lesz:

mkdir -p build-promicro-16MHzatmega32U4

make reset make [1]: Belépés a '/home/silver/sketchbook'/home/silver/sketchbook/Arduino-Makefile/bin/ard-reset-arduino --caterina/dev/ttyACM0 könyvtárba [1]: Kilépés a könyvtárból ' /home/silver/sketchbook 'make do_upload make [1]: Belépés a könyvtárba'/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 Csatlakozás programozóhoz:. Talált programozó: Id = "CATERIN"; type = S Szoftververzió = 1.0; Hardver verzió nincs megadva. A programozó támogatja az automatikus hozzáadást. A programozó támogatja a pufferelt memória hozzáférést a buffersize = 128 bájt értékkel. A programozó a következő eszközöket támogatja: Eszközkód: 0x44 avrdude: Az AVR-eszköz inicializálva és készen áll az utasítások elfogadására (11580 bájt): avrdude: 11580 bájt flash írásos avrdude: biztonságos mód: Biztosítékok OK (E: CB, H: D8, L: FF) avrdude done. Köszönöm.

Nos, köszönöm avrdude, és most az Arduino -nkat alaphelyzetbe állítjuk és beprogramozzuk az új kóddal, amit csak szerkeszthet a vi -vel vagy a kedvenc szerkesztőjével helyben, nincs szükség semmilyen IDE -re. Megjegyezném, hogy feltöltés közben be kell zárnia a C vezérlőprogramot, a képernyőt vagy bármi mást, amely hozzáfér az arduino -hoz, különben a port a /dev /ttyACM1 néven fog visszatérni a visszaállítás után.

3. lépés: Zárás és feladatok listája

Zárás és feladatok listája
Zárás és feladatok listája
Zárás és feladatok listája
Zárás és feladatok listája
Zárás és feladatok listája
Zárás és feladatok listája

Bár én létrehoztam ezt a környezeti érzékelő dobozt a kiszolgálószobákhoz, használhatja kémia/elektronikus laborokhoz, raktárakhoz, rendes helyiségekhez és bármi máshoz. És igen, mivel TCP/IP -t használ, ez egy IoT -eszköz, G ezt is a címhez kellett volna fűznöm, hogy vállalkozóbb legyen:)

Könnyen módosíthatja mind a hardvert, mind a szoftvert, hogy automatikusan be lehessen kapcsolni a szoba világítását. Vessen egy pillantást a másik projektemre: A Phoenix árnyéka, hogyan működik ez a fényvezérléshez, kéznél van minden hardver, hogy ugyanezt tegye (tartás -időzítőket használ, hogy folyamatosan világítson, amíg mozgást észleltek időtartam, ha ismét mozgás van, az időzítő felütődik).

Mivel az OrangePI egy teljes verem Armbiant futtat, a lehetőségek határtalanok, létrehozhat egy helyi webes felületet, amely a semmiből íródott a php -ben, hogy megjelenítse a történelmi adatokat a grafikonokon. Nem jobb -e már, hogy egy teljesen nyílt forráskódú eszköz felügyeli a kiszolgálószobát, amire büszke lehet, ha úgy gondolja, hogy saját maga építse meg!

Ajánlott: