Innehållsförteckning:
- Steg 1: Komponenter och verktyg krävs
- Steg 2: Schematisk
- Steg 3: Mottagarmodifiering
- Steg 4: Konstruktion
- Steg 5: Programvara och konfiguration
- Steg 6: Användning
- Steg 7: Webbgränssnitt
Video: RF433Analyser: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Denna instruerbara skapar ett mätinstrument för att analysera RF 433MHz -överföringar som vanligtvis används för fjärrkommunikation med låg effekt inom hemautomation och sensorer. Det kan förmodligen enkelt modifieras för att fungera 315MHz sändningar som används i vissa länder. Detta skulle vara genom att använda 315MHz -versionen av RXB6 istället för den nuvarande 433MHz.
Syftet med instrumentet är tvåfaldigt. Först tillhandahåller den en signalstyrkemätare (RSSI) som kan användas för att undersöka täckning runt en fastighet och hitta eventuella svarta fläckar. För det andra kan den fånga rena data från sändare för att möjliggöra enklare analys av data och protokoll som används av olika enheter. Detta är användbart om du försöker designa kompatibla tillägg till befintliga enheter. Normalt kompliceras datafångst av bakgrundsljudet i mottagare som producerar många falska övergångar och gör det svårare att upptäcka de sanna sändningarna.
Enheten använder en RXB6 superhet -mottagare. Detta använder Synoxo-SYN500R-mottagarchipet som har en RSSI-analog utgång. Detta är faktiskt en buffrad version av AGC -signalen som används för att styra mottagarens förstärkning och ger signalstyrka över ett brett intervall.
Mottagaren övervakas av en ESP8266 (ESP-12F) modul som konverterar RSSI-signal. Den driver också en liten lokal OLED -skärm (SSD1306). Elektroniken kan också fånga tidsinformation om dataövergångar.
Fångster kan utlösas lokalt med en knapp på enheten. Insamlad data sparas i filer för senare analys.
ESP12 -modulen kör en webbserver för att ge åtkomst till filerna och fångster kan också utlösas härifrån.
Instrumentet drivs av ett litet LIPO uppladdningsbart batteri. Detta ger en rimlig körtid och elektroniken har en låg vilström när den inte används.
Steg 1: Komponenter och verktyg krävs
Viktig notering:
Jag har hittat att vissa RXB6 433Mhz -mottagare har en icke fungerande RSSI -utgång även om AGC och resten av funktionaliteten är OK. Jag misstänker att det kan vara några klon Syn500R -chips som används. Jag har upptäckt att mottagare märkta som WL301-341 använder ett Syn5500R-kompatibelt chip och RSSI är funktionell. De har också fördelen att de inte använder en skärmburk som gör AGC -kondensatorn lättare att modifiera. Jag skulle rekommendera att använda dessa enheter.
Följande komponenter behövs
ESP-12F wifi-modul
- 3.3V regulator xc6203
- 220uF 6V kondensator
- 2 schottky -dioder
- 6 mm tryckknapp
- n kanal MOSFET t.ex. AO3400
- p kanal MOSFET t.ex. AO3401
- motstånd 2x4k7, 3 x 100K, 1 x 470K
- liten bit prototypplatta
- RXB6 eller WL301-341 superhet 433MHz mottagare
- SSD1306 0,96 OLED -skärm (enfärgad SPI -version)
- LIPO -batteri 802030 400mAh
- 3 -polig kontakt för laddning
- Anslut tråd
- Emaljerad koppartråd självflödande
- Epoxiharts
- Dubbelsidig tejp
- 3D -tryckt hölje
Verktyg behövs
- Finspetslödkolv
- Desolder fläta
- Pincett
- Tång
Steg 2: Schematisk
Kretsen är ganska enkel.
En LDO 3.3V-regulator omvandlar LIP till 3.3V som behövs av ESP-12F-modulen.
Strömförsörjning till både displayen och mottagaren via två växlande MOSFETS så att de är avstängda när ESP -modulen sover.
Knappen startar systemet genom att mata 3.3V till EN -ingången på ESP8266. GPIO5 upprätthåller sedan detta medan modulen är aktiv. Knappen övervakas också med GPIO12. När GPIO5 släpps tas EN bort och enheten stängs av.
Datalinjen från mottagaren övervakas av GPIO4. RSSI -signalen övervakas av AGC via en 2: 1 potentialdelare.
SSD1306 -skärmen styrs via SPI som består av 5 GPIO -signaler. Det kan vara möjligt att använda en I2C -version, men detta kommer att kräva byte av det använda biblioteket och omplacering av några av GPIO.
Steg 3: Mottagarmodifiering
Som levererad gör RXB6 inte RSSI -signalen tillgänglig på sina externa datapinnar.
En enkel ändring gör detta möjligt. DER -signalanslutningen på enheten är faktiskt bara en upprepning av datasignalsignalen. De kopplas ihop genom 0 Ohm -motståndet märkt R6. Detta måste avlägsnas med hjälp av ett lödkolv. Komponenten märkt R7 måste nu länkas över. Den övre änden är faktiskt RSSI -signalen och botten går till DER -kontakten. Man kan använda ett 0 Ohm -motstånd men jag kopplade bara över med lite tråd. Dessa platser är tillgängliga utanför metallskärmen som inte behöver tas bort för denna modifiering.
Modifieringen kan testas genom att ansluta en voltmeter över DER och GND med mottagaren påslagen. Den visar en spänning mellan cirka 0,4 V (ingen mottagen effekt) och cirka 1,8 V med en lokal källa på 433 MHz (t.ex. en fjärrkontroll).
Den andra modifieringen är inte absolut nödvändig men är ganska önskvärd. Som levererad är mottagarens AGC -svarstid inställd på att vara ganska långsam och ta flera hundra millisekunder för att svara på mottagen signal. Detta minskar tidsupplösningen under RSSI -fångster och gör det också mindre lyhört att använda RSSI som en utlösare för datafångst.
Det finns en enda kondensator som styr AGC -svarstiderna, men tyvärr är den placerad under metallskärmskåpet. Det är faktiskt ganska enkelt att ta bort skärmburkarna eftersom den bara hålls av tre klackar och den kan uppskattas genom att värma var och en av dem i tur och ordning med en liten skruvmejsel. När de har tagits bort kan man rensa ut hålen för återmontering genom att använda avlödningsfläta eller borra om med en bit på 0,8 mm.
Modifieringen är att ta bort den befintliga AGC -kondensatorn C4 och ersätta den med en 0,22uF kondensator. Detta påskyndar AGC -svaret med cirka 10 gånger. Det har ingen skadlig effekt på mottagarens prestanda. På bilden visar jag ett spårsnitt och en länk till detta spår från AGC -kondensatorn. Detta är inte nödvändigt men gör AGC -punkten tillgänglig på en kudde utanför skärmburkarna under kristallen om man skulle vilja lägga till extra kapacitans igen. Jag har inte behövt göra det. Screeningen kan sedan ersättas.
Om du använder WL301-341 RX-enheten visar bilden detta med AGC-kondensatorn markerad. RSSI -signalstiftet visas också. Detta är faktiskt inte kopplat till någonting. Man kan bara ansluta en fin tråd direkt till stiftet. Alternativt är de två centrala bygelstiften anslutna tillsammans och båda bär datautmatningen. Spåret mellan dem kan skäras och sedan kopplas RSSI till reservdelen för att göra RSSI -signalen tillgänglig på en bygelutgång.
Steg 4: Konstruktion
Det behövs cirka 10 komponenter utanför ESP-12-modulen. Dessa kan göras upp och anslutas på en prototypplatta. Jag använde ett ESP -specifikt prototypkort som jag använde för att underlätta montering av regulatorn och andra smd -komponenter. Detta fästs direkt ovanpå ESP-12-modulen.
Lådan jag använde är en 3D -tryckt design med 3 fördjupningar i basen för att ta emot mottagaren, displayen och esp -modulen. Den har en utskärning för displayen och hål för laddningspunkten och tryckknappen som ska sättas in och säkras med en liten mängd poxiharts.
Jag använde anslutningstråd för att göra anslutningarna mellan de tre modulerna, laddningspunkten och knapparna. och säkra dem sedan på plats med hjälp av dubbel sidoband för ESP och mottagare och små droppar epoxi för att hålla skärmens sidor på plats.
Steg 5: Programvara och konfiguration
Programvaran är byggd i Arduino -miljön.
Källkoden för detta finns på https://github.com/roberttidey/RF433Analyser Koden kan få vissa konstanter för lösenord ändrade av säkerhetsskäl innan de kompileras och blinkas till ES8266 -enheten.
- WM_PASSWORD definierar lösenordet som wifiManager använder när enheten konfigureras till ett lokalt wifi -nätverk
- update_password definierar ett lösenord som används för att tillåta uppdateringar av firmware.
Vid första användning går enheten in i wifi -konfigurationsläge. Använd en telefon eller surfplatta för att ansluta till den åtkomstpunkt som enheten har konfigurerat och bläddra sedan till 192.168.4.1. Härifrån kan du välja det lokala wifi -nätverket och ange dess lösenord. Detta behöver bara göras en gång eller om du byter wifi -nätverk eller lösenord.
När enheten har anslutit till sitt lokala nätverk lyssnar den efter kommandon. Om vi antar att dess IP -adress är 192.168.0.100 använder du först 192.168.0.100:AP_PORT/upload för att ladda upp filerna i datamappen. Detta gör att 192.168.0.100/edit kan visa och ladda upp ytterligare filer och även 192.168.0.100 komma åt användargränssnittet.
Punkter att notera i programvaran är
- ADC i ESP8266 kan kalibreras för att förbättra dess noggrannhet. En sträng i konfigurationsfilen anger de uppnådda råvärdena för två ingångsspänningar. Detta är inte särskilt viktigt eftersom RSSI är en ganska relativ signal beroende på antenn etc.
- RSSI -spänningen till db är någorlunda linjär men kurvor vid ytterligheterna. Programvaran har en kubisk passform för att förbättra noggrannheten.
- Det mesta av aritmetiken görs med skalade heltal så att RSSI -värden faktiskt är 100 gånger de faktiska. Värden som skrivs till filer eller visas konverteras tillbaka.
- Programvaran använder en enkel tillståndsmaskin för att styra fångst av RSSI och dataövergångar.
- Dataövergångar övervakas med hjälp av en avbrottsrutin. Den normala Arduino loop -behandlingen avbryts under datafångst och vakthunden hålls vid liv lokalt. Detta för att försöka förbättra avbrottsfördröjningen för att hålla tidtagningsmätningar så trogna som möjligt.
Konfiguration
Detta sparas i esp433Config.txt.
För RSSI -inspelning kan samplingsintervallet och varaktigheten ställas in.
För datafångst kan RSSI -utlösningsnivån, antalet övergångar och maximal varaktighet ställas in. En lämplig utlösningsnivå är cirka +20dB på bakgrunden ingen signalnivå. En pulseWidths -sträng tillåter också enkel kategorisering av pulsbredder för att göra analysen enklare. Varje loggad rad har pulsnivå, bredd i mikrosekunder och koden som är indexet i pulsbreddsträngen som är större än den uppmätta bredden.
CalString kan förbättra ADC -noggrannheten.
idleTimeout styr antalet millisekunder inaktivitet (inga tagningar) innan enheten stängs av automatiskt. Att ställa in det till 0 betyder att det inte tar timeout.
De tre knappinställningarna styr vad som skiljer korta medellånga och långa knapptryckningar.
displayUpdate ger det lokala skärmens uppdateringsintervall.
Steg 6: Användning
Enheten slås på genom att trycka på knappen en kort stund.
Displayen visar initialt den lokala IP -adressen i några sekunder innan den börjar visa RSSI -nivå i realtid.
Ett kort knapptryckning startar en RSSI -inspelning till fil. Normalt avbryts detta när RSSI -varaktigheten är klar, men ytterligare en kort knapptryckning kommer också att avsluta inspelningen.
Ett medeltryck på knappen kommer att inleda en dataöverföring. Skärmen visar väntar på trigger. När RSSI går över utlösningsnivån börjar den sedan fånga tidsinställda dataövergångar för antalet specificerade övergångar.
Om du håller knappen intryckt längre än den långa knappen stängs enheten av.
Capture -kommandon kan också initieras från webbgränssnittet.
Steg 7: Webbgränssnitt
Åtkomst till enheten med dess ip -adress visar ett webbgränssnitt med tre flikar; Fångar, status och konfiguration.
Fångstskärmen visar filerna som för närvarande har tagits. Innehållet i en fil kan visas genom att klicka på dess namn. Det finns också raderings- och nedladdningsknappar för varje fil.
Det finns också capture RSSI- och capture -knappar som kan användas för att initiera en capture. Om ett filnamn ges används det annars kommer ett standardnamn att genereras.
Konfigurationsfliken visar den aktuella konfigurationen och gör att svalues kan ändras och sparas.
Webbgränssnittet stöder följande samtal
/edit - access arkiveringssystem för enhet; kan användas för att ladda ner åtgärder Filer
- /status - returnera en sträng som innehåller statusinformation
- /loadconfig -return en sträng som innehåller konfigurationsdetaljer
- /saveconfig - skicka och spara en sträng för att uppdatera config
- /loadcapture - returnera en sträng som innehåller mått från en fil
- /setmeasureindex - ändra index som ska användas för nästa åtgärd
- /getcapturefiles - få en sträng med lista över tillgängliga måttfiler
- /capture - triggning av RSSI eller data
- /firmware - initiera uppdatering av firmware
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg
Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg
Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Steg-för-steg-utbildning i robotik med ett kit: 6 steg
Steg-för-steg-utbildning i robotik med ett kit: Efter ganska många månader av att bygga min egen robot (se alla dessa), och efter att två gånger ha misslyckats med delar, bestämde jag mig för att ta ett steg tillbaka och tänka om min strategi och riktning. De flera månaders erfarenhet var ibland mycket givande och
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)