Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Internet of Things-technologie

Efficiënte webservertechnologie voor microcontrollers met beperkte middelen

Enige tijd geleden publiceerden we een artikel met de titel Een frisse kijk op het insluiten van een webserver, waarin we voorstelden om WebSockets te gebruiken in plaats van HTTP met de traditionele GET- en POST-commando's. Een commentator bekritiseerde het artikel omdat het niet geschikt is voor een brede categorie van kleine op microcontrollers gebaseerde embedded systemen.

Het WebSocket-protocol gebruikt bij correct gebruik minder bronnen dan een traditionele webserver. We zijn zelfs van mening dat WebSockets de enige haalbare optie is als u ooit van plan bent om TLS in te schakelen voor de ingebouwde webserver. Mogelijk gebruikt u al een ingebouwde webserver in uw apparaat, maar het inschakelen van TLS op een standaardwebserver voor een apparaat met beperkte bronnen eindigt meestal in een ramp. Om te begrijpen waarom TLS zo'n probleem veroorzaakt voor standaard webservertechnologie, raadpleegt u onze zelfstudie Wanneer u een webserver niet in een apparaat insluit.

Modern referentieontwerp voor webapplicaties voor microcontrollers

We hebben onlangs onze Embedded HTTP en WebSocket Server aan GitHub toegevoegd. De Embedded HTTP- en WebSocket-server, de Minnow Server genaamd, is speciaal ontworpen voor kleine microcontrollers met beperkte middelen.

Wat nog belangrijker is, we hebben ook een referentievoorbeeld toegevoegd dat laat zien hoe u een moderne realtime webgebruikersinterface voor apparaatbeheer kunt bouwen. De webapplicatie is een zogenaamde Single Page Application (SPA) die uitsluitend gebruik maakt van het WebSocket-protocol voor apparaatbeheer. Het HTTP-protocol wordt alleen gebruikt voor het laden van de SPA. Met andere woorden, HTTP wordt in eerste instantie door de browser gebruikt bij het laden van de applicatie op aanvraag vanaf het apparaat.

Het referentievoorbeeld bevat realtime updates van LED's en een thermostaatmeter, en het laat zien hoe u firmware uploadt via WebSockets. De complete SPA vereist slechts 41 Kbytes aan flashgeheugenopslagruimte. Ook heeft de WebSocket-server heel weinig RAM nodig voor de communicatie.

De volgende schermafbeelding toont de SPA-firmware-uploadpagina. De pagina is een van de vele voorbeeldpagina's die laten zien hoe u kunt profiteren van het nieuwe WebSocket-protocol. De firmware-uploadpagina laat zien hoe u een JavaScript-uploadlogica met slepen en neerzetten kunt maken en hoe u het geüploade bestand via de WebSocket-verbinding naar de server kunt verzenden. Alle berichten die via de WebSocket-verbinding worden verzonden, worden verzonden als JSON-tekstberichten, behalve de upload, die als binaire gegevens wordt verzonden. Modern JavaScript kan eenvoudig binaire gegevens beheren en het WebSocket-protocol ondersteunt zowel binaire als tekstframes.

Aan de slag met de Minnow-server

Ga naar GitHub, download de Minnow Server en begin met het schrijven van je eigen SPA voor je eigen microcontroller-ontwerp. Het referentievoorbeeld is zo ontworpen dat het gemakkelijk kan worden hergebruikt voor uw eigen embedded apparaatbeheertoepassing. De CSS- en HTML5-bouwstenen in deze applicatie zijn ontworpen voor hergebruik. Bovendien is de WebSocket-communicatie JavaScript-bibliotheek die in het voorbeeld is opgenomen, generiek ontworpen en kan gemakkelijk opnieuw worden gebruikt in andere toepassingen.

Opmerking:

De Minnow Server is ontworpen voor kleine microcontrollers, maar aangezien het referentievoorbeeld voornamelijk is ontworpen voor educatieve doeleinden, hebben we de gebruiksklare bouwomgeving beperkt tot Windows en Linux. U kunt de toepassing overdragen naar een ingebed systeem, maar het is logischer om alleen de ontwerpideeën in het referentievoorbeeld te gebruiken. U kunt de generieke delen natuurlijk gebruiken "zoals ze zijn".

Hoewel de Minnow-server kan worden ingesteld om meerdere verbindingen te beheren, is het referentievoorbeeld ingesteld om één verbinding tegelijk te beheren. Proberen een nieuw browservenster te verbinden terwijl een ander browservenster de enige echte WebSocket-verbinding gebruikt, zal niet werken.

Als u niet over de vereiste HTML/CSS/JavaScript-ervaring beschikt, overweeg dan om samen te werken met een front-end webontwikkelaar. De beste manier om na te denken over het maken van een SPA, is door het ontwikkelingsproces te vergelijken met het maken van een desktoptoepassing of een telefoontoepassing die is ontworpen om te communiceren met een apparaat dat TCP gebruikt. Meestal zijn verschillende ontwikkelaars verantwoordelijk voor de desktop-app en de firmware van het apparaat en dit is ook de beste manier om een ​​SPA te ontwerpen. De firmware- en front-endontwikkelaars zouden overeenstemming moeten bereiken over de communicatie-API tussen de browser en de server en vice versa. Met andere woorden, ze zouden het type berichten moeten specificeren dat via de WebSocket-verbinding wordt verzonden.


Wilfred Nilsen , oprichter en CTO van Real Time Logic, heeft 28 jaar ervaring in het ontwerpen van embedded software. Aangedreven door een visie van verbonden embedded systemen, ontwierp hij de Barracuda Application Server en paste het aan voor de kleine, real-time behoeften van embedded microprocessors.


Internet of Things-technologie

  1. Ademend e-textiel voor draagbare RF-apps
  2. Trends in productie voor 2021
  3. ST sampling ingebed Phase-Change Memory voor automotive microcontrollers
  4. Drie stappen naar IoT-adoptie voor zorgverzekeraars
  5. De werkplek biedt de perfecte pasvorm voor wearables
  6. LoRaWAN vervangt tijdelijk 5G-netwerken voor IoT
  7. SQL-technologie; benchmark met een reden
  8. 5 industrieën bestemd voor technologische disruptie
  9. 3 beste redenen om IoT-technologie te gebruiken voor activabeheer
  10. IoT-technologie voor de energiesector:een belangrijke transformatie
  11. Gebruik van IIoT-technologie voor bewaking van energieverbruik