Inhoudsopgave:

SilverLight: Arduino-gebaseerde omgevingsmonitor voor serverruimtes - Ajarnpa
SilverLight: Arduino-gebaseerde omgevingsmonitor voor serverruimtes - Ajarnpa

Video: SilverLight: Arduino-gebaseerde omgevingsmonitor voor serverruimtes - Ajarnpa

Video: SilverLight: Arduino-gebaseerde omgevingsmonitor voor serverruimtes - Ajarnpa
Video: Eindwerk EAICT: Intelligente sensoren voor software-aansturing 2024, Juli-
Anonim
SilverLight: op Arduino gebaseerde omgevingsmonitor voor serverruimtes
SilverLight: op Arduino gebaseerde omgevingsmonitor voor serverruimtes
SilverLight: op Arduino gebaseerde omgevingsmonitor voor serverruimtes
SilverLight: op Arduino gebaseerde omgevingsmonitor voor serverruimtes
SilverLight: op Arduino gebaseerde omgevingsmonitor voor serverruimtes
SilverLight: op Arduino gebaseerde omgevingsmonitor voor serverruimtes
SilverLight: op Arduino gebaseerde omgevingsmonitor voor serverruimtes
SilverLight: op Arduino gebaseerde omgevingsmonitor voor serverruimtes

Ooit kreeg ik de opdracht om in de serverruimte van mijn bedrijf op zoek te gaan naar een omgevingssonde voor het bewaken van de temperatuur. Mijn eerste idee was: waarom niet gewoon een Raspberry PI en een DHT-sensor gebruiken, het kan in minder dan een uur worden ingesteld, inclusief de installatie van het besturingssysteem. Hiervoor kreeg ik de kille reactie van geblinddoekte bazige mensen dat we dat niet gaan doen omdat het in werkuren meer zou kosten om het in te stellen dan het kopen van een apparaat. Een deel van mijn leven dit soort bekrompen mensen moeten accepteren was één ding en ik bestelde wat enterprise-grade EATON-rommel van Ebay en noemde het, maar ik besloot op dat moment dat ik voor mijn eigen serverruimte een volledig Open Source Arduino zou bouwen gebaseerd apparaat dat veel beter zal zijn dan wat ik zojuist heb besteld.

Dit project heeft de codenaam SilverLight, vraag me niet waar ik deze namen vandaan heb:) Ik keek net naar de glanzende halve acryldoos en besloot met deze naam, het heeft niets te maken met het microhoof-product waar ik later achter kwam.

Stap 1: Hardware-ontwerp

Hardware-ontwerp
Hardware-ontwerp
Hardware-ontwerp
Hardware-ontwerp
Hardware-ontwerp
Hardware-ontwerp

Overzicht commerciële hardware.

Oké, dus ik begin niet eens met wiens geweldige idee het was om een omgevingsmonitor in een ups te plaatsen, maar er is duidelijk een markt voor, dus laten we eens kijken wat deze kunnen doen:

Milieubewakingsapparaat COMPATIBILITEIT

De 10/100Mb netwerk-MS, PXGUPS, PXGPDP en PXGMS.

De 10/100Mb ConnectUPS-X, ConnectUPS-BD en ConnectUPS-E met FW V3.01 en hoger. AFMETINGEN (LXBXH)

2,26 x 1,48 x 1,15 (inch) 57,6 x 37,6 x 29,3 (mm) GEWICHT

1,19 oz (34 g)

Dat is toch erg nuttige informatie? Geen zorgen, want ze kunnen niet veel doen. Om zelfs maar aan de slag te gaan, heeft uw UPS hiervoor een andere dure add-on-kaart nodig die deze verbindt met de omgevingssensor die u apart koopt, meestal met standaard CAT5-kabel (probeer zelfs niets op die poort aan te sluiten, want er is niets standaard over het). Ze beweren dat het apparaat 10 minuten nodig heeft om op te warmen, wat in werkelijkheid uren duurde en toen het eenmaal werkte, verscheen het in hun langzaam bijgewerkte Java-interface en hebben we temperatuur en vochtigheid. Het instellen van op waarschuwingen gebaseerde voorwaarden was vanaf dit punt eenvoudig, maar wat maakt het uit, laten we iets beters bouwen.

Dit project is een samenvoeging van meerdere van mijn projecten: Natalia weerstation, Shadow of phoenix. De box is in staat om de volgende omgevingseisen te bewaken:

  • Temperatuur/vochtigheid/warmte-index
  • LPG-, rook-, alcohol-, propaan-, waterstof-, methaan- en koolmonoxideconcentraties in de lucht (MQ2)
  • Zonnegevoeligheid (staat het licht in de serverruimte?)
  • Bewegings-PIR-sensor (u kunt de lichten voortaan zelfs automatisch aan-/uitzetten dankzij de bewegingssensor wanneer iemand de kamer binnenkomt)

Al deze gegevens worden mooi weergegeven op een LCD-scherm en worden ook doorgestuurd naar een computer (Orange PI Zero) voor verdere verwerking en waarschuwingen. Hoewel het mogelijk zou zijn om digitale sensoren zoals de DHT en de digitale pin van de MQ2 rechtstreeks op de OrangePI aan te sluiten, gebruik ik altijd liever speciale micro's voor deze taken en wanneer je ook het LCD-scherm moet bijwerken en andere low-level spul, de Arduino is gewoon onverslaanbaar en kan jarenlang betrouwbaar non-stop draaien (eigenlijk is er nog geen enkele Arduino die 24/7 draait, mislukte bij mij). De OrangePI met zijn tekortkomingen (laten we eerlijk zijn, het is een 10 $ computer) zoals onbruikbaar voor zware werklast, geen bsd-ondersteuning, geïntegreerde wifi is opgeblazen enz. kan gemakkelijk kleine werklast aan, zoals het nemen van sensormetingen via serieel (USB) en deze te verwerken.

Dit is qua hardware een heel eenvoudig project waarvoor de volgende componenten nodig zijn:

  • Arduino PRO Micro
  • LCD-scherm 2x16 karakters RGB
  • AC-DC scheidingsschakelaar voedingsmodule 220V naar 5V HLK-5M05 (deze zijn zeer goed voor Arduino/ESP-projecten), dit is de 5V/5W-versie!
  • 2x300ohm weerstanden
  • 2xleds (rood/groen)
  • PIR bewegingssensor
  • MQ2-sensor
  • DHT22
  • LDR
  • 2X10Kohm weerstand
  • Zoemer
  • Oranje PI Nul
  • mini-USB-gegevenskabel

Ik heb niet eens de moeite genomen om een printje te maken voor dit gewoon gebruikte gewone breadboard omdat de componenten eenvoudig op de Arduino kunnen worden aangesloten (zie bijgevoegde foto's):

-DHT22 vereist een pullup van 10K naar VCC (digitaal)

-LDR vereist een pulldown van 10K naar GND (analoog)

-MQ2 kan direct worden aangesloten op elke analoge pin (analoog) < geef de voorkeur aan analoog, want waarom niet als we een MCU met analoge pinnen hebben waar we de exacte waarde kunnen krijgen in plaats van een pot op de achterkant van het apparaat aan te passen om HOOG of LAAG eruit, door het verlijmen in mijn ontwerp dat toch al onbereikbaar is. Check:

-PIR kan direct worden aangesloten op elke pin (digitaal)

-LCD: kan worden aangestuurd met 4 pinnen, kan worden aangesloten op elke pin (digitaal) heeft +2 RS/E (digitaal) nodig

-Buzzer: kan direct worden aangesloten op alle Arduino-pinnen (digitaal)

De pinout die ik heb gebruikt, is te zien in de code. Hierna alles met elkaar verbinden is vrij eenvoudig, je kunt ze ook één voor één doen, zorg ervoor dat 1 sensor perfect werkt en ga dan verder met de volgende, het enige wat je fout kunt doen is per ongeluk draden op verkeerde plaatsen aansluiten (bijv. Vcc verwisselen /gnd voor een sensor, tot nu toe heeft dit nog nooit een van mijn apparaten gedood). Wat ik hier zou opmerken, is dat er te veel VCC en GND's voor mij waren opgestapeld, ik kon ze niet door een klemmenstrook persen, dus ik heb ze allemaal gesoldeerd.

Vergeet ook niet over de DHT's van mijn andere projecten: als je de DHT-bibliotheek in je code plaatst en de DHT-sensor is niet aangesloten of verkeerd DHT aangesloten (bijv. 11 gedefinieerd in code die je gebruikt 22) die naar het programma kan leiden om in het begin voor altijd te blijven hangen.

Over de PIR-bewegingsdetectiesensoren, zoals je op mijn foto kunt zien, zijn er talloze nepvervalsingen hiervan, ik zou het zelfs moeilijk vinden om een echte van Ebay te kopen. De vervalsingen werken net zo goed, zelfs op de lange termijn, maar ze hebben hun circuit gespiegeld waardoor de + en - pinnen worden verwisseld, ook deze zijn gemakkelijk te herkennen: met blauwe pcb niet de gebruikelijke groene, ontbrekende labels voor de potmeters. Ik had het geluk een echte in mijn doos te vinden, anders zou het veranderen van de positie de 2 leds voor mij bedekken. Ik heb ontdekt dat beide potten die halverwege zijn aangezwengeld, voor mij werken. Dit geeft u een groot genoeg bereik om te voelen, ook wanneer er beweging is, wordt de digitale poot ongeveer een minuut in de HOGE positie gehouden, zodat u de code hiervoor niet hoeft in te halen. Op de vervalsingen is het eenvoudig te bepalen welke kant de - en + is kijk maar naar de bijbehorende pootjes voor de elektrolytische doppen die op de pinnen zijn aangesloten.

Voor het snijden van de doos gebruikte ik een diamanten dremelkop (wat een overkill was maar werkte prima) en een gewone boormachine. Deze aansluitdozen zijn gemakkelijk om mee te werken en hoewel ik niet van lijmen houd, had ik geen schroeven en bouten bij de hand toen ik dit bouwde, dus nam ik het koopje om dingen aan elkaar te lijmen (wat ook gemakkelijk kan worden opgewarmd en later uit elkaar gehaald met behulp van de hetzelfde lijmpistool zonder vulling erin).

Stap 2: Software-ontwerp

Software-ontwerp
Software-ontwerp
Software-ontwerp
Software-ontwerp

De Arduino-code is ook eenvoudig, hij haalt in feite alle sensormetingen aan het begin van elke lus. Schakelt de LED's in als er beweging of rook is en speelt ook een alarmgeluid af op de zoemer als er rook is (dit is de enige blokkeercode, dus ik heb hem kort gemaakt), geeft vervolgens de gegevens weer op het LCD-scherm en verzendt deze uiteindelijk via de pc met een wachtperiode van 10 seconden, om de haven niet te laten overstromen.

Dit project maakt gebruik van eenrichtingscommunicatie van Arduino->OrangePI, er zijn geen commando's geïmplementeerd. Hoewel dit perfect mogelijk zou zijn om dit te doen, zoals ik het deed in een van mijn andere projecten waar de computer LCD_PRINT1 of LCD_PRINT2 kan verzenden om een regel van het LCD-scherm te overschrijven met zijn eigen bericht (bijv.: ip-adres, uptime, systeemdatum, cpu-gebruik), het schermgebied is zo klein voor het weergeven van gegevens van 3 sensoren dat ik niet eens de moeite nam. De SOL- en SMK-waarden kunnen beide oplopen tot 4 cijfers 0000-1023 en nemen al 8 waardevolle karakters op het scherm in beslag.

Met het LCD-scherm kun je een klein trucje in de code opmerken dat na elke gemeten waarde een afdruk van spaties (" ") wordt toegepast, waarna ik de cursor naar vaste posities verplaats om de nieuwe pictogrammen en gegevens te plaatsen. Deze zijn er omdat het LCD-scherm niet zo slim is om getallen te begrijpen, het tekent gewoon wat het krijgt en als je bijvoorbeeld een zonne-waarde van 525 had die plotseling daalde tot 3, dan zal het 325 weergeven en de oude rommel op het scherm achterlaten daar.

Een C-controlecode die op de OrangePI draait en de omgevingsgegevens registreert en indien nodig e-mailwaarschuwingen verzendt.

De OrangePI draait Armbian (die op het moment van schrijven is gebaseerd op Debian Stretch). Ik zal dit opnemen in het softwaregedeelte dat het een hw-probleem was wat het oploste. Hier zijn de gemiddelde stroomverbruik van het apparaat:

0,17 A - Alleen Arduino + sensoren

0,5-0,62 A - OrangePI opstarten

0,31 A - Oranje PI in rust

0.29 A - Oranje PI uitgeschakeld (kan het niet echt afsluiten, het heeft geen ACPI of iets dergelijks)

0,60 A - Stresstest 100% CPU-gebruik op 4 cores

Ik had deze OrangePI al heel lang in een doos. Met de oude kernel verbruikte het apparaat zoveel stroom (zoals de meter zei piekte rond de 0,63 A) wat de PSU waarschijnlijk niet kon leveren dat het gewoon niet opstartte, het opstartproces liep vast en ik kreeg de 2 ethernet-leds die oplichten constant en niets doen.

Dit is een beetje vervelend omdat de HLK-5M05 beweert dat hij 5W op 5V kan doen, waardoor hij 1 Amp kan leveren, maar met deze apparaten die uit China komen, weet je maar nooit, de 0,63 A-piek was veel lager dan de nominale max. waarde. Dus ik voerde eenvoudige herstarttests uit, vanaf 10 herstarts zou de OrangePI slechts twee keer succesvol opstarten, waardoor ik het bijna uit het project gooide, omdat ik niet van inconsistent gedrag met fouten in circuits houd. Dus ik begon te googelen, misschien is er een manier om het stroomverbruik tijdens het opstarten van software te verlagen (omdat het toen alleen een probleem was) en vond een artikel dat sprak over het aanpassen van het script.bin, maar het was voor de Orange PI-pc en de bestanden ontbraken in de opslag, dus wat dan ook, als laatste redmiddel heb ik de magische "apt-upgrade" gedaan om de firmware, kernel en al het andere te upgraden, in de hoop dat het minder leegloopt en het apparaat kan opstarten en:

Linux silverlight 4.14.18-sunxi #24 SMP vr 9 feb 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

Het werkte! Het gooien van hardware naar een softwareprobleem is meestal de luie java-ontwikkelaars om naar toe te gaan maar in dit geval hebben we een hardwareprobleem met software opgelost wat een groot succes is. Ik heb nog zo'n 20 reboot-tests gedaan waarbij het apparaat elk afzonderlijk geval heeft opgestart. Ik zou nog steeds opmerken dat de stroomstoot door het inschakelen van de Opi (aansluiten / loskoppelen) zo groot is dat de Arduino op elk moment wordt gereset (een eenvoudige herstart zal het LCD-scherm gewoon flikkeren maar geen verdere problemen veroorzaken), maar dit probleem blijft verborgen omdat de 2 samen worden opgestart.

Ik heb ook naar de kernelmodules gekeken:

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

Wat hebben we hier echt van nodig? Ok, de pwr en thermal kunnen nuttig zijn, maar geluid, seriële poort, wifi (al kapotte hw) we hebben deze niet allemaal nodig, kunnen op de zwarte lijst worden gezet. Ik zal later ook een aangepaste kernel maken met alleen de benodigde modules.

Wat we wel nodig hebben en het is niet standaard geladen, is de CDC ACM om met de Arduino te communiceren, schakel deze in met:

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

Hierna kunt u de verbinding al testen met:

scherm /dev/ttyACM0 9600

U zou moeten zien dat de statusgegevens elke 10 seconden worden verzonden.

Waarschuwingen en monitoring

Vanaf waarschuwingen heb ik zojuist system()-aanroepen in de C-besturingscode geplaatst die de gegevens van serieel ontvangt, dus er zijn geen externe tools vereist. Enkele voorbeeldwaarschuwingen:

- Temperatuur gaat boven de 30 C

- Vochtigheid gaat boven de 70% (niet gezond voor de servers)

- Beweging gedetecteerd in de ruimte (dit kan vervelend zijn als je doorgaat in je serverruimte)

- Rook of gas gedetecteerd (meldingen van meer dan 100 kunnen serieus worden genomen, ik heb met deze sensor gespeeld en hij gaat voor veel dingen aan, bijvoorbeeld het creëren van rook naast de sensor met een soldeerbout resulteerde in iets meer dan 50 tijdens het roken van een sigaret daarna o het piekte tot 500, het detecteerde zelfs gas van gewone deodorant van ver weg)

Voor het bewaren van historische gegevens heb ik niet de moeite genomen om een tool te ontwikkelen, want waarom het wiel opnieuw uitvinden als we uitstekende monitoringkaders hebben. Ik zal een voorbeeld laten zien van hoe dit te integreren in mijn persoonlijke favoriet, Zabbix:

apt-get install zabbix-agent

Toevoegen aan het einde van: /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 }'

Het uitvoeren van zabbix_agentd -p zou nu de juiste waarden moeten retourneren:

silverlight.hum [t|41]

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

De hitte-index, ik verzamel het maar zie er geen praktisch nut van in, dus het is gewoon geregistreerd. In de C-controlecode heb ik 2 logging-functies geïmplementeerd, de eerste logt alle gegevens in een gebruiksvriendelijk formaat:

[SILVERLIGHT] Gegevens ontvangen op 10.09.2019 23:36:08 => Luchtvochtigheid: 44, Temp: 22, Hi: 25, Solar: 0, Motion: 0, Smoke: 21

[SILVERLIGHT] Gegevens ontvangen op 10.09.2019 23:36:18 => Luchtvochtigheid: 44, Temp: 22, Hi: 25, Zonne-energie: 0, Beweging: 0, Rook: 21 [SILVERLIGHT] Gegevens ontvangen op 2019-09 -10 23:36:29 => Vochtigheid: 44, Temp: 22, Hi: 25, Solar: 0, Motion: 0, Smoke: 22 [SILVERLIGHT] Gegevens ontvangen op 2019-09-10 23:36:39 => Luchtvochtigheid: 44, Temp: 22, Hi: 25, Solar: 0, Motion: 0, Smoke: 21

De tweede:

void logger2(char *tekst) {

BESTAND *f = fopen("/dev/shm/silverlight-zbx.log", "w"); if (f == NULL) { printf("Fout bij openen van geheugenlogbestand!\n"); opbrengst; } fprintf(f, "%s", tekst); fsluiten (f); opbrengst; }

Dit zal een 1-liner log in het geheugen plaatsen (elimineert onnodige rw-bewerkingen op de sdcard) die de volgende keer altijd zal worden overschreven. Dit logboek bevat alleen de 6 gegevenskolommen en geen tijdstempel, het is gemakkelijk leesbaar voor Zabbix.

Als laatste bonus: hoe je de Arduino rechtstreeks vanuit de OrangePI programmeert, zodat je niet elke keer naar het apparaat hoeft te lopen en je laptop inplugt.

Er zijn 2 manieren:

-Eenvoudige manier: installeer volledige Arduino IDE en bibliotheken gebruiken een extern bureaublad zoals X11 met doorsturen, Xrdp, Xvnc, Nxserver enz.

- Moeilijke manier: installeer de Arduino IDE en gebruik de opdrachtregel

We gaan het deze keer moeilijk doen, omdat ik niet dol ben op het installeren van X11 op servers. Hiervoor heb je 6 componenten nodig:

1, Arduino IDE voor ARM 32 bit ->

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

3, Arduino Makefile-project -> git-kloon

4, DHT-bibliotheek

5, Sparkfun-borddefinities

6, SilverLight.ino, hoofdcode

Om het makkelijker te maken heb ik de bestanden die nodig zijn voor de laatste 4 punten gebundeld (sketchbook.tgz), zodat je alleen de eerste 2 nodig hebt

Het is het beste om eerst een gewone gebruiker aan te maken die rw-toegang heeft tot de USB-poort:

adduser zilver

usermod -a -G dialout zilver

SCP de sketchbook.tgz naar het apparaat in de nieuwe homedirectory van de gebruiker en pak het daar uit:

cd /home/zilver

tar xvzf schetsboek.tgz

Om een beetje te begrijpen wat er onder de motorkap gebeurt als je de grafische IDE gebruikt:

De build-workflow van het bouwen van een Arduino-schets bij gebruik van de Arduino IDE wordt beschreven op de Arduino-website https://www.arduino.cc/en/Hacking/BuildProcess en in meer detail hier: https://www.arduino.cc/ nl/Hacken/Buildproces

Over het algemeen is het standaard Arduino-bouwproces:

Combineer.ino-bestanden in het hoofdschetsbestand. Transformatie van het hoofdschetsbestand: voeg de instructie #include toe; maak functiedeclaraties (prototypes) van alle functies in het hoofdschetsbestand; voeg de inhoud van het main.cxx-bestand van het doel toe aan het hoofdschetsbestand. Compileer de code om bestanden te object. Koppel de objectbestanden om een .hex-bestand te produceren dat klaar is om het naar de Arduino te uploaden.

Er zijn enkele kleine verschillen tussen het Arduino standaard bouwproces en het bouwproces met Arduino-Makefile:

Er wordt slechts één.ino-bestand ondersteund. Functiedeclaraties worden niet automatisch aangemaakt in het.ino-bestand. De gebruiker dient zelf zorg te dragen voor het aanmaken van de juiste functiedeclaraties.

Het hart van het bouwproces is de Makefile. Maak je geen zorgen, alles is voor je voorbereid, het is een beetje ingewikkelder om op deze manier te compileren voor niet-standaard boards zoals de SparkFun-serie.

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/silver/sketchbook/Arduino-Makemfile/Arduino-Makemfile

En alles wat je hoeft te typen is een: make upload (die eerst de.hex-bestanden bouwt en vervolgens avrdude gebruikt om ze te uploaden), het zal eindigen met zoiets als:

mkdir -p build-promicro-16MHzatmega32U4

make reset make[1]: Directory '/home/silver/sketchbook' /home/silver/sketchbook/Arduino-Makefile/bin/ard-reset-arduino --caterina /dev/ttyACM0 make[1]: Directory verlaten ' /home/silver/sketchbook' make do_upload make[1]: Ga naar directory '/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 Verbinding maken met programmer:. Gevonden programmeur: Id = "CATERIN"; type = S Softwareversie = 1.0; Geen hardwareversie opgegeven. Programmer ondersteunt auto addr increment. Programmer ondersteunt toegang tot gebufferd geheugen met buffergrootte = 128 bytes. Programmer ondersteunt de volgende apparaten: Apparaatcode: 0x44 avrdude: AVR-apparaat geïnitialiseerd en klaar om instructies te accepteren avrdude: Apparaathandtekening = 0x1e9587 (waarschijnlijk m32u4) avrdude: invoerbestand lezen "build-promicro-16MHzatmega32U4/sketchbook.hex" avrdude: flash schrijven (11580 bytes): avrdude: 11580 bytes flash geschreven avrdude: safemode: Zekeringen OK (E:CB, H:D8, L:FF) avrdude klaar. Bedankt.

Nou bedankt avrdude, en nu is onze Arduino gereset en geprogrammeerd met de nieuwe code, wat je gewoon lokaal kunt bewerken met vi of je favoriete editor, geen IDE's nodig. Ik zou opmerken dat je zowel het C-besturingsprogramma, het scherm of iets anders dat toegang heeft tot de Arduino tijdens het uploaden moet sluiten, anders komt de poort terug als /dev/ttyACM1 na reset.

Stap 3: Sluiting en takenlijst

Sluiting en takenlijst
Sluiting en takenlijst
Sluiting en takenlijst
Sluiting en takenlijst
Sluiting en takenlijst
Sluiting en takenlijst

Hoewel ik deze omgevingssensorbox voor serverruimten heb gemaakt, kun je hem gebruiken voor chemie / elektronische laboratoria, magazijnen, gewone kamers en al het andere. En ja, aangezien het TCP/IP gebruikt, is het een IoT-apparaat, G. Ik had dat ook in de titel moeten zetten om het ondernemender te maken:)

Je kunt zowel de hardware als de software eenvoudig aanpassen om ook de verlichting in de ruimte automatisch aan te laten gaan. Kijk eens naar mijn andere project: Shadow of phoenix hoe werkt dat voor lichtregeling, je hebt alle hardware bij de hand om hetzelfde te doen (het maakt gebruik van hold-timers om de lichten aan te houden zolang er beweging werd gedetecteerd binnen een tijdsperiode, als er weer beweging is, wordt een timer verhoogd).

Met de OrangePI met Armbian met volledige stack zijn de mogelijkheden onbeperkt, je kunt een lokale webinterface maken die helemaal opnieuw in php is geschreven om historische gegevens in grafieken weer te geven. Is dit niet al beter dat je een volledig Open Source-apparaat hebt dat je serverruimte bewaakt waar je trots op kunt zijn om te bouwen, als je dat denkt, bouw het dan zelf!

Aanbevolen: