Een innovatieve ingenieur kan een probleem in een ingewikkelde industriële omgeving oplossen met een paar goedkope elektronische modules en wat Arduino-programmering. Je kunt deze draadloze noodknop, samen met LoRa, gebruiken voor een groot aantal toepassingen.

Een noodknop

De oorspronkelijke reden voor de bouw van de hier gepresenteerde draadloze nooddrukknop (EPB, emergency push button) is nogal specifiek en heeft te maken met het nemen van monsters van treinen die kolen leveren aan een elektriciteitscentrale. Er moet van boven een steenkoolmonster van een kolenwagen worden genomen om de calorische waarde ervan te bepalen voordat het mag worden gebruikt. Dit is een belangrijke parameter voor een elektriciteitscentrale.

Inschrijven
Schrijf u in voor tag alert e-mails over LoRa!


Alvorens een monster te nemen, drukt de betreffende werknemer op de (bestaande) EPB om de machinist van de trein met een sein van zijn aanwezigheid op de hoogte te brengen. Dit zou de trein moeten immobiliseren. Helaas kan de ‘monsternemer’, afhankelijk van de lengte van de trein, de positie van de wagon en de kromming van het spoor, het betreffende sein niet altijd zien. Bij het verzamelen van monsters is het af en toe voorgekomen dat de trein toch nog doorrolde, waardoor ongelukken werden veroorzaakt en mensen gewond raakten. Het EPB-systeem was dus voor verbetering vatbaar.

Dingen om op te letten

Die kolentreinen kunnen erg lang zijn, tot 500 meter, en er kunnen er wel vier naast elkaar staan die tegelijkertijd worden bemonsterd en gelost. Voeg daar nog die gekromde spoorbaan aan toe, en je begrijpt dat het lastig is om te zien wat er overal gebeurt. Verder is de omgeving lawaaierig door lossende treinen. Hoorbare feedback is dus ook problematisch.

Het bestaande EPB-systeem is een bekabeld systeem. In een omgeving zoals hierboven beschreven is het echter riskant om lange kabels te gebruiken, omdat ze kapot kunnen gaan zonder dat iemand het merkt. Het vervangen van die kabels, of het verleggen van meerdere kabels ten behoeve van visuele feedback is ingewikkeld en duur. Het hoger maken van de seinmast zodat deze van grote afstand zichtbaar is, is ook geen praktische oplossing omdat je goede ogen moet hebben om te zien voor welk spoor het sein geldt.

Draadloos met LoRa

De oplossing die we hebben verzonnen, is de draadloze EPB (figuur 1). Deze bestaat uit twee eenheden: een EPB-zender en een EPB-ontvanger. Eigenlijk zijn die units bijna identiek en kunnen ze beide zenden en ontvangen, maar we zullen er op deze manier naar verwijzen. Desgewenst kun je het beschouwen als een master/slave- of client/server-systeem.

Wireless with LoRa Fig 1
Figuur 1. Overzicht van het draadloze nooddrukknopsysteem (EPB).

Alvorens een kolenmonster te nemen, drukt de bemonsteraar op een knop op de EPB-zender om zijn wens om een monster te nemen aan te geven. Wanneer de EPB-ontvanger in de controlecabine dit verzoek ontvangt, activeert deze een relais om de knop van het bestaande EPB-systeem te activeren, en stuurt een bevestiging terug naar de EPB-zenderunit. Nu weet de werknemer dat zijn signaal goed is aangekomen en kan hij veilig een monster nemen. Als hij klaar is, drukt hij op een tweede knop op de EPB-zender om het systeem weer vrij te geven. Dan geeft de EPB-ontvanger de bestaande EPB vrij door een tweede relais te activeren en stuurt hij opnieuw een bevestiging naar de EPB-zender. Het systeem is daarmee klaar voor een nieuw monster.

In het geval dat het systeem niet beschikbaar is, of het EPB-sein voor operationele doeleinden overbrugd wordt, zal de zender nooit feedback krijgen, zodat de bemonsteraar gewaarschuwd is en misverstanden worden voorkomen.

EPB-zender en -ontvanger: de schakelingen

De EPB-zender is een exact gelijk aan de bestaande EPB-unit, maar dan voorzien van een kleine antenne en een dito OLED-display. Het wordt gevoed door een enkele LiPo-cel. Het heeft twee activerings-drukknoppen. Erin zit is een ESP32-module die het OLED-display en een LoRa-transceivermodule aanstuurt (figuur 2). Merk op dat de ESP32-module alleen voor het gemak werd gebruikt, niet vanwege de draadloze mogelijkheden. Elke andere goedkope, energiezuinige microcontrollermodule met de juiste interfaces (I2C, UART, tweemaal GPIO) kan in plaats daarvan worden gebruikt.

EPB Sender with OLED display and two push buttons
Figuur 2.De EPB-zender bestaat uit een OLED-display en twee drukknoppen (naast de LoRa-transceiver).

De EPB-ontvanger is vergelijkbaar met de zender, behalve dat hij twee relais heeft in plaats van twee drukknoppen, en geen display (figuur 3). Merk op dat op elk moment slechts één van beide relais actief mag zijn. Daar zorgt de software voor.

The two relays of the EPB Receiver
Figuur 3. De twee relais van de EPB-ontvanger bedienen de knoppen van het bestaande EPB-systeem.

Beveiliging

Om het systeem zodanig te beveiligen dat het nooit gestoord kan worden door andere signalen, hebben we gekozen voor low-power LoRa-transceivermodules van Ebyte. Naast het gebruik van storingsbestendige spread-spectrumtechnologie bieden ze nog drie parameters: kanaalfrequentie, air rate en een 4-byte ID. Communicatie is alleen mogelijk als deze drie parameters aan beide zijden van de verbinding gelijk zijn.

De module heeft een seriële interface en levert maximaal 500 mW (21...30 dbm) bij 868 MHz (figuur 4). Het signaal kan probleemloos 500 meter langs het spoor overbruggen met een kleine handantenne en met de antenne van de ontvanger op het dak van de cabine/controlekamer geplaatst zodat overal zichtcontact bestaat.

EPB Sender built on perfboard.
Figuur 4. Prototype van de EPB-zender, opgebouwd op gaatjesprint.

Software

Net als de hardware van de twee units, is de software voor beide units ook vergelijkbaar en bestaat uit twee korte Arduino-sketches.

Beide units configureren de seriële poort die wordt gebruikt voor communicatie met de LoRa-transceiver als 9600N81 in de setup()-functie. De EPB-zender configureert twee GPIO-pinnen als ingangen voor de drukknoppen, terwijl de EPB-ontvanger ze configureert als uitgangen om de relais aan te sturen. De EPB-zender bereidt ook het OLED-display voor.

In de functie loop() controleren zowel de zender als de ontvanger eerst of er een bericht is ontvangen van de andere eenheid. Als dat het geval is, werken ze hun status dienovereenkomstig bij. De ontvanger retourneert een bevestiging naar de afzender en wacht op een nieuw bericht.

De zender blijft de toestand van zijn twee drukknoppen controleren. Afhankelijk van welke wordt ingedrukt, stuurt hij een korte ASCII-reeks via de seriële poort naar de LoRa-transceiver. Op elk moment wordt slechts één toetsdruk geaccepteerd.

De software kan worden gedownload van de projectpagina op Elektor Labs. Voel je vrij om deze naar eigen inzicht aan te passen. De strings die tussen de twee eenheden worden uitgewisseld, zijn min of meer willekeurig gekozen en kunnen worden vervangen door wat je maar wilt.


Redactienota: Dit artikel200578-03 is gepubliceerd in Elektor Juli/Aug 2023.


 

Vragen of opmerkingen?

Heeft u technische vragen of opmerkingen over dit artikel, draadloze oplossingen of LoRa? Neem contact op met Elektor via : redactie@elektor.com.