Innholdsfortegnelse:

RF433Analyser: 7 trinn
RF433Analyser: 7 trinn

Video: RF433Analyser: 7 trinn

Video: RF433Analyser: 7 trinn
Video: MTool - 433MHz code analyzer, cloner, jammer + Wifi captive portal. 2024, Juli
Anonim
RF433Analyser
RF433Analyser
RF433Analyser
RF433Analyser

Denne instruksjonsboken oppretter et måleinstrument for å analysere RF 433MHz -overføringer som vanligvis brukes til fjerntliggende kommunikasjon med lav effekt i hjemmeautomatisering og sensorer. Det kan sannsynligvis enkelt endres til å fungere 315MHz -overføringer som brukes i noen land. Dette ville være ved å bruke 315MHz -versjonen av RXB6 i stedet for den nåværende 433MHz.

Formålet med instrumentet er todelt. For det første gir den en signalstyrkmåler (RSSI) som kan brukes til å undersøke dekning rundt en eiendom og finne eventuelle svarte flekker. For det andre kan den fange rene data fra sendere for å muliggjøre enklere analyse av data og protokoller som brukes av forskjellige enheter. Dette er nyttig hvis du prøver å designe kompatible tillegg til eksisterende enheter. Normalt er datafangst komplisert av bakgrunnsstøy som finnes i mottakere som produserer mange falske overganger og gjør det vanskeligere å oppdage de sanne overføringene.

Enheten bruker en RXB6 superhet -mottaker. Denne bruker Synoxo-SYN500R-mottakerbrikken som har en RSSI-analog utgang. Dette er effektivt en bufret versjon av AGC -signalet som brukes til å kontrollere mottakerens forsterkning og gir signalstyrke over et bredt område.

Mottakeren overvåkes av en ESP8266 (ESP-12F) modul som konverterer RSSI-signal. Den driver også en liten lokal OLED -skjerm (SSD1306). Elektronikken kan også fange tidsinformasjon om dataoverganger.

Fangster kan utløses lokalt med en knapp på enheten. Innsamlede data lagres i filer for senere analyse.

ESP12 -modulen driver en webserver for å gi tilgang til filene, og fangster kan også utløses herfra.

Instrumentet drives av et lite LIPO oppladbart batteri. Dette gir en rimelig kjøretid og elektronikken har lav hvilestrøm når den ikke er i bruk.

Trinn 1: Komponenter og verktøy påkrevd

Viktig notat:

Jeg har funnet ut at noen RXB6 433Mhz -mottakere har en ikke -fungerende RSSI -utgang, selv om AGC og resten av funksjonaliteten er OK. Jeg mistenker at det kan være noen klon Syn500R -brikker som brukes. Jeg har funnet ut at mottakere merket som WL301-341 bruker en Syn5500R-kompatibel brikke og RSSI er funksjonell. De har også fordelen av å ikke bruke en skjermboks som gjør AGC -kondensatoren lettere å endre. Jeg vil anbefale å bruke disse enhetene.

Følgende komponenter er nødvendige

ESP-12F wifi-modul

  • 3.3V regulator xc6203
  • 220uF 6V kondensator
  • 2 schottky -dioder
  • 6 mm trykknapp
  • n kanal MOSFET f.eks. AO3400
  • p kanal MOSFET f.eks. AO3401
  • motstander 2x4k7, 3 x 100K, 1 x 470K
  • et lite stykke prototypebrett
  • RXB6 eller WL301-341 superhet 433MHz mottaker
  • SSD1306 0,96 OLED -skjerm (enfarget SPI -versjon)
  • LIPO batteri 802030 400mAh
  • 3 -pinners kontakt for lading
  • Koble til ledningen
  • Emaljert kobbertråd selvflytende
  • Epoksyharpiks
  • Dobbeltsidig tape
  • 3D -trykt kabinett

Verktøy som trengs

  • Fint punktloddejern
  • Desolder flette
  • Pinsett
  • Tang

Trinn 2: Skjematisk

Skjematisk
Skjematisk

Kretsen er ganske grei.

En LDO 3.3V-regulator konverterer LIP til 3.3V som ESP-12F-modulen trenger.

Strøm tilføres både displayet og mottakeren via to bytte MOSFETS slik at de er slått av når ESP -modulen sover.

Knappen starter systemet ved å levere 3,3V til EN -inngangen til ESP8266. GPIO5 opprettholder dette mens modulen er aktiv. Knappen overvåkes også med GPIO12. Når GPIO5 slippes, fjernes EN og enheten slås av.

Datalinjen fra mottakeren overvåkes av GPIO4. RSSI -signalet overvåkes av AGC via en 2: 1 potensialdeler.

SSD1306 -skjermen styres via SPI bestående av 5 GPIO -signaler. Det kan være mulig å bruke en I2C -versjon, men dette vil kreve endring av biblioteket som brukes og tilpasse noen av GPIO.

Trinn 3: Mottakerendring

Mottaker modifikasjon
Mottaker modifikasjon
Mottaker modifikasjon
Mottaker modifikasjon
Mottaker modifikasjon
Mottaker modifikasjon

Som levert, gjør RXB6 ikke RSSI -signalet tilgjengelig på sine eksterne datapinner.

En enkel modifikasjon gjør dette mulig. DER -signalkontakten på enheten er faktisk bare en gjentakelse av datasignalsignalet. De er koblet sammen gjennom 0 Ohm -motstanden merket R6. Dette må fjernes ved bruk av loddejern. Komponenten merket R7 må nå kobles på tvers. Den øverste enden er faktisk RSSI -signalet og bunnen går til DER -kontakten. Man kan bruke en 0 Ohm motstand, men jeg bare koblet over med litt ledning. Disse stedene er tilgjengelige utenfor metallskjermen, som ikke trenger å fjernes for denne endringen.

Modifikasjonen kan testes ved å koble et voltmeter over DER og GND mens mottakeren er slått på. Den vil vise en spenning mellom omtrent 0,4V (ingen mottatt strøm) og omtrent 1,8V med en lokal kilde på 433MHz (f.eks. En fjernkontroll).

Den andre modifikasjonen er ikke helt avgjørende, men er ganske ønskelig. Som levert, er AGC -responstiden til mottakeren satt til å være ganske langsom, og det tar flere hundre millisekunder å svare på mottatt signal. Dette reduserer tidsoppløsningen under RSSI -opptak og gjør det også mindre responsivt å bruke RSSI som en utløser for datafangst.

Det er en enkelt kondensator som styrer AGC -responstiden, men dessverre er den plassert under metallskjermen. Det er faktisk ganske enkelt å fjerne siktboksen, siden den bare holdes av 3 tapper, og den kan verdsettes ved å varme hver av dem etter tur og løfte opp med en liten skrutrekker. Når de er fjernet, kan man rense hullene for montering på nytt ved å bruke avloddeflett eller bor på nytt med omtrent en 0,8 mm bit.

Modifikasjonen er å fjerne den eksisterende AGC -kondensatoren C4 og erstatte den med en 0,22uF kondensator. Dette fremskynder AGC -responsen med omtrent 10 ganger. Det har ingen skadelig effekt på mottakerens ytelse. På bildet viser jeg et sporkutt og en kobling til dette sporet fra AGC -kondensatoren. Dette er ikke nødvendig, men gjør AGC -punktet tilgjengelig på en pute utenfor siktboksen under krystallet i tilfelle man ville legge til ekstra kapasitans igjen. Jeg har ikke trengt å gjøre det. Skjermen kan deretter byttes ut.

Hvis du bruker WL301-341 RX-enheten, viser bildet dette med AGC-kondensatoren uthevet. RSSI -signalpinnen vises også. Dette er faktisk ikke knyttet til noe. Man kan bare koble en fin ledning direkte til pinnen. Alternativt er de to sentrale jumperpinnene koblet sammen og begge bærer datautgangen. Sporet mellom dem kan kuttes og deretter kobles RSSI til den ekstra for å gjøre RSSI -signalet tilgjengelig på en jumper -utgang.

Trinn 4: Konstruksjon

Konstruksjon
Konstruksjon
Konstruksjon
Konstruksjon
Konstruksjon
Konstruksjon
Konstruksjon
Konstruksjon

Det er omtrent 10 komponenter som trengs utenfor ESP-12-modulen. Disse kan sminkes og kobles på et stykke prototypebrett. Jeg brukte et ESP -spesifikt prototypekort jeg brukte for å lette montering av regulatoren og andre smd -komponenter. Denne festes direkte på toppen av ESP-12-modulen.

Boksen jeg brukte er et 3D -trykt design med 3 fordypninger i basen for å ta mottaker, display og esp modul. Den har et utsnitt for displayet og hull for ladepunktet og trykknapp som skal settes inn og festes med en liten mengde poxyharpiks.

Jeg brukte tilkoblingstråd for å lage forbindelsene mellom de 3 modulene, ladepunktet og knappene. og deretter festet dem på plass ved hjelp av dobbeltsidig tape for ESP og mottaker og små dråper epoxy for å holde sidene på skjermen på plass. Batteriet er koblet til ladepunktet og montert på toppen av mottakeren ved hjelp av dobbeltsidig tape.

Trinn 5: Programvare og konfigurasjon

Programvaren er bygget i Arduino -miljøet.

Kildekoden for dette er på https://github.com/roberttidey/RF433Analyser Koden kan få noen konstanter for passord endret av sikkerhetsmessige årsaker før de kompileres og blinker til ES8266 -enheten.

  • WM_PASSWORD definerer passordet som wifiManager bruker når du konfigurerer enheten til et lokalt wifi -nettverk
  • update_password definerer et passord som brukes for å tillate fastvareoppdateringer.

Når enheten brukes første gang, går den over i konfigurasjonsmodus for wifi. Bruk en telefon eller et nettbrett for å koble til tilgangspunktet som er konfigurert av enheten, og bla deretter til 192.168.4.1. Herfra kan du velge det lokale wifi -nettverket og skrive inn passordet. Dette trenger bare å gjøres en gang eller hvis du endrer wifi -nettverk eller passord.

Når enheten har koblet seg til sitt lokale nettverk, vil den lytte etter kommandoer. Forutsatt at IP -adressen er 192.168.0.100, bruk først 192.168.0.100:AP_PORT/upload for å laste opp filene i datamappen. Dette vil deretter tillate 192.168.0.100/edit å se og laste opp flere filer og også gi 192.168.0.100 tilgang til brukergrensesnittet.

Poeng å merke seg i programvaren er

  • ADC i ESP8266 kan kalibreres for å forbedre nøyaktigheten. En streng i konfigurasjonsfilen angir de oppnådde råverdiene for to inngangsspenninger. Dette er ikke spesielt viktig ettersom RSSI er et ganske relativt signal avhengig av antenne etc.
  • RSSI -spenningen til db er rimelig lineær, men kurver i ytterpunktene. Programvaren har en kubisk passform for å forbedre nøyaktigheten.
  • Det meste av aritmetikken gjøres med skalerte heltall, så RSSI -verdier er faktisk 100 ganger det faktiske. Verdier skrevet til filer eller vist blir konvertert tilbake.
  • Programvaren bruker en enkel tilstandsmaskin for å kontrollere fangst av RSSI og dataoverganger.
  • Dataoverganger overvåkes ved hjelp av en avbruddsrutine. Den normale Arduino loop -behandlingen blir suspendert under datafangst og vakthunden holdes i live lokalt. Dette er for å prøve å forbedre avbruddstid for å holde timemålinger så trofaste som mulig.

Konfigurasjon

Dette lagres i esp433Config.txt.

For RSSI -fangst kan samplingsintervallet og varigheten settes opp.

For datafangst kan RSSI -utløsernivået, antall overganger og maksimal varighet settes opp. Et passende utløsernivå er ca +20dB på bakgrunnen uten signalnivå. En pulsWidths -streng tillater også enkel kategorisering av pulsbredder for å gjøre analysen enklere. Hver logget linje har pulsnivå, bredde i mikorsekunder og koden som er indeksen i pulsbreddestrengen som er større enn den målte bredden.

CalString kan forbedre ADC -nøyaktigheten.

idleTimeout kontrollerer antall millisekunder inaktivitet (ingen registreringer) før enheten slår seg av automatisk. Hvis du setter den til 0, betyr det at den ikke blir tidsavbrutt.

De tre knappinnstillingene styrer hva som skiller korte mellomlange og lange knappetrykk.

displayUpdate gir det lokale skjermoppdateringsintervallet.

Trinn 6: Bruk

Enheten slås på ved å trykke på knappen en kort stund.

Skjermen vil i utgangspunktet vise den lokale IP -adressen i noen sekunder før den begynner å vise RSSI -nivå i sanntid.

Et kort knappetrykk vil starte en RSSI -fangst til fil. Normalt avsluttes dette når RSSI -varigheten er ferdig, men ytterligere et kort knappetrykk vil også avslutte opptaket.

Et middels knappetrykk vil starte en dataoverføring. Skjermen viser venting på utløser. Når RSSI går over utløsernivået, vil den deretter begynne å fange tidsbestemte dataoverganger for antall angitte overganger.

Hvis du holder knappen inne lenger enn den lange knappen, vil enheten slå av.

Capture -kommandoer kan også startes fra webgrensesnittet.

Trinn 7: Nettgrensesnitt

Nettgrensesnitt
Nettgrensesnitt
Nettgrensesnitt
Nettgrensesnitt

Tilgang til enheten ved hjelp av ip -adressen viser et webgrensesnitt med 3 faner; Fanger, status og konfigurasjon.

Captures -skjermbildet viser filene som er lagret for øyeblikket. Innholdet i en fil kan vises ved å klikke på den. Det er også slette- og nedlastingsknapper for hver fil.

Det er også opptak RSSI- og fangstdataknapper som kan brukes til å starte en fangst. Hvis et filnavn er gitt, vil det bli brukt, ellers vil et standardnavn bli generert.

Konfigureringsfanen viser gjeldende konfigurasjon og lar svaluer endres og lagres.

Nettgrensesnittet støtter følgende samtaler

/rediger - tilgang til arkiveringssystem for enheten; kan brukes til å laste ned tiltak Filer

  • /status - returner en streng som inneholder statusdetaljer
  • /loadconfig -return a string containing config details
  • /saveconfig - send og lagre en streng for å oppdatere config
  • /loadcapture - returner en streng som inneholder målinger fra en fil
  • /setmeasureindex - endre indeksen som skal brukes til neste mål
  • /getcapturefiles - få en streng med liste over tilgjengelige målefiler
  • /capture - trigger capture av RSSI eller data
  • /firmware - start oppdateringen av fastvaren

Anbefalt: