Inhoudsopgave:
- Stap 1: Zenderaanpassingen
- Stap 2: Aanpassingen aan de ontvanger: PIC16F887 en HD44780 LCD toevoegen
- Stap 3: Een paar referenties…
- Stap 4: Conclusies en toekomstig werk
Video: Draadloze communicatie met behulp van goedkope 433MHz RF-modules en Pic-microcontrollers. Deel 2: 4 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
In het eerste deel van deze instructable demonstreerde ik hoe je een PIC12F1822 programmeert met behulp van MPLAB IDE en XC8-compiler, om een eenvoudige string draadloos te verzenden met behulp van goedkope TX/RX 433MHz-modules.
De ontvangermodule was via een USB naar UART TTL-kabeladapter aangesloten op een pc en de ontvangen gegevens werden weergegeven op RealTerm. De communicatie vond plaats op 1200 baud en het maximale bereik was ongeveer 20 meter door muren. Mijn tests toonden aan dat voor toepassingen waar geen hoge datasnelheid en groot bereik nodig is, en voor continue transmissie, deze modules uitzonderlijk goed presteerden.
Het tweede deel van dit project demonstreert hoe je een PIC16F887 microcontroller en een 16×2 karakter LCD-module op de ontvanger kunt toevoegen. Bovendien wordt op de zender een eenvoudig protocol gevolgd met toevoeging van enkele preample bytes. Deze bytes zijn nodig voor de RX-module om de versterking aan te passen voordat de daadwerkelijke lading wordt ontvangen. Aan de ontvangerzijde is de PIC verantwoordelijk voor het verkrijgen en valideren van de gegevens die op het LCD-scherm worden weergegeven.
Stap 1: Zenderaanpassingen
Op het eerste deel stuurde de zender om de paar ms een eenvoudige string met acht databits, een start- en een stopbit met 1200 bits per seconde. Omdat de transmissie bijna continu was, had de ontvanger geen moeite om de versterking aan te passen aan de ontvangen gegevens. Op het tweede deel wordt de firmware aangepast zodat de verzending elke 2,3 seconden wordt uitgevoerd. Dit wordt bereikt met behulp van de watchdog-timer-interrupt (ingesteld op 2,3 s) om de microcontroller te wekken, die tussen elke transmissie in de slaapstand wordt gezet.
Om de ontvanger de tijd te geven om zijn versterking af te stemmen, worden een paar preambulebytes met korte LO-tijden "(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xfa)" verzonden voordat de eigenlijke gegevens worden verzonden. Payload wordt dan aangegeven met een start-'&' en een stop-'*'-byte.
Daarom wordt het eenvoudige protocol als volgt beschreven:
(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xf8)(0Xfa)&Hallo InstWorld!*
Bovendien is er een 10uF ontkoppelings-tantaalcondensator toegevoegd tussen de V+ en GND van de RF-module om de rimpel veroorzaakt door de dc-dc step-up module weg te werken.
De baudrate bleef hetzelfde, maar mijn tests toonden aan dat ook bij 2400 baud de transmissie efficiënt was.
Stap 2: Aanpassingen aan de ontvanger: PIC16F887 en HD44780 LCD toevoegen
Het ontwerp van de ontvanger was gebaseerd op PIC16F887, maar je kunt met kleine aanpassingen een andere PIC gebruiken. In mijn project heb ik deze 40-pins μC gebruikt, omdat ik extra pinnen nodig heb voor toekomstige projecten op basis van dit ontwerp. De uitgang van de RF-module is verbonden met de UART rx-pin, terwijl een 16x2-karakter lcd (HD44780) is verbonden via PORTB-pinnen b2-b7 om de ontvangen gegevens weer te geven.
Net als bij deel 1 worden de ontvangen gegevens ook weergegeven op RealTerm. Dit wordt bereikt met behulp van de UART tx-pin die via een USB naar UART TTL-kabeladapter is aangesloten op een pc.
Kijkend naar de firmware, wanneer een UART-interrupt plaatsvindt, controleert het programma of de ontvangen byte een startbyte ('&') is. Zo ja, dan begint het met het opnemen van de volgende bytes, totdat een stopbyte wordt opgevangen ('*'). Zodra de hele zin is verkregen, en als deze voldoet aan het eerder beschreven eenvoudige protocol, wordt deze naar het lcd-scherm gestuurd, evenals naar de UART tx-poort.
Voorafgaand aan het ontvangen van de startbyte heeft de ontvanger zijn versterking al aangepast met behulp van de voorgaande preambulebytes. Deze zijn cruciaal voor de goede werking van de ontvanger. Er wordt een eenvoudige controle op overschrijding en framingfout uitgevoerd, maar dit is slechts een basisimplementatie voor het afhandelen van UART-fouten.
Qua hardware zijn er een paar onderdelen nodig voor de receiver:
1 x PIC16F887
1 x HD44780
1 x RF Rx-module 433 Mhz
1 x 10 μF tantaalcondensator (ontkoppeling)
1 x 10 K trimmer (helderheid LCD-lettertype)
1 x 220 Ω 1/4 W weerstand (LCD-achtergrondverlichting)
1 x 1 KΩ 1/4 W
1 x Antenne 433Mhz, 3dbi
In de praktijk werkte de ontvangen uitzonderlijk goed in bereiken tot 20 meter door muren.
Stap 3: Een paar referenties…
Er zijn veel blogs op het web die tips geven over PIC-programmering en probleemoplossing naast de officiële Microschip-website. Ik vond het volgende erg handig:
www.romanblack.com/
0xee.net/
www.ibrahimlabs.com/
picforum.ric323.com/
Stap 4: Conclusies en toekomstig werk
Ik hoop dat deze instructable je heeft geholpen te begrijpen hoe je RF-modules en Pic-microcontrollers kunt gebruiken. U kunt uw firmware aanpassen aan uw eigen behoeften en CRC en encryptie toevoegen. Als u uw ontwerp nog geavanceerder wilt maken, kunt u de Keeloq-technologie van Microschip gebruiken. Als uw toepassing bidirectionele gegevens nodig heeft, moet u een paar TX/RX op beide microcontrollers hebben, of u kunt een meer geavanceerde transceiver gebruiken modulen. Met dit soort goedkope 433MHz-modules kan echter alleen half-duplexcommunicatie worden bereikt. Verder zou u, om de communicatie betrouwbaarder te maken, een vorm van handshaking tussen TX en RX moeten hebben.
Op de volgende instructable zal ik je een praktische toepassing laten zien waarbij een omgevingssensor met temperatuur, luchtdruk en vochtigheid op de zender wordt toegevoegd. Hier zullen de verzonden gegevens crc bevatten en een basiscodering hebben.
De sensor zal de i2c-poort van de PIC12F1822 gebruiken, terwijl de implementatie van zowel de zender als de ontvanger zal worden weergegeven via schema's en pcb-bestanden. Bedankt voor het lezen!
Aanbevolen:
SmartHome draadloze communicatie: de extreme basis van MQTT: 3 stappen
SmartHome draadloze communicatie: de extreme basis van MQTT: MQTT basis: **Ik ga een serie domotica doen, ik zal de stappen doorlopen die ik heb genomen om alles te leren wat ik in de toekomst heb gedaan. Deze Instructable is de basis voor het instellen van MQTT voor gebruik in mijn toekomstige Instructables. echter
LoRa 3 km tot 8 km draadloze communicatie met goedkope E32 (sx1278 / sx1276) apparaat voor Arduino, Esp8266 of Esp32 - Ajarnpa
LoRa 3 km tot 8 km draadloze communicatie met goedkope E32 (sx1278 / sx1276) apparaat voor Arduino, Esp8266 of Esp32: ik maak een bibliotheek om EBYTE E32 te beheren op basis van de Semtech-serie van LoRa-apparaat, zeer krachtig, eenvoudig en goedkoop apparaat. 3Km-versie hier, 8Km-versie hierZe kunnen werken over een afstand van 3000m tot 8000m, en ze hebben veel functies en
Hoe u uw eigen windmeter kunt bouwen met behulp van reed-schakelaars, Hall-effectsensor en wat restjes op Nodemcu. - Deel 1 - Hardware: 8 stappen (met afbeeldingen)
Hoe u uw eigen windmeter kunt bouwen met behulp van reed-schakelaars, Hall-effectsensor en wat restjes op Nodemcu. - Deel 1 - Hardware: Inleiding Sinds ik ben begonnen met de studies van Arduino en de Maker Culture, heb ik het leuk gevonden om nuttige apparaten te bouwen met behulp van rommel en afvalstukken zoals kroonkurken, stukjes PVC, drankblikjes, enz. Ik geef graag een tweede leven aan elk stuk of elke partner
Draadloze seriële communicatie met Bluefruit: 4 stappen
Draadloze seriële communicatie met Bluefruit: Hier is een eenvoudige stapsgewijze handleiding om uw draden te vervangen door een Bluetooth low energy-verbinding: het kostte me een tijdje om dit uit te zoeken omdat er nauwelijks documentatie is om dit te doen met moderne Bluetooth low energy-technologie zoals als de Bluefrui
Bouw je eigen (goedkope!) multifunctionele draadloze cameracontroller. 22 stappen (met afbeeldingen) - Ajarnpa
Bouw je eigen (goedkope!) multifunctionele draadloze cameracontroller.: Inleiding Ooit al eens je eigen cameracontroller willen bouwen? BELANGRIJKE OPMERKING: Condensatoren voor de MAX619 zijn 470n of 0.47u. Het schema is correct, maar de componentenlijst was verkeerd - bijgewerkt. Dit is een toegang tot de Digital Da