Inhoudsopgave:

Wireless Serial (UART) voor Arduino/STM32/etc.: 3 stappen (met afbeeldingen)
Wireless Serial (UART) voor Arduino/STM32/etc.: 3 stappen (met afbeeldingen)

Video: Wireless Serial (UART) voor Arduino/STM32/etc.: 3 stappen (met afbeeldingen)

Video: Wireless Serial (UART) voor Arduino/STM32/etc.: 3 stappen (met afbeeldingen)
Video: SKR PRO V1.1 TFT35 V2 2024, November
Anonim
Draadloos Serieel (UART) voor Arduino/STM32/etc
Draadloos Serieel (UART) voor Arduino/STM32/etc
Draadloos Serieel (UART) voor Arduino/STM32/etc
Draadloos Serieel (UART) voor Arduino/STM32/etc

Hopelijk is iedereen het met me eens dat de Arduino Serial een geweldig hulpmiddel is om je projecten te debuggen. Nou, het is eigenlijk de enige optie voor het debuggen van een Arduino. Maar soms is het niet mogelijk of praktisch om een USB-kabel van de Arduino of een andere microcontroller naar uw computer te leiden.

Dus maakte ik dit UART-WiFi-bord, gebaseerd op de ESP8266-01, die tegenwoordig spotgoedkoop is. De borden zijn klein, je kunt het op een breadboard aansluiten, stroom, RX, TX en aarde aansluiten en het stuurt alles wat het van de UART ontvangt via wifi naar je computer en vice versa.

Functies:

  • baudrates tot 115200 (theoretisch zelfs tot 921600, maar dit is niet getest)
  • ontvangt/verzendt gegevens van UART en verzendt/ontvangt gegevens via wifi rechtstreeks naar uw computer via poort 23 (Telnet)
  • 18 componenten, onderdelen kosten ongeveer USD 3,50
  • 20 x 45 mm dubbelzijdige printplaat, compatibel met breadboard
  • 5 V-tolerante RX-pin
  • ingangsspanning van 12 V tot 3,3 V, stroomverbruik gemiddeld ongeveer 80 mA

Ik gebruik deze borden nu ongeveer een half jaar en ik vond ze buitengewoon nuttig. Ik geef er zelfs de voorkeur aan boven USB-UART-bruggen, want met mijn bord steek ik er gewoon een in een breadboard en hoef ik me geen zorgen te maken over kabels over mijn hele bureau. Je hebt ook geen andere hardware, geen vrije USB-poorten en deze boards bieden volledige galvanische isolatie van je computer, wat een goede veiligheidsmaatregel is en je je geen zorgen hoeft te maken over verschillende aardpotentialen.

Stap 1: Hoe het werkt

Hoe het werkt
Hoe het werkt
Hoe het werkt
Hoe het werkt

Zodra de module van stroom wordt voorzien, begint deze te proberen verbinding te maken met de vooraf gedefinieerde WiFi. Tijdens die fase knippert de gele LED. Zodra de verbinding is gemaakt, blijft de gele LED branden. Daarna wacht de module op een verbinding van een Telnet-client (zie volgende stap) en knippert de groene LED. Nadat de verbinding tot stand is gebracht, toont de Telnet-terminal u een prompt met de vraag naar de gewenste baudrate. U voert de baudrate in de terminal in en u bent klaar! Nu wordt alles wat u in de terminal typt via WiFi verzonden en vervolgens uitgevoerd vanaf de TX-pin van de ESP8266. Evenzo wordt alles wat op de RX-pin verschijnt naar de terminal gestuurd. Kortom, je kunt het verschil niet zien tussen een seriële en telnet-console.

LED's:

  • geel (meest links) - Wifi-status, knipperend - probeert verbinding te maken, brandt - verbonden
  • groen (tweede van links) - Telnet-status. knipperend - wacht op verbinding, groen - verbonden
  • blauw (twee meest rechtse) - RX en TX

Stap 2: Hoe het in te stellen?

Hoe het in te stellen
Hoe het in te stellen
Hoe het in te stellen
Hoe het in te stellen
Hoe het in te stellen
Hoe het in te stellen
Hoe het in te stellen
Hoe het in te stellen

Verbinding

De enige kleine complicatie is dat je een soort identificatiecode nodig hebt voor elk Telnet-apparaat (vergelijkbaar met elke seriële poort met een nummer). In mijn project heb ik Static IP gebruikt. Normaal gesproken ontvangt een apparaat, zodra het verbinding maakt met wifi, automatisch een IP-adres van de DHCP-server. Dit wordt dynamische IP-adressering genoemd, maar het probleem hier is dat het IP-adres kan veranderen. Dus ik heb het bord zo geprogrammeerd dat het altijd een vooraf gedefinieerd IP-adres krijgt, in mijn geval 192.168.2.20x, waarbij x het bordnummer is. Dit wordt statische IP-adressering genoemd. Dan sluit je gewoon een Telnet-console aan op 192.168.2.20x:23 en je bent klaar om te gaan.

Als console kun je verschillende apps gebruiken, de twee bekendste zijn waarschijnlijk PuTTY of YAT (Yet Another Terminal). Ik gebruik de laatste en in het afbeeldingsgedeelte kun je zien hoe je het moet instellen - je hoeft alleen het eerder genoemde statische IP-adres te kennen.

Firmware

De firmware is geschreven in Arduino IDE en is te vinden op mijn GitHub. Als u uw ESP8266 wilt programmeren, moet u in de header kijken en daar enkele variabelen wijzigen, namelijk:

  • ssid - de naam van de wifi waarmee je het bord wilt verbinden
  • pass - wachtwoord voor die wifi
  • ip - het statische IP-adres dat u wilt dat het bord heeft; kies iets buiten de DHCP-pool (of kies gewoon iets tussen 200 - 250, dat is meestal gratis)
  • gateway - het IP-adres van uw router
  • subnet

U kunt de laatste twee informatie van de opdrachtregel krijgen door op Win + R te drukken, "cmd" in te typen en vervolgens "ipconfig" in te typen. Zie foto's.

Natuurlijk heb je de Arduino IDE, esp8266 toolchain etc. nodig, maar daar zijn veel andere tutorials over.

Bord

U moet ook de PCB vervaardigen. Hoewel het niet ingewikkeld is en je het in theorie thuis zou kunnen maken, raad ik je aan een Chinese PCB-fabrikant te gebruiken. Het is goedkoop en werkt prettig. Ik gebruikte ALLPCB en was tevreden.

Stroom

Je moet het bord van stroom voorzien. Je kunt hem ofwel rechtstreeks voeden met 3,3 V (jumper JP1 in de 3,3 V-positie) of de spanning voeden via een 3,3 V-regelaar (jumper in de andere positie). De regelaar kan spanningen tot 12 V aan. Alle condensatoren zijn al aan boord geïntegreerd.

Stap 3: Conclusie

Conclusie
Conclusie

Zoals ik al eerder zei, vond ik deze borden erg handig voor prototyping, niet alleen met een Arduino, maar met elke MCU in het algemeen. En ik gebruik ze nu ongeveer een half jaar en ik heb er geen problemen mee gehad.

Broncode, Eagle-bestanden en enkele afbeeldingen zijn te vinden op mijn GitHub of in het onderstaande zipbestand. Maar ik raad GitHub aan, omdat er mogelijk een nieuwere versie is.

Als je vragen, opmerkingen of suggesties hebt, laat ze dan gerust hieronder achter.

Aanbevolen: