Inhoudsopgave:
- Benodigdheden
- Stap 1: Hoe werkt het?
- Stap 2: Wat zijn de belangrijkste functies?
- Stap 3: Bouw van materiaal
- Stap 4: Download de gatewaycode
- Stap 5: Laten we de gatewayconfiguratie uitvoeren
- Stap 6: Download het Arduino-codevoorbeeld
- Stap 7: Laten we de serverkant doen
- Stap 8: Om verder te gaan
Video: Seriële UDP/IP-gateway voor Arduino op basis van ESP8266 Shield - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Ik heb al in 2016 deze instructable gepubliceerd "Hoe maak je je eigen wifi-gateway om je Arduino met IP-netwerk te verbinden". Omdat ik enkele codeverbeteringen heb aangebracht en ik deze oplossing nog steeds gebruik.
Desalniettemin zijn er nu enkele ESP8266-schilden waarmee u hetzelfde kunt doen zonder te solderen, zolang u geen Micro- of Nano-kaarten gebruikt.
In deze instructable wordt uitgelegd hoe u deze ESP82-schilden als seriële UDP/IP-gateway kunt gebruiken.
Dit maakt deel uit van een wereldwijde domotica-infrastructuur die u hier kunt bekijken
Meer informatie over het schild met deze instructable
Benodigdheden
1 Arduino Mega (het beste is om ten minste 1 Mega te hebben voor ontwikkeling en 1 Uno voor de lopende fase)
1 Rokoo ESP8266 ESP-12E UART WIFI Converter
1 FTDI 3.3v
2 breadboard-draden
Stap 1: Hoe werkt het?
De Gateway is gebaseerd op een ESP8266-module
Deze module is van de ene kant verbonden met de seriële link van de andere kant naar het IP-netwerk met de Wifi.
Het fungeert als een zwarte doos. Datapakketten die van de seriële link komen, worden naar een IP/Udp-poort gestuurd en omgekeerd.
De eerste keer dat u de Gateway inschakelt, hoeft u alleen maar uw eigen configuratie (IP, WIFI …) in te stellen.
Het kan zowel onbewerkte ASCII- als binaire gegevens overdragen (geen HTTP, JSON…)
Het is ontworpen om objecten te verbinden met zelfgemaakte serversoftware die snelle en frequente overdracht van korte gegevenspakketten nodig heeft.
Stap 2: Wat zijn de belangrijkste functies?
Meestal is het een zwarte doos die seriële gegevens op beide manieren naar UDP-pakket converteert.
Maar de gateway kan ook zelf handelen door interne informatie naar de server te sturen en enkele opdrachten van de server te ontvangen.
Arduino kan berichten verzenden en ontvangen naar/van een server die via internet is verbonden door gewoon een seriële link af te drukken/te lezen. De Arduino-ontwikkelaar hoeft zich niet druk te maken over het IP-protocol.
Bovendien biedt het een GPIO die door Arduino kan worden gebruikt om te controleren of de Gateway correct is verbonden met de WIFI en de Gateway kan automatisch schakelen tussen 2 verschillende SSID's in geval van storing
De Gateway heeft 2 verschillende bedrijfsmodi die worden geselecteerd door het instellen van een GPIO
GPIO op aarde instellen en de gateway gaat naar de configuratiemodus.
GPIO vrij instellen en de Gateway gaat naar de gateway-bedrijfsmodus.
Bovendien kan de Gateway UDP/IP-configuratie op afstand worden gewijzigd
Stap 3: Bouw van materiaal
Er zijn maar heel weinig dingen nodig
1 ESP8266 Shield - Ik vond deze UNO R3 ESP8266 Serial WiFi Shield Extend Board Module voor minder dan € 9
1 UNO dat is het doel Arduino-doel
1 Mega dat is de arduino-ontwikkeltool (je kunt zonder, maar het is vrij moeilijk om te debuggen)
1 FTDI 3.3/5v voor ontwikkeling
Sommige draden
Stap 4: Download de gatewaycode
Tijdens deze stap wordt de Arduino alleen gebruikt voor voeding (met USB of een andere stroombron) op het ESP8266-schild
Verbind de ESP8266 GPIO4 met aarde (om de configuratiemodus te openen)
Zorg ervoor dat u de FTDI instelt op 3,3v zoals vereist door het schild
Sluit de FTDI aan op het schild (RX naar TX)
Stel schildschakelaar in op 1:uit 2:uit 3:aan 4:aan
Sluit de USB-zijde van de FTDI aan op uw computer
Reset het schild met de ESP-RST-drukknop
Download de Gateway-code daar op GitHub
Arduino IDE openen
- Selecteer de FTDI-monitorpoort
- Open de IDE Seriële Monitor - Stel de snelheid in op 38400
- Selecteer Generiek ES8266 modulebord
- Upgrade de schildfirmware met de gatewaycode
Zet schakelaar 3:uit 4:uit
Open de IDE seriële monitor
Reset het schild met de ESP-RST-drukknop
U moet berichten op de monitor zien die beginnen met "EEPROM-initialisatie" "Initialisatie voltooid"….
Het is tijd om de configuratie te doen
Stap 5: Laten we de gatewayconfiguratie uitvoeren
Wanneer de gatewaycode voor de eerste keer wordt gedownload, wordt de ESP8266 Eeprom geïnitialiseerd met de standaardwaarden. U ziet dit soort berichten "set parameter: x size: yy"
U kunt deze waarden vinden in de codedefinitie van paramValue. Natuurlijk kunt u deze standaardwaarden wijzigen voordat u de code downloadt, maar u kunt uw configuratie ook later met een opdracht instellen. Dit is beter als u van plan bent meerdere gateways te hebben en slechts één versie van de code te behouden.
Gebruik de seriële poort van de monitor om een opdracht te verzenden (ingesteld op NL en CR).
Aangezien SSID momenteel niet is gedefinieerd, wacht u op "Kon geen verbinding maken met uwsecondssid opnieuw proberen:5"
Dan start automatisch een scan van WIFI
Het is tijd om uw SSID's in te stellen met de volgende opdrachten:
- SSID1=uw keuze1
- PSW1=jouwpsw1
- SSID2=uw keuze2
- PSW2=uwpsw2
- SSID=1 (om te kiezen met welke SSID te beginnen)
- Herstart Wifi
Na enkele seconden kunt u de verbinding controleren met het commando "ShowWifi". U moet het IP-adres zien dat de gateway van uw DNS-server heeft gekregen. Als dat het geval is, is het tijd om verder te gaan
Het is tijd om uw IP-serveradres te definiëren door de 4 subadressen in te voeren (server die de Java-testcode zal uitvoeren). Bijvoorbeeld:
- "IP1=192"
- "IP2=168"
- "IP3=1"
- "IP4=10"
Door een lege opdracht te sturen, ziet u alle ondersteunde opdrachten die u later kunt gebruiken om aan uw vereisten te voldoen. Alle parameterwaarden worden opgeslagen in Eeprom en moeten opnieuw worden opgestart om rekening te houden.
Verwijder de configuratiedraad
Het schild werkt nu als een gateway
Stap 6: Download het Arduino-codevoorbeeld
Download eerst de belangrijkste Arduino-code daar op GitHub
Download vervolgens de Arduino-code, deze opdrachtdefinitie en deze seriële linkcode naar uw bibliotheken
Open vervolgens de hoofdcode met een nieuwe Arduino IDE
Zet de schildschakelaar 1 en 2 uit om de Arduino seriële link 0 vrij te maken voor USB-verbinding
Reset het schild
Sluit de FTDI-draden aan op de Mega Serial 2 (TX FTDI naar RX Mega enzovoort)
Start een nieuwe Arduino IDE (of een TTY-tool), sluit de FTDI Usb aan en begin met het bewaken van de seriële link
Upload de Arduino-code in de Mega
Zet de Shield Switch 1 en 2 aan om de Arduino seriële link 0. aan te sluiten
Reset het schild
U moet dit bericht "start usb print" op de monitor zien
Stap 7: Laten we de serverkant doen
Het servervoorbeeld is een Java-programma dat u hier op GitHub kunt downloaden
Voer het gewoon uit en kijk naar de Java-console en kijk naar de FTDI-monitor
U ziet gegevensuitwisselingen tussen server en Arduino
Stap 8: Om verder te gaan
Dit Arduino-codevoorbeeld is gebaseerd op een raamwerkonderdeel van mijn domotica-infrastructuur.
Als je interesse hebt in deze infrastructuur, laat het me weten. Ik zal bronnen publiceren.
Als u alleen de gateway wilt gebruiken, kunt u de Arduino-code vereenvoudigen.
Nadat u uw code op een Arduino Mega hebt ontwikkeld en getest, kunt u deze eenvoudig vervangen door een Uno!
Bovendien kun je een draad aansluiten tussen Arduino GPIO 7 en ESP8266 GPIO 5 als je wilt dat je Arduino de wifi-verbinding controleert
Aanbevolen:
Terug naar de basis: solderen voor kinderen: 6 stappen (met afbeeldingen)
Back to Basics: Solderen voor kinderen: Of je nu een robot bouwt of met Arduino werkt, vorm "hands-on" elektronica tot prototyping van een projectidee, weten hoe te solderen komt van pas. solderen is een essentiële vaardigheid om te leren als iemand echt van elektr
Basis 3D-scanner voor digitale 3D-toewijzing: 5 stappen
Basis 3D-scanner voor digitale 3D-mapping: in dit project zal ik de basisprincipes van 3D-scannen en -reconstructie beschrijven en uitleggen die voornamelijk worden toegepast op het scannen van kleine semi-vlakke objecten, en waarvan de werking kan worden uitgebreid tot scan- en reconstructiesystemen die kunnen B
Idee voor doe-het-zelf-activiteit voor weerstations voor 12+ jaar: 4 stappen
Idee voor doe-het-zelf-weerstationactiviteit voor 12-plussers: in deze activiteit zullen deelnemers hun weerstation opzetten, de lucht in sturen en de opnames (licht, temperatuur, vochtigheid) in realtime volgen via de Blynk-app. Bovendien leert u hoe u de geregistreerde waarden publiceert
Water is de basis voor het menselijk leven: 4 stappen
Water is de basis voor het menselijk leven: Inleiding: Arduino gebruiken om een project te maken dat een functie bevat. Ik maak een Arduino-project dat je eraan herinnert om een bepaalde tijd water te drinken.Motivatie:Tegenwoordig besteden de meeste mensen het grootste deel van hun tijd aan hun werk en ze vaak voor
Verdubbel de levensduur van de batterij van de DX3-radio van Spektrum voor minder dan $ 20: 11 stappen
Verdubbel de levensduur van de batterij van de DX3-radio van Spektrum voor minder dan $ 20: ik kreeg het idee hiervoor voor het eerst op de draad voor de DX6/7 op RCGRoups.com-forums. Ik rijd met nitro-auto's, dus kocht ik een DX3. Ik heb de radio een tijdje gebruikt en mijn batterijduur was aan de betere kant van de meeste radio's - maar de DX7-bezitters begonnen