Arduinolyzer.js: Zet je Arduino in een Logic Analyzer (4 / 8 stap)

Stap 4: Node.js Server


Hier zijn de belangrijkste taken van de server:

  • Initialiseren van de seriële poort en opstarten van de Arduino
  • Een HTTP-server starten
  • Dienen de index.html pagina (en alle statische pagina's van "/")
  • Reageren op de AJAX POST te "/ start" door het leveren van de gegevens aan de Arduino via de seriële poort-object
  • Registreer een callback om te luisteren naar de Arduino voor voltooiing
  • Ontvangen en het pakket van de gegevens van de Arduino in een JSON-object en stuur het naar de client via socket.io

Dit alles gebeurt in een honderdtal coderegels dankzij bestaande npm modules. De server accepteert een bevel-lijn parameter, de naam van de seriële poort (/ dev/tty * op mac/unix, en COM * op Vensters).

[Waarschuwing: dit is mijn eerste keer met behulp van de serialPort -pakket. Ik had geen problemen, maar ik heb dat gevoel van echt te begrijpen het nog, dat maakt me ongemakkelijk. De debug console heeft soms rare tekens in wanneer de laarzen van de Arduino. Dit kan worden veroorzaakt door de TTY niet wordt leeggemaakt, of dit kan worden veroorzaakt door iets wat die ik niet begrijp over de timing van de seriële poort. Laat het me weten als je problemen hebt.]

Voordat server.js de HTTP-service met de Express app luisteraar begint, initialiseert het de seriële poort, geleverd door het eerste argument in de opdrachtregel. Er moet een timeout van de drie seconden wachten voor het apparaat te starten. Ik voegde aanvullende preventieve maatregelen om te wachten op de "geïnitialiseerde" tekenreeks van de Arduino voordat de gebruiker gegevens kan verzenden.

Client Server Communication

Er zijn slechts twee eindpunten blootgesteld door de server, POST naar "/ start" en krijgen van "/".

De Client Server gesprek via AJAX wordt afgehandeld door een formidabele formulierobject. Het eindpunt van de app Express "localhost8080 / start" vangt de POST transmissie via het form-object, die Native JSON tekstobject komt. Ik hoef echt niet een object, ik kon een tekenreeks gebruikt hebben, maar verliet ik enige flexibiliteit. Ik niet zelfs het registreren van een retouraanroep van de .on() met de POST-object, ik gewoon verwijzen naar de parameter "velden" tijdens het gesprek parse() .

De index.html -pagina wordt geserveerd met behulp van de Express statische pagina server module. Alles in de public / map kan worden geserveerd op die manier, met inbegrip van de CSS- en JS-modules.

Server de mededeling van de Arduino

Aangezien de client reeds de opdrachtreeks opgemaakt, de server gewoon schrijft u deze naar de seriële poort als- serialport.write() via het analyzer -object wordt gebruikt.

Arduino aan communicatie met de Server

De reactie van de Arduino gaat op de seriële poort .on('data') terugbellen in het analyzer -object

Server aan communicatie met de klant

De terugbeloproep van de gegevens beheert ook de verpakking van de gegevens in een JSON-object en het afvuren van het terug naar de client via een socket.io push. (Dit is allemaal heel spannend en verfrissende t.o.v. doen web duw terug in de late 1990 's!)

Ik heb toegevoegd sommige opdrachten logboek zodat ik de gegevensstromen van zowel de client als de Arduino kijken kan. Ik ook gebruik maken van de morgan -pakket te traceren van de HTTP-verzoeken.

Gerelateerde Artikelen

Zet uw Arduino in een Internet-provider

Zet uw Arduino in een Internet-provider

leren hoe zet je Arduino in een AVR In systeemprogrammeur. Hierdoor zal je branden bootloaders op nieuwe chips of programma AVR's zonder een bootloader.Stap 1: materialenOm te beginnen u het volgende nodig:* Arduino (ik zal worden met behulp van de U
Hoe gemakkelijk het testen van een Microcontroller met een Logic Analyzer

Hoe gemakkelijk het testen van een Microcontroller met een Logic Analyzer

Enkele van mijn projecten in het verleden hebben problemen als gevolg van een slechte digitale pin. Als dit ooit aan u gebeurde heeft, dan weet je hoe frustrerend het kan zijn. De meeste mensen de eerste reactie is dat er iets mis is met de code. Als
Zet je Arduino in een 4 stem wavetable-synthesizer met alleen een paar onderdelen...

Zet je Arduino in een 4 stem wavetable-synthesizer met alleen een paar onderdelen...

Meerdere synthesizer projecten hebben gedaan voor de Arduino, maar weinigen konden gebruik maken van de volledige kracht van de processor van de Arduino. DZL van GeekPhysical schreef een 4 voice wavetable-synthesizer die behoort tot de meer geavancee
Controle van de Arduino via een webservice met Teleduino

Controle van de Arduino via een webservice met Teleduino

Zet je Arduino in een verfijnde controle webplatform met behulp van Teleduino.Teleduino is zowel een product als een service. Zodra de Teleduino schets is geladen op uw Arduino (het "product"), het vervolgens verbinding met de server van de Tele
Goedkope Logic Analyzer

Goedkope Logic Analyzer

Als je wilt om digitale schakelingen misschien moet u een logic analyzer te melden gegevens en analyseren op PC die is erg handig voor het opsporen van fouten. Deze hulpprogramma's zijn niet zo duur en je kunt een gewoon kopen. Op een dag die realise
DPScope SE - de eenvoudigste echte oscilloscoop/logic analyzer op de planeet

DPScope SE - de eenvoudigste echte oscilloscoop/logic analyzer op de planeet

de DPScope SE is het resultaat van een uitdaging die ik voor mijzelf – om te bouwen van een praktisch bruikbare oscilloscoop met een minimum bedrag van componenten en voor minimale kosten. Het praktische voordeel is natuurlijk dat dit is een instrume
Solar powered iPhone lader en Arduino in een boek

Solar powered iPhone lader en Arduino in een boek

dit project loopt, maar het werkt goed als is en ik leerde veel van maken.  Het heeft ongeveer 7 maanden geduurd om te bouwen, beetje bij beetje, als ik kennis en delen verworven.  Ik was oorspronkelijk geïnspireerd door Honus' Mighty Minty Boost, du
Stroboscoop (zoetrope) met behulp van de Arduino en een gebroken Xbox 360 DVD-station

Stroboscoop (zoetrope) met behulp van de Arduino en een gebroken Xbox 360 DVD-station

Stroboscoop (AKA zoetrope) is een apparaat waarmee een illusie van een bewegende beeld door weergegeven: een snelle erfopvolging frames "" voor een fractie van een seconde als gevolg van de persistence of vision (POV) effect gestopt. Het is een
Hoe te meten van de temperatuur zeer nauwkeurig met een Arduino en een TSYS01 Temperatuur Sensor Board.

Hoe te meten van de temperatuur zeer nauwkeurig met een Arduino en een TSYS01 Temperatuur Sensor Board.

Tijdens zijn studie in de Universiteit werden we uitgedaagd als onderdeel van een cursus werken in het ontwerpen van een doos met zeer nauwkeurige temperatuurregeling. Mocht het project te doen slagen, moesten meerdere vakken worden gebouwd en gebrui
Arduino Steve - een Minecraft Animatronic

Arduino Steve - een Minecraft Animatronic

SamenvattingIk doe vaak Inleiding tot de elektronica voor groepen - en nadat de theorie is uit de weg - dit is leuk project om te zien van de theorie in de praktijk. Met een beetje voorbereiding (pre drukwerken) kan het worden afgerond in minder dan
ARD-e: de robot met een Arduino als een brein

ARD-e: de robot met een Arduino als een brein

het maken van een opensource gecontroleerd Arduino robot voor onder $100.Hopelijk na het lezen van dit instructable u zal zitten kundig Neem uw eerste stap in de robotica. ARD-e kost ongeveer 90 dollar tot $130 afhankelijk van hoeveel vrije elektroni
Arduino: Hergebruik een Laptop Fan

Arduino: Hergebruik een Laptop Fan

Welkom op mijn - hergebruik - Instructable serie.In dit Instructable We zullen gebruiken een oude Laptop ventilator om zich te ontdoen van het solderen van de rook.U moet:Oude Compaq NX9010SchroevendraaierArduino NanoMale-Male Jumper WireUSB A / B ka
Hoe de controle van de arduino met een mail

Hoe de controle van de arduino met een mail

Er zijn een heleboel oplossingen waarmee een Arduino board: web oplossingen, desktop applicatie oplossingen, hardwareoplossingen. Maar hoe zit het met e-mail? Ja, vind je iets op het web, maar ze nodig hebben voor ethernet schilden en vaak is Arduino
Extra ingangen voor Arduino met een toetsenbord

Extra ingangen voor Arduino met een toetsenbord

De Arduino is misschien wel de coolste ding op aarde. Er zijn vele soorten, de Uno, de Mega, de Pro, de Pro Mini, etc. etc.Maar één ding dat vaak een probleem kan zijn is dat je slechts een beperkt aantal inputs en outputs. Er zijn vele oplossingen v