Inhoudsopgave:

TicTac Super Wifi Analyser, ESP-12, ESP8266 - Ajarnpa
TicTac Super Wifi Analyser, ESP-12, ESP8266 - Ajarnpa

Video: TicTac Super Wifi Analyser, ESP-12, ESP8266 - Ajarnpa

Video: TicTac Super Wifi Analyser, ESP-12, ESP8266 - Ajarnpa
Video: ESP8266 EvilTwin 2 in 1: Eviltwin & Deauth Programming & Testing 2024, Juli-
Anonim
TicTac Super Wifi Analyser, ESP-12, ESP8266
TicTac Super Wifi Analyser, ESP-12, ESP8266
TicTac Super Wifi Analyser, ESP-12, ESP8266
TicTac Super Wifi Analyser, ESP-12, ESP8266

Dit project bouwt voort op de originele moononournation-code en het concept om een TicTac-box als behuizing te gebruiken.

In plaats van een knop te gebruiken om de metingen te starten, wordt echter gebruik gemaakt van het aanraakscherm dat wordt geleverd met een TFT SPI-display. De code is aangepast om de LED-achtergrondverlichting beter te kunnen bedienen en om het display in de slaapstand te zetten (omdat de displaymodule van stroom moet blijven voor de aanraakchip). De eenheidsstroom in slaap is laag genoeg voor een 1000 mAh-lipo om meerdere jaren mee te gaan. Er is ook een batterijlading en een laagspanningsbeveiliging aanwezig.

Zie de laatste stap voor een video waarin het werkt.

Onderdelen:

  • 48g TicTac doos
  • ESP12 (bij voorkeur ESP-12F)
  • 2,4" SPI TFT-scherm
  • Lipo-oplaadmodule
  • PNP-transistor
  • 3.3v lage ruststroom, spanningsregelaar
  • Bijbehorende weerstanden en condensatoren (detail later)

Stap 1: Ontwikkeling

Ontwikkeling
Ontwikkeling

Ik dacht dat ik het ontwikkelingspad voor dit project zou uitstippelen. U kunt dit gedeelte overslaan als u dit meteen wilt doen.

Dit is een van mijn eerste ESP8266-projecten. Ik was gegrepen door het handige concept om een TicTac-box te gebruiken als behuizing voor de Wifi-analysator en besloot er een te maken. Dank u: Portable-WiFi-Analyser. Ik besloot een groter 2,4-inch scherm te gebruiken - dat werd geleverd met een aanraakscherm en op een PCB met pinnen die gemakkelijker te verbinden zouden zijn.

Toen ik met de bouw begon, verkende ik regelingen die de ESP12-antenne vrij zouden houden van de elektronica. De enige optie was dat het in de dop zou zitten. Ik wilde ook de oplaadmodule onder de dispenser. De vraag was toen waar de 'aan-knop' te vinden was? Ik wilde geen gat maken in de achterkant van de behuizing. De bovenste dop zou het beste zijn - maar er is geen ruimte als ik de twee modules daar heb.

Dit leidde tot het idee om het aanraakscherm als aan-knop te gebruiken. Ik merkte dat een van de display-connectoren het label 'T_IRQ' had - dat zag er bemoedigend uit. De touch-chip is een XPT2046. En ja tot mijn vreugde heeft het een automatische slaapmodus en trekt de T_IRQ laag als het paneel wordt aangeraakt. Deze is ideaal om de drukschakelaar te vervangen en is eenvoudig aan te sluiten op de ESP12 reset.

Ik had moeten vermelden dat de code verschillende scans voor wifi-netwerken uitvoert en vervolgens de stroom naar het scherm verwijdert en de ESP12 in diepe slaap brengt - die wordt gewekt door een reset-ingang.

Dus met dit concept duidelijk, heb ik het aangesloten met een NodeMcu - en het werkte niet! Er was dus nog wat werk aan de winkel. Ik was me er ook van bewust dat ik de slaapstroom met de NodeMcu niet kon controleren vanwege de ingebouwde USB-chip en de hoge ruststroomspanningsregelaar. Ik wilde ook een systeem om eenvoudig ESP12's te programmeren. Dit leidde ertoe dat ik een ESP12-breakoutboard/ontwikkelsysteem maakte dat net zo gemakkelijk kon worden geprogrammeerd als de NodeMCU, maar met een FTDI-programmeur. Op deze manier zijn de regelaar en de USB-chip gescheiden. Zie: ESP-12E en ESP-12F Programmering en Breakout Board

Daarna heb ik het aangesloten met behulp van mijn nieuwe bord met een ESP-12F - en het werkte. De enige wijziging die ik had aangebracht, was om de spanningsregelaar op de displaymodule kort te sluiten, zodat alles op 3,3v werd aangedreven. Ik begon mijn code-mods te doen, met name code om de display-chip (ILI9341) in de slaapstand te zetten, omdat dit en de chip van het aanraakpaneel van stroom moeten worden voorzien (in slaapstand) wanneer de ESP-module ook in de slaapstand is. Ik heb toen de slaapstroom gecontroleerd. Dit was 90uA. Dus een batterij van 1000 mAh zou een jaar meegaan. Goed begin.

Daarna heb ik de spanningsregelaar op de displaymodule verwijderd. Het zou voldoende zijn geweest om gewoon de grondpen te hebben opgetild. Nu was de slaapstroom van het systeem 32uA. Ik moest nog een 3.3v-regelaar toevoegen, maar kende er een met slechts 2uA ruststroom. Dus nu kijken we naar een batterijduur van 3 jaar!

Ook wilde ik de componenten zoveel mogelijk op een printje monteren om de bedrading netter te maken. Dus op dit punt ging ik door met een PCB-ontwerp voor de eenheid. Ik had graag rechtstreeks op de pinnen van de displaymodule aangesloten. Dit zou behoorlijk moeilijk worden, dus koos ik ervoor om een harde draad te maken van de printplaat naar de displaymodule.

Ik heb nog wat gesleuteld aan de code. Ik heb een slaapmelding toegevoegd - het scherm in zwart vullen en ZZZ afdrukken voordat ik ga slapen. Ik heb ook het inschakelen van de LED-achtergrondverlichting uitgesteld totdat het scherm vol was. Dit vermijdt de witte flits aan het begin van de originele code. Ik heb vergelijkbare mods gedaan aan het einde waarbij ik de LED's uitschakelde voordat ik het scherm in de sluimerstand zette.

U vraagt zich misschien af hoe u uA moet meten. Dood gemakkelijk! Zet een weerstand van 1k in serie met de positieve voedingskabel. Sluit dit af met een jumperkabel zodat het systeem kan werken. Verwijder vervolgens, wanneer het in de slaapmodus is, de jumperkabel en meet de spanningsval over de weerstand. Met 1k weerstand 100mv betekent 100uA. Als de spanningsval te groot is, gebruik ik een weerstand met een lagere waarde. Ik heb deze methode gebruikt om enkelcijferige nA te meten met een weerstand van 1 m op andere systemen met erg lage slaapstromen.

Stap 2: constructie

Afbeelding
Afbeelding
Afbeelding
Afbeelding

PCB of harde draad?

De eenheid die ik hier heb gebouwd, gebruikt een PCB om de ESP12F- en laadmodules en de spanningsregelaar en PNP-transistor en de bijbehorende condensatoren en pull-up-weerstanden te bevatten. Dit is de handigste route, maar vereist PCB-ets en SMD-soldeerapparatuur. Het systeem kon echter worden gemaakt door de modules rechtstreeks te bedraden en de spanningsregelaar en PNP-transistor op een stuk stripboard te plaatsen - zoals het geval was in het eerdere TicTac-project (eerder gekoppeld).

Als je besluit om voor de PCB-optie te gaan, wil je misschien ook mijn ESP12-programmeerbord maken, vooral als je van plan bent meer projecten met de ESP12-kaarten te doen.

Onderdelen lijst:

  • 49g TicTac doos
  • ESP-12F (of ESP-12E) Merk op dat de ESP-12F een beter bereik heeft, anders hetzelfde als ESP-12E
  • 2,4” SPI TFT-display met ILI9341-stuurprogramma en touch b.v. TJCTW24024-SPI
  • Laadmodule – zie foto
  • 2 mm pin-strip (optioneel maar de moeite waard om te gebruiken)
  • PNP-transistor in SOT23-formaat. Ik heb BCW30 gebruikt, maar elke andere met meer dan 100 ma-capaciteit en DC-versterking> 200 zou in orde moeten zijn.
  • 3v3 250ma(min) regelaar in SOT23-formaat. Ik gebruikte Microchip MCP1703T-33002E/CB. Anderen zullen werken, maar controleren hun ruststroom. (suggereer minder dan 30uA).
  • Weerstanden (alle maat 0805)
  • 10k 4off
  • 3k3 1 korting
  • Condensatoren (alle maat 0805)
  • 2n2 2 uit
  • 0.1u 1 korting
  • PCB als WiFiAnalyserArtwork.docx-bestand bijgevoegd.
  • Eencellige LiPo-batterij. Capaciteit 400-1000mahr - dat past in de koffer. 400 mahr is groot genoeg.

Gebruik voor de niet-PCB-optie gelode equivalenten, weerstanden ¼W en hoger zijn prima, en condensatoren met een werkspanning van 5v of hoger.

Boor bij het maken van de print de gaten op 0,8 mm. Als je een scherp oog hebt - de ESP12 2 mm pin-strip gaten kunnen 0,7 mm zijn voor een betere ondersteuning.

Componentplaatsing:

Afbeelding
Afbeelding

Bij het monteren van de print eerst de weerstanden en condensatoren, dan de regelaar en PNP-transistor, gevolgd door de laadmodule en de pin-strip voor de ESP12. Ik heb de ESP12 niet op zijn plaats gesoldeerd, omdat deze stevig genoeg op de pinstrip is gedrukt en het gemakkelijker is om van het bord te herprogrammeren. U zult merken dat de print connectoren heeft voor TX, RX, GPIO 0, Reset en aarde als u ooit in-situ wilt herprogrammeren. Merk op dat er een knop nodig is om GPIO laag te krijgen. Reset kan worden verlaagd door het display aan te raken. Een knop kan worden gebruikt, maar alleen als de draad naar het display T_IRQ is losgekoppeld.

Stap 3: Bedrading

Voordat u het display op de printplaat aansluit, verwijdert u de regelaar i1 en plaatst u een klodder soldeer op J1 die deze vervolgens vervangt. Daarna zou het er als volgt uit moeten zien:

Afbeelding
Afbeelding

Verwijder vervolgens de pin-strip of knip de pins kort. De beste manier om de pin-strip te verwijderen is met één pin tegelijk. Breng aan de ene kant een soldeerbout aan en trek aan de andere kant met een tang aan de pin.

Nu kan de bedrading beginnen, te beginnen met het aansluiten van de lintkabel op het display. Knip rond een 7-8 cm lange pc-lintkabel en selecteer 10 manieren. Knip 9 van de achterkanten 10 mm af en laat een langere aan een rand voor de T-IRQ-pin. De rest kan dan worden uitgespreid naar waar ze worden gesoldeerd en waar nodig een beetje meer worden bijgesneden.

Ik plaatste en soldeerde één kabel tegelijk, beginnend met VCC.

Afbeelding
Afbeelding

Plaats de printplaat waar deze moet zijn ten opzichte van het display. Knip vervolgens de draden één voor één af tot ongeveer 5 mm langer dan nodig is en strip de isolatie van 2 mm, vertin het uiteinde en soldeer ze op hun plaats. De draadgeleiding gaat als volgt (pinnummers tellen vanaf VCC):

Weergave PCB Opmerking
1 1 VCC
2 8 GND
3 9 CS
4 5 RESET
5 7 D/C
6 2 SDI (MOSI)
7 4 SCK
8 10 LED
9 3 SDO (MISO)
10 6 T_IRQ
Afbeelding
Afbeelding

Nu alleen nog de accu aansluiten en de ESP12 programmeren. Als u in-situ programmeert, sluit u de batterij nu aan. Als u buiten de kaart programmeert, sluit u daarna de batterij aan.

Stap 4: Programmeren

Download het bijgevoegde code ESP8266WiFiAnalMod.ino-bestand, maak een map met de naam 'ESP8266WiFiAnalMod' in uw Arduino-schetsmap en verplaats het bestand hierheen.

Start de Arduino IDE (download en installeer indien nodig vanaf Arduino.cc) en voeg de details van het ESP-bord toe als je ze niet hebt (zie: Sparkfun).

Laad de code (Bestand>Schetsboek>… ESP8266WiFiAnalMod).

Stel vervolgens de programmeergegevens in (Tools):

Selecteer board: Generieke ESP8266 Module

Zie hieronder voor de rest van de instellingen. Selecteer Reset-methode: "nodemcu" als u een programmeur gebruikt met de automatische aandrijving van de reset en GPIO0. Stel anders in op "ck" als u in-situ programmeert of door directe verbinding met een USB-naar-serieel-converter.

Het poortnummer is waarschijnlijk anders.

Afbeelding
Afbeelding

Als u in-situ wilt programmeren, moet u draden naar een schakelaar solderen om GPIO 0 laag te trekken en verbinding te maken met de Tx en Rx - zie hieronder:

Een eenvoudigere optie is om een programmeerbord te gebruiken: ESP-12E en ESP-12F programmeer- en breakout-bord

Als u in-situ programmeert, sluit u aan zoals hieronder. Let op als het display is aangesloten, kan Reset worden geactiveerd via het aanraakscherm, anders is een schakelaar nodig van Reset naar GND. Er is stroom nodig op het bord, het beste door 3.7v toe te passen op de OUT+ en OUT- pinnen. Als u een batterij gebruikt, moet de oplader worden gereset door een USB-kabel kort aan te sluiten.

Afbeelding
Afbeelding

Als u de programmeermodus handmatig instelt, trekt u reset laag (touchscreen), trekt u GPIO 0 laag en laat u de reset los. Klik nu op de downloadknop. Het programmeren moet doorgaan.

Als u het programmeer- en breakout-bord gebruikt, sluit u gewoon de FTDI USB seriële converter aan, sluit u 3,3 V-voeding aan op het programmeerbord en klikt u op downloaden.

Stap 5: Eindmontage en testen

Dit is een goed moment voor een voorlopige test. Als de ESP12 in-situ was geprogrammeerd, zou hij moeten werken - raak het scherm lichtjes aan en hij zou moeten starten. Indien geprogrammeerd buiten het apparaat - plaats de ESP12 en sluit de batterij aan en het zou moeten werken.

Ik heb de batterij losgekoppeld terwijl ik door de eindmontage ging, deels voor het gemak en deels om onbedoelde kortsluiting te voorkomen.

Het display zal netjes tussen de dop en de onderkant van de behuizing worden geplaatst. Het verhoogde gedeelte in de basis houdt het scherm mooi aan de kant van de doos.

De printplaat moet op het displaybord worden bevestigd om zowel in de dop te passen als de USB-oplaadaansluiting te presenteren. Wanneer de vereiste relatie tussen de plaatposities wordt gezien, plaatst u dubbelzijdig plakband (het 1 mm dikke type) op beide platen. Dit geeft een speling van 2 mm die elk elektrisch contact moet vermijden. Ik heb uit voorzorg wat isolatietape over de display-elektronica geplaatst:

Afbeelding
Afbeelding

Vervolgens moeten we ongeveer 2 mm van de bovenkap nemen. Ik heb dit een goede pasvorm op het scherm gemaakt met extra stukjes uitgesneden voor de lintkabel van het aanraakscherm en de plastic houder voor het scherm. Zie onder:

Afbeelding
Afbeelding
Afbeelding
Afbeelding

Ten slotte moeten we de batterij plaatsen en deze gebruiken om het scherm tegen de dooskant te houden. Ik heb een oud stuk piepschuim gebruikt en het op de gewenste dikte gesneden en geschuurd. Ik heb dit met dunne dubbelzijdige tape op de display-PCB geplakt en een paar kleinere stukjes tape gebruikt om te voorkomen dat de batterij verschuift.

Afbeelding
Afbeelding

Als je alles hebt aangesloten en merkt dat er niets gebeurt, maak je dan (nog) geen zorgen. Het batterijbeveiligingscircuit op de laadmodule moet worden gereset. Dit wordt gedaan door hem via een micro-USB-kabel aan te sluiten op een 5v-voeding. Een paar seconden is lang genoeg.

En nu heb je een handig apparaat dat de kracht van de ESP8266-systemen laat zien, en in mijn geval leidde het me ertoe mijn wifi-kanaal te veranderen omdat het 5 anderen op hetzelfde ontdekte!

Ik hoop dat je geniet van dit mooie project.

Mike

Aanbevolen: