Tartalomjegyzék:

Vezeték nélküli kommunikáció olcsó 433 MHz -es RF modulok és Pic mikrovezérlők használatával. 2. rész: 4 lépés (képekkel)
Vezeték nélküli kommunikáció olcsó 433 MHz -es RF modulok és Pic mikrovezérlők használatával. 2. rész: 4 lépés (képekkel)

Videó: Vezeték nélküli kommunikáció olcsó 433 MHz -es RF modulok és Pic mikrovezérlők használatával. 2. rész: 4 lépés (képekkel)

Videó: Vezeték nélküli kommunikáció olcsó 433 MHz -es RF modulok és Pic mikrovezérlők használatával. 2. rész: 4 lépés (képekkel)
Videó: Sonoff okos füstérzékelő hiba - Élő 71 - 2024, November
Anonim
Vezeték nélküli kommunikáció olcsó 433 MHz -es RF modulok és Pic mikrovezérlők használatával. 2. rész
Vezeték nélküli kommunikáció olcsó 433 MHz -es RF modulok és Pic mikrovezérlők használatával. 2. rész

Ennek az utasításnak az első részében bemutattam, hogyan kell programozni egy PIC12F1822 -t MPLAB IDE és XC8 fordító segítségével, hogy egy egyszerű karakterláncot küldjünk vezeték nélkül, olcsó TX/RX 433 MHz -es modulok használatával.

A vevőmodult USB -n keresztül UART TTL kábeladapterrel csatlakoztatta a számítógéphez, és a kapott adatokat megjelenítette a RealTerm -en. A kommunikáció 1200 baudon történt, és a maximális hatótávolság körülbelül 20 méter volt a falakon keresztül. Tesztjeim azt mutatták, hogy azoknál az alkalmazásoknál, ahol nincs szükség nagy adatátviteli sebességre és nagy hatótávolságra, valamint folyamatos átvitelre, ezek a modulok kivételesen jól teljesítettek.

A projekt második része bemutatja, hogyan lehet PIC16F887 mikrokontrollert és 16 × 2 karakteres LCD modult hozzáadni a vevőegységhez. Ezenkívül az adón egy egyszerű protokollt követnek néhány előminta bájt hozzáadásával. Ezek a bájtok szükségesek ahhoz, hogy az RX modul a tényleges hasznos terhelés megszerzése előtt beállítsa a nyereséget. A vevő oldalán a PIC felelős az LCD képernyőn megjelenő adatok beszerzéséért és érvényesítéséért.

1. lépés: Az adó módosítása

Az adó módosítása
Az adó módosítása
Az adó módosítása
Az adó módosítása
Az adó módosítása
Az adó módosítása

Az első részben az adó néhány másodpercenként egyszerű karakterláncot küldött nyolc adatbit, egy kezdő és egy leállító bit használatával, 1200 bit / másodperc sebességgel. Mivel az átvitel szinte folyamatos volt, a vevőnek nem okozott gondot a nyereségnek a fogadott adatokhoz való igazítása. A második részben a firmware módosul, így az átvitel 2,3 másodpercenként történik. Ez a watchdog időzítő megszakításával érhető el (2.3 másodpercre állítva), hogy felébressze a mikrokontrollert, amely alvó üzemmódba kerül az egyes adások között.

Annak érdekében, hogy a vevőnek legyen ideje a nyereség finomhangolására, néhány bevezető bájt rövid LO idővel "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" kerül elküldésre a tényleges adatok előtt. A hasznos terhet ezután kezdő '&' és stop '*' bájt jelzi.

Ezért az egyszerű protokollt a következőképpen írjuk le:

(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) és Hello InstWorld!*

Ezenkívül 10uF szétválasztó tantál kondenzátort adnak az RF modul V+ és GND közé, hogy megszabaduljanak az egyenáramú egyenáramú modul által okozott hullámzástól.

Az átviteli sebesség ugyanaz maradt, de a tesztek azt mutatták, hogy 2400 baudnál is hatékony volt az átvitel.

2. lépés: A vevő módosításai: PIC16F887 és HD44780 LCD hozzáadása

Vevő módosítások: PIC16F887 és HD44780 LCD hozzáadása
Vevő módosítások: PIC16F887 és HD44780 LCD hozzáadása
Vevő módosítások: PIC16F887 és HD44780 LCD hozzáadása
Vevő módosítások: PIC16F887 és HD44780 LCD hozzáadása
Vevő módosítások: PIC16F887 és HD44780 LCD hozzáadása
Vevő módosítások: PIC16F887 és HD44780 LCD hozzáadása

A vevő kialakítása a PIC16F887 -en alapult, de kisebb módosításokkal más PIC -t is használhat. A projektemben ezt a 40 tűs μC -t használtam, mivel további tűkre lesz szükségem a jövőbeli projektekhez, amelyek ezen a konstrukción alapulnak. Az RF modul kimenete az UART rx tűhöz van csatlakoztatva, míg egy 16x2 karakteres LCD (HD44780) a b2-b7 PORTB csapokon keresztül van csatlakoztatva a fogadott adatok megjelenítéséhez.

Az 1. részhez hasonlóan a kapott adatok a RealTermen is megjelennek. Ezt az UART tx tűvel érik el, amely USB -UART TTL kábeladapterrel csatlakozik a számítógéphez.

A firmware -be tekintve, amikor UART megszakítás történik, a program ellenőrzi, hogy a fogadott bájt kezdő bájt -e ('&'). Ha igen, akkor elkezdi rögzíteni a következő bájtokat, amíg egy stop bájt el nem éri ('*'). Amint megkapja a teljes mondatot, és ha megfelel az előzőekben leírt egyszerű protokollnak, elküldi az LCD képernyőre, valamint az UART tx portra.

A kezdő bájt fogadása előtt a vevő már beállította a nyereségét az előző preambulum bájtok használatával. Ezek elengedhetetlenek a vevő zökkenőmentes működéséhez. Egy egyszerű túllépési és keretezési hibaellenőrzést hajtanak végre, de ez csak egy alapvető UART hibakezelési megvalósítás.

Ami a hardvert illeti, néhány alkatrészre van szükség a vevő számára:

1 x PIC16F887

1 x HD44780

1 x 433Mhz RF Rx modul

1 x 10 μF tantál kondenzátor (leválasztás)

1 x 10 K trimmer (LCD betűtípus fényerő)

1 x 220 Ω 1/4 W ellenállás (LCD háttérvilágítás)

1 x 1 KΩ 1/4 W

1 x 433Mhz, 3dbi antenna

A gyakorlatban a fogadott kivételesen jól működött akár 20 méteres tartományban is a falakon keresztül.

3. lépés: Néhány hivatkozás…

A hivatalos Microschip webhelyen kívül számos blog található a weben, amelyek tippeket adnak a PIC programozásához és a hibaelhárításhoz. Nagyon hasznosnak találtam az alábbiakat:

www.romanblack.com/

0xee.net/

www.ibrahimlabs.com/

picforum.ric323.com/

4. lépés: Következtetések és jövőbeli munka

Remélem, hogy ez az utasítás segített megérteni az RF modulok és a Pic mikrovezérlők használatát. A firmware -t saját igényeihez igazíthatja, beleértve a CRC -t és a titkosítást. Ha még kifinomultabbá szeretné tenni a dizájnt, használhatja a Microschip Keeloq technológiáját. Ha az alkalmazás kétirányú adatokra van szüksége, akkor rendelkeznie kell egy TX/RX párral mindkét mikrovezérlőn, vagy használhat kifinomultabb adó-vevőt. modulok. Az ilyen olcsó 433 MHz -es modulok használatával azonban csak fél duplex kommunikáció valósítható meg. Ezenkívül a kommunikáció megbízhatóbbá tétele érdekében szükség van valamilyen kézfogásra a TX és az RX között.

A következő utasításban egy gyakorlati alkalmazást mutatok be, ahol a távadón egy hőmérséklet-, légnyomás- és páratartalom -érzékelő található. Itt az átvitt adatok tartalmazzák a crc -t, és alapvető titkosítással rendelkeznek.

Az érzékelő a PIC12F1822 i2c portját fogja használni, míg az adó és a vevő megvalósítása sematikus és NYÁK fájlokon keresztül lesz látható. Köszönjük, hogy elolvasta!

Ajánlott: