- పదార్థాలు అవసరం
- రాస్ప్బెర్రీ పైని లోరాతో కలుపుతోంది
- లోరాతో ఆర్డునోను కనెక్ట్ చేస్తోంది
- రాస్ప్బెర్రీ పై కోసం పైలోరా
- లోరా మాడ్యూల్ కోసం రాస్ప్బెర్రీ పైని కాన్ఫిగర్ చేస్తోంది
- లోరా కోసం ప్రోగ్రామింగ్ రాస్ప్బెర్రీ పై
- రాస్ప్బెర్రీ పైతో కమ్యూనికేట్ చేయడానికి లోరా కోసం ఆర్డునో కోడ్
- రాస్ప్బెర్రీ పై మరియు ఆర్డునో మధ్య లోరా కమ్యూనికేషన్ ను పరీక్షిస్తోంది
IoT, కనెక్టెడ్ కార్స్, M2M, ఇండస్ట్రీ 4.0 మొదలైన వాటితో లోరా మరింత ప్రాచుర్యం పొందుతోంది. చాలా తక్కువ శక్తితో ఎక్కువ దూరాలకు కమ్యూనికేట్ చేయగల సామర్థ్యం ఉన్నందున, బ్యాటరీతో నడిచే థింగ్ నుండి డేటాను పంపడానికి / స్వీకరించడానికి డిజైనర్లు దీనిని ఉపయోగిస్తారు. లోరా యొక్క ప్రాథమికాలను మరియు ఆర్డునోతో లోరాను ఎలా ఉపయోగించాలో మేము ఇప్పటికే చర్చించాము. లోరా నోట్తో లోరా గేట్వేతో కమ్యూనికేట్ చేయడానికి ఈ సాంకేతికత మొదట ఉద్దేశించినప్పటికీ, చాలా దూరంలోని సమాచారాన్ని మార్పిడి చేయడానికి లోరా నోడ్ మరొక లోరా నోడ్తో కమ్యూనికేట్ చేయాల్సిన అనేక దృశ్యాలు ఉన్నాయి. కాబట్టి, ఈ ట్యుటోరియల్లో రాస్ప్బెర్రీ పైతో లోరా మాడ్యూల్ ఎస్ఎక్స్ 1278 ను ఎలా ఉపయోగించాలో నేర్చుకుంటాము Arduino వంటి మైక్రోకంట్రోలర్కు అనుసంధానించబడిన మరొక SX1278 తో కమ్యూనికేట్ చేయడానికి. సెన్సార్ల నుండి డేటాను పొందటానికి మరియు లోరా ద్వారా చాలా దూరం పైకి పంపించడానికి ఆర్డునో సర్వర్గా పనిచేయగలదు కాబట్టి ఈ పద్ధతి చాలా చోట్ల ఉపయోగపడుతుంది, ఆపై క్లయింట్గా పనిచేసే పై ఈ సమాచారాన్ని స్వీకరించి దానిని అప్లోడ్ చేయవచ్చు దీనికి ఇంటర్నెట్కు ప్రాప్యత ఉన్నందున. ఆసక్తికరంగా అనిపిస్తుందా? కాబట్టి, ప్రారంభిద్దాం.
పదార్థాలు అవసరం
- SX1278 433MHz లోరా మాడ్యూల్ - 2 సంఖ్యలు
- 433MHz లోరా యాంటెన్నా - 2 సంఖ్యలు
- Arduino UNO- లేదా ఇతర వెర్షన్
- రాస్ప్బెర్రీ పై 3
మీ రాస్ప్బెర్రీ పై ఇప్పటికే ఆపరేటింగ్ సిస్టమ్తో మెరిసిందని మరియు ఇంటర్నెట్కు కనెక్ట్ చేయగలదని భావించబడుతుంది. కాకపోతే, కొనసాగడానికి ముందు రాస్ప్బెర్రీ పై ట్యుటోరియల్తో ప్రారంభించడం అనుసరించండి. ఇక్కడ మేము రాస్బియన్ జెస్సీ వ్యవస్థాపించిన రాస్ప్బెర్రీ పై 3 ను ఉపయోగిస్తున్నాము.
హెచ్చరిక: ఎల్లప్పుడూ మీ SX1278 లోరా మాడ్యూల్ను 433 MHz యాంటెన్నాలతో ఉపయోగించండి; లేకపోతే మాడ్యూల్ దెబ్బతినవచ్చు.
రాస్ప్బెర్రీ పైని లోరాతో కలుపుతోంది
మేము సాఫ్ట్వేర్ ప్యాకేజీల్లోకి రాకముందు, హార్డ్వేర్ను సిద్ధం చేద్దాం. SX1278 ఒక 16-పిన్ ఉంది Lora మాడ్యూల్ 3.3V తర్కం SPI ఉపయోగించి కమ్యూనికేట్ ఆ. రాస్ప్బెర్రీ పై కూడా 3.3 వి లాజిక్ స్థాయిలో పనిచేస్తుంది మరియు అంతర్నిర్మిత SPI పోర్ట్ మరియు 3.3V రెగ్యులేటర్ను కలిగి ఉంది. కాబట్టి మనం లోరా మాడ్యూల్ను నేరుగా రాస్ప్బెర్రీ పైతో కనెక్ట్ చేయవచ్చు. కనెక్షన్ పట్టిక క్రింద చూపబడిందిరాస్ప్బెర్రీ పై | లోరా - SX1278 మాడ్యూల్ |
3.3 వి | 3.3 వి |
గ్రౌండ్ | గ్రౌండ్ |
GPIO 10 | మోసి |
GPIO 9 | MISO |
GPIO 11 | ఎస్.సి.కె. |
GPIO 8 | Nss / ప్రారంభించు |
GPIO 4 | DIO 0 |
GPIO 17 | DIO 1 |
GPIO 18 | DIO 2 |
GPIO 27 | DIO 3 |
GPIO 22 | ఆర్ఎస్టి |
మీరు సూచన కోసం దిగువ సర్క్యూట్ రేఖాచిత్రాన్ని కూడా ఉపయోగించవచ్చు. సర్క్యూట్లో ఉపయోగించి సృష్టించబడింది గమనించండి RFM9x మాడ్యూల్ చాలా పోలి ఉంది SX1278 మాడ్యూల్, అందుకే ప్రదర్శన క్రింద చిత్రం లో విభిన్నంగా ఉండవచ్చు.
కనెక్షన్లు చాలా సరళంగా ముందుకు ఉన్నాయి, మీరు ఎదుర్కొనే ఏకైక సమస్య ఏమిటంటే, SX1278 బ్రెడ్బోర్డ్ అనుకూలంగా లేదు, అందువల్ల మీరు కనెక్షన్లను చేయడానికి నేరుగా కనెక్ట్ చేసే వైర్లను ఉపయోగించాలి లేదా క్రింద చూపిన విధంగా రెండు చిన్న బ్రెడ్బోర్డులను ఉపయోగించాలి. లోరా మాడ్యూల్ను ప్రత్యేకమైన 3.3 వి పవర్ రైలుతో శక్తివంతం చేయాలని కొంతమంది సూచిస్తున్నారు, ఎందుకంటే పై తగినంత కరెంట్ను పొందలేకపోవచ్చు. లోరా తక్కువ పవర్ మాడ్యూల్ కావడంతో పై యొక్క 3.3 వి రైలులో పని చేయాలి, నేను అదే పరీక్షించాను మరియు అది ఎటువంటి సమస్య లేకుండా పనిచేస్తుందని కనుగొన్నాను. కానీ, ఇంకా చిటికెడు ఉప్పుతో తీసుకోండి. రాస్ప్బెర్రీ పైతో లోరా యొక్క నా కనెక్షన్ సెటప్ క్రింద ఇలా ఉంది
లోరాతో ఆర్డునోను కనెక్ట్ చేస్తోంది
Arduino మాడ్యూల్ కోసం కనెక్షన్ మేము మా మునుపటి ట్యుటోరియల్లో ఉపయోగించిన విధంగానే ఉంటుంది. సందీప్ మిస్త్రీ నుండి లైబ్రరీని ఉపయోగించటానికి బదులుగా ఒకే తేడా ఉంటుంది, మేము రేడియో హెడ్ ఆధారంగా Rspreal లైబ్రరీని ఉపయోగిస్తాము, ఈ ప్రాజెక్ట్ లో తరువాత చర్చిస్తాము. సర్క్యూట్ క్రింద ఇవ్వబడింది
మళ్ళీ మీరు ఆర్డునో యునోలో 3.3 వి పిన్ను ఉపయోగించవచ్చు లేదా ప్రత్యేక 3.3 వి రెగ్యులేటర్ను ఉపయోగించవచ్చు. ఈ ప్రాజెక్ట్లో నేను ఆన్-బోర్డు వోల్టేజ్ రెగ్యులేటర్ను ఉపయోగించాను. కనెక్షన్లను సులభంగా చేయడానికి మీకు సహాయపడటానికి పిన్ కనెక్షన్ పట్టిక క్రింద ఇవ్వబడింది.
లోరా ఎస్ఎక్స్ 1278 మాడ్యూల్ | Arduino UNO బోర్డు |
3.3 వి | 3.3 వి |
Gnd | Gnd |
ఎన్ / ఎన్ఎస్ | డి 10 |
G0 / DIO0 | డి 2 |
ఎస్.సి.కె. | డి 13 |
MISO | డి 12 |
మోసి | డి 11 |
ఆర్ఎస్టి | డి 9 |
మాడ్యూల్ బ్రెడ్బోర్డులో సరిపోనందున, కనెక్షన్లను చేయడానికి నేను నేరుగా కనెక్ట్ చేసే వైర్లను ఉపయోగించాను. కనెక్షన్ చేసిన తర్వాత Arduino LoRa సెటప్ క్రింద ఇలా కనిపిస్తుంది
రాస్ప్బెర్రీ పై కోసం పైలోరా
మీరు లోరాతో ఉపయోగించగల అనేక పైథాన్ ప్యాకేజీలు ఉన్నాయి. బహుళ లోరా నోడ్ల నుండి డేటాను పొందడానికి రాస్ప్బెర్రీ పైను లోరావాన్గా ఉపయోగిస్తారు. కానీ, ఈ ప్రాజెక్టులో రెండు రాస్ప్బెర్రీ పై మాడ్యూళ్ళ మధ్య లేదా రాస్ప్బెర్రీ పై మరియు ఆర్డునో మధ్య పీర్ టు పీర్ కమ్యూనికేషన్ చేయడమే మా లక్ష్యం. కాబట్టి, నేను పైలోరా ప్యాకేజీని ఉపయోగించాలని నిర్ణయించుకున్నాను. ఇది rpsreal LoRa Arduino మరియు rpsreal LoRa రాస్ప్బెర్రీ పై మాడ్యూళ్ళను కలిగి ఉంది, వీటిని Arduino మరియు రాస్ప్బెర్రీ పై వాతావరణంలో ఉపయోగించవచ్చు. ప్రస్తుతానికి, రాస్ప్బెర్రీ పై పర్యావరణంపై దృష్టి పెడదాం.
లోరా మాడ్యూల్ కోసం రాస్ప్బెర్రీ పైని కాన్ఫిగర్ చేస్తోంది
ఇంతకు ముందు చెప్పినట్లుగా లోరా మాడ్యూల్ SPI కమ్యూనికేషన్తో పనిచేస్తుంది, కాబట్టి మేము పైపై SPI ని ప్రారంభించి పైలోరా ప్యాకేజీని ఇన్స్టాల్ చేయాలి. పై యొక్క టెర్మినల్ విండోను తెరిచిన తర్వాత, అదే విధంగా చేయడానికి క్రింది దశలను అనుసరించండి. మళ్ళీ, నా పైకి కనెక్ట్ అవ్వడానికి నేను పుట్టీని ఉపయోగిస్తున్నాను మీరు మీ అనుకూలమైన పద్ధతిని ఉపయోగించవచ్చు.
దశ 1: పొందండి ఆకృతీకరణ విండో కింది ఆదేశాన్ని ఉపయోగించి. దిగువ విండోను పొందడానికి
sudo raspi-config
దశ 2: ఇంటర్ఫేసింగ్ ఎంపికలకు నావిగేట్ చేయండి మరియు దిగువ చిత్రంలో చూపిన విధంగా SPI ని ప్రారంభించండి. మేము SPI ఇంటర్ఫేస్ను ప్రారంభించాలి ఎందుకంటే మేము LCD మరియు PI గురించి చర్చించినప్పుడు SPI ప్రోటోకాల్ ద్వారా కమ్యూనికేట్ చేస్తాము
దశ 3: మార్పులను సేవ్ చేసి, టెర్మినల్ విండోకు తిరిగి వెళ్ళు. పైప్ మరియు పైథాన్ నవీకరించబడిందని నిర్ధారించుకోండి, ఆపై కింది ఆదేశాన్ని ఉపయోగించి RPi.GPIO ప్యాకేజీని ఇన్స్టాల్ చేయండి .
పైప్ ఇన్స్టాల్ RPi.GPIO
పైలోని GPIO పిన్ను నియంత్రించడానికి ఈ ప్యాకేజీ తరగతి మాకు సహాయపడుతుంది. విజయవంతంగా ఇన్స్టాల్ చేస్తే మీ స్క్రీన్ ఇలా కనిపిస్తుంది
దశ 4: అదేవిధంగా కింది ఆదేశాన్ని ఉపయోగించి స్పైడెవ్ ప్యాకేజీని వ్యవస్థాపించండి. స్పైదేవ్ అనేది లైనక్స్ కోసం పైథాన్ బైండింగ్, ఇది రాస్ప్బెర్రీ పైపై SPI కమ్యూనికేషన్ చేయడానికి ఉపయోగపడుతుంది.
పిప్ ఇన్స్టాల్ స్పైడెవ్
ఇన్స్టాలేషన్ విజయవంతమైతే టెర్మినల్ ఈ విధంగా కనిపిస్తుంది.
దశ 5: తరువాత కింది పైప్ కమాండ్ ఉపయోగించి పైలోరా ప్యాకేజీని వ్యవస్థాపించండి. ఈ ప్యాకేజీ లోరాతో అనుబంధించబడిన రేడియో మోడళ్లను ఇన్స్టాల్ చేస్తుంది.
పైప్ ఇన్స్టాల్ పైలోరా
ఇన్స్టాలేషన్ విజయవంతమైతే మీరు ఈ క్రింది స్క్రీన్ చూస్తారు.
పైలోరా ప్యాకేజీ ఎన్క్రిప్టెడ్ కమ్యూనికేషన్కు మద్దతు ఇస్తుంది, దీనిని ఆర్డునో మరియు రాస్ప్బెర్రీ పైతో సజావుగా ఉపయోగించవచ్చు. ఇది మీ కమ్యూనికేషన్లో డేటా భద్రతను మెరుగుపరుస్తుంది. ఎన్క్రిప్షన్ ఈ ట్యుటోరియల్ పరిధిలో లేనందున నేను చేయని ఈ దశ తరువాత మీరు ప్రత్యేక ప్యాకేజీని వ్యవస్థాపించాలి. మరిన్ని వివరాల కోసం మీరు పై గితుబ్ లింక్లను అనుసరించవచ్చు.
తరువాత, ఈ దశ మీరు ప్యాకేజీ మార్గం సమాచారాన్ని పైకి జోడించి , చివరిలో ఇచ్చిన పైథాన్ ప్రోగ్రామ్తో ప్రయత్నించవచ్చు. కానీ నేను మార్గాన్ని విజయవంతంగా జోడించలేకపోయాను, అందువల్ల లైబ్రరీని మాన్యువల్గా డౌన్లోడ్ చేసుకోవాలి మరియు నా ప్రోగ్రామ్ల కోసం నేరుగా ఉపయోగించాలి. కాబట్టి నేను ఈ క్రింది దశలతో ముందుకు సాగాలి
దశ 6: పై ఆదేశాన్ని ఉపయోగించి పైథాన్- rpi.gpio ప్యాకేజీ మరియు స్పైడెవ్ ప్యాకేజీని డౌన్లోడ్ చేసి, ఇన్స్టాల్ చేయండి.
sudo apt-get install python-rpi.gpio python3-rpi.gpio sudo apt-get install python-spidev python3-spidev
టెర్మినల్ విండో రెండు సంస్థాపనల తర్వాత ఇలాంటిదే ప్రదర్శించాలి.
దశ 7: జిట్ను ఇన్స్టాల్ చేసి, ఆపై మా రాస్ప్బెర్రీ పై కోసం పైథాన్ డైరెక్టరీని క్లోన్ చేయడానికి దాన్ని ఉపయోగించండి. కింది ఆదేశాలను ఉపయోగించి మీరు దీన్ని చేయవచ్చు.
sudo apt-get install git sudo git clone
ఈ దశ పూర్తయిన తర్వాత మీరు రాస్ప్బెర్రీ పై హోమ్ ఫోల్డర్లో SX127x ఉప డైరెక్టరీని కనుగొనాలి. ఇది లైబ్రరీతో అనుబంధించబడిన అన్ని అవసరమైన ఫైళ్ళను కలిగి ఉంటుంది.
లోరా కోసం ప్రోగ్రామింగ్ రాస్ప్బెర్రీ పై
లోరా కమ్యూనికేషన్ను పరిశీలించడానికి తోటివారిలో సమాచారాన్ని ప్రసారం చేసే మాడ్యూల్ను సర్వర్ అంటారు మరియు సమాచారాన్ని స్వీకరించే మాడ్యూల్ను క్లయింట్ అంటారు. చాలా సందర్భాలలో డేటాను కొలవడానికి సెన్సార్తో ఫీల్డ్లో ఆర్డునో ఉపయోగించబడుతుంది మరియు ఈ డేటాను స్వీకరించడానికి పై ఉపయోగించబడుతుంది. కాబట్టి, ఈ ట్యుటోరియల్లో రాస్ప్బెర్రీ పైని క్లయింట్గా మరియు ఆర్డునోను సర్వర్గా ఉపయోగించాలని నిర్ణయించుకున్నాను. పూర్తి రాస్ప్బెర్రీ పై క్లయింట్ కార్యక్రమం ఈ పేజీ దిగువన చూడవచ్చు. ఇక్కడ నేను ప్రోగ్రామ్లోని ముఖ్యమైన పంక్తులను వివరించడానికి ప్రయత్నిస్తాను.
హెచ్చరిక: SX127x లైబ్రరీ ఫోల్డర్ ఉన్న ప్రోగ్రామ్ ఫైల్ అదే డైరెక్టరీలో ఉందని నిర్ధారించుకోండి. మీరు ఈ ఫోల్డర్ను కాపీ చేసి, ప్రాజెక్ట్ను పోర్ట్ చేయాలనుకుంటే ఎక్కడైనా ఉపయోగించవచ్చు.
ప్రోగ్రామ్ చాలా సులభం, మేము లోరా మాడ్యూల్ను 433Mhz లో పని చేయడానికి సెట్ చేసి, ఆపై ఇన్కమింగ్ ప్యాకెట్ల కోసం వినాలి. మేము ఏదైనా స్వీకరిస్తే, వాటిని కన్సోల్లో ప్రింట్ చేయండి. ఎప్పటిలాగే మేము అవసరమైన పైథాన్ లైబ్రరీలను దిగుమతి చేయడం ద్వారా ప్రోగ్రామ్ను ప్రారంభిస్తాము.
సమయం దిగుమతి నిద్ర నుండి SX127x.LoRa దిగుమతి * నుండి SX127x.board_config దిగుమతి BOARD నుండి BOARD.setup ()
ఈ సందర్భంలో ఆలస్యాన్ని సృష్టించడానికి టైమ్ ప్యాకేజీ ఉపయోగించబడుతుంది, లోరా ప్యాకేజీ లోరా కమ్యూనికేషన్ కోసం ఉపయోగించబడుతుంది మరియు బోర్డు మరియు లోరా పారామితులను సెట్ చేయడానికి బోర్డు_కాన్ఫిగ్ ఉపయోగించబడుతుంది. మేము BOARD.setup () ఫంక్షన్ను ఉపయోగించి బోర్డును కూడా సెటప్ చేస్తాము .
తరువాత మేము మూడు నిర్వచనాలతో పైథాన్ లోరా తరగతిని సృష్టిస్తాము. ప్రోగ్రామ్ను కోరిందకాయ క్లయింట్గా పని చేయడానికి మాత్రమే మేము ఇండెంట్ చేస్తున్నందున, తరగతికి init ఫంక్షన్, ప్రారంభ తరగతి మరియు on_rx_done క్లాస్ అనే మూడు విధులు మాత్రమే ఉన్నాయి. సెట్_పా_కాన్ఫిగ్ పద్ధతిలో సెట్ చేసినట్లు init క్లాస్ 433MHz లో 125kHz బ్యాండ్విడ్త్తో లోరా మాడ్యూల్ను ప్రారంభిస్తుంది. అప్పుడు ఇది విద్యుత్ వినియోగాన్ని ఆదా చేయడానికి మాడ్యూల్ను స్లీప్ మోడ్లో ఉంచుతుంది.
# ప్రారంభించిన తర్వాత మధ్యస్థ శ్రేణి డిఫాల్ట్లు 434.0MHz, Bw = 125 kHz, Cr = 4/5, Sf = 128chips / symbol, CRC on 13 dBm lora.set_pa_config (pa_select = 1) def __init __ (self, verbose = False): సూపర్ (LoRaRcvCont, self).__ init __ (verbose) self.set_mode (MODE.SLEEP) self.set_dio_mapping (* 6)
ప్రారంభ ఫంక్షన్ అంటే మేము మాడ్యూల్ను రిసీవర్గా కాన్ఫిగర్ చేసి, RSSI (రిసీవింగ్ సిగ్నల్ బలం సూచిక), స్థితి, ఆపరేటింగ్ ఫ్రీక్వెన్సీ మొదలైనవి. మేము స్లీప్ మోడ్ నుండి నిరంతర రిసీవర్ మోడ్ (RXCONT) లో పని చేయడానికి మాడ్యూల్ను సెట్ చేసాము, ఆపై RSSI మరియు మోడెమ్ స్థితి వంటి విలువలను చదవడానికి కాసేపు లూప్ను ఉపయోగిస్తాము. మేము సీరియల్ బఫర్లోని డేటాను టెర్మినల్లోకి కూడా ఫ్లష్ చేస్తాము.
def start (self): self.reset_ptr_rx () self.set_mode (MODE.RXCONT) అయితే ట్రూ: నిద్ర (.5) rssi_value = self.get_rssi_value () status = self.get_modem_status () sys.stdout.flush ()
చివరికి ఇన్కమింగ్ ప్యాకెట్ చదివిన తరువాత on_rx_done ఫంక్షన్ అమలు అవుతుంది. ఈ ఫంక్షన్లో అందుకున్న విలువలు స్వీకరించే జెండాను అధికంగా సెట్ చేసిన తర్వాత Rx బఫర్ నుండి పేలోడ్ అనే వేరియబుల్లోకి తరలించబడతాయి. అప్పుడు స్వీకరించిన విలువలు షెల్లో యూజర్ చదవగలిగే డేటాను ప్రింట్ చేయడానికి utf-8 తో డీకోడ్ చేయబడతాయి. మరొక విలువను స్వీకరించే వరకు మేము మాడ్యూల్ను తిరిగి స్లీప్ మోడ్లో ఉంచాము.
def on_rx_done (self): print (" e n స్వీకరించబడింది:") self.clear_irq_flags (RxDone = 1) payload = self.read_payload (nocheck = True) print (bytes (payload).decode ("utf-8", 'విస్మరించు')) self.set_mode (MODE.SLEEP) self.reset_ptr_rx () self.set_mode (MODE.RXCONT)
ప్రోగ్రామ్ యొక్క మిగిలిన భాగం కన్సోల్లో అందుకున్న విలువలను ముద్రించడం మరియు కీబోర్డ్ అంతరాయాన్ని ఉపయోగించి ప్రోగ్రామ్ను ముగించడం. శక్తిని ఆదా చేయడానికి ప్రోగ్రామ్ ముగిసిన తర్వాత కూడా మేము మళ్ళీ బోర్డును స్లీప్ మోడ్లో సెట్ చేసాము.
ప్రయత్నించండి: కీబోర్డ్ ఇంటర్రప్ట్ మినహా లోరా.స్టార్ట్ (): sys.stdout.flush () ప్రింట్ ("") sys.stderr.write ("కీబోర్డ్ ఇంటర్రప్ట్ \ n") చివరకు: sys.stdout.flush () ప్రింట్ ("") లోరా. set_mode (MODE.SLEEP) BOARD.teardown ()
రాస్ప్బెర్రీ పైతో కమ్యూనికేట్ చేయడానికి లోరా కోసం ఆర్డునో కోడ్
నేను ఇంతకు ముందే చెప్పినట్లుగా, rpsreal కోడ్ Arduino మరియు Pi రెండింటికీ మద్దతు ఇస్తుంది మరియు అందువల్ల Arduino మరియు Pi ల మధ్య కమ్యూనికేషన్ సాధ్యమే. ఇది ఎయిర్స్పేస్ నుండి రేడియోహెడ్ లైబ్రరీ ఆధారంగా పనిచేస్తుంది. కాబట్టి మీరు మొదట రేడియో హెడ్ లైబ్రరీని మీ ఆర్డునో ఐడిఇకి ఇన్స్టాల్ చేయాలి.
అలా చేయడానికి గితుబ్ పేజీని సందర్శించండి మరియు జిప్ ఫోల్డర్లోని లైబ్రరీని డౌన్లోడ్ చేయండి. అప్పుడు మీ Arduino IDE యొక్క లైబ్రరీ ఫోల్డర్లో ఉంచండి. ఇప్పుడు, Arduino IDE ని పున art ప్రారంభించండి మరియు మీరు రేడియో హెడ్ లైబ్రరీ కోసం ఉదాహరణ ఫైళ్ళను కనుగొంటారు. ఇక్కడ 0 నుండి 9 వంటి పరీక్ష ప్యాకెట్లను పంపడానికి లోరా సర్వర్గా పనిచేయడానికి ఆర్డునోను ప్రోగ్రామ్ చేస్తాము. అదే విధంగా పూర్తి కోడ్ ఎప్పటిలాగే ఈ పేజీ దిగువన చూడవచ్చు. ఇక్కడ, నేను ప్రోగ్రామ్లోని కొన్ని ముఖ్యమైన పంక్తులను వివరిస్తాను.
లోరా కమ్యూనికేషన్ చేయడానికి SPI ప్రోటోకాల్ను ఉపయోగించడానికి SPI లైబ్రరీని (డిఫాల్ట్గా ఇన్స్టాల్ చేయబడింది) మరియు రేడియో హెడ్ నుండి RH_RF95 లైబ్రరీని దిగుమతి చేయడం ద్వారా మేము ప్రోగ్రామ్ను ప్రారంభిస్తాము. ఆర్డునోతో చిప్ సెలెక్ట్ (సిఎస్), రీసెట్ (ఆర్ఎస్టి) మరియు లోరా యొక్క ఇంటరప్ట్ (ఐఎన్టి) పిన్ని ఆర్డునోతో కనెక్ట్ చేశామని మేము నిర్వచించాము. చివరగా మేము మాడ్యూల్ 434MHz ఫ్రీక్వెన్సీలో పనిచేయాలని మరియు లోరా మాడ్యూల్ను ప్రారంభించాలని కూడా నిర్వచించాము.
# చేర్చండి
సెటప్ ఫంక్షన్ లోపల, లోరా మాడ్యూల్ దాని రీసెట్ పిన్ను 10 మిల్లీ సెకన్ల వరకు తక్కువగా లాగడం ద్వారా రీసెట్ చేస్తాము. అప్పుడు మేము మాడ్యూల్ తో ప్రారంభించడం మేము రేడియో తల లైబ్రరీ ఉపయోగించి ముందుగానే రూపొందించబడిన. అప్పుడు, మేము లోరా సర్వర్ కోసం ఫ్రీక్వెన్సీ మరియు ట్రాన్స్మిషన్ శక్తిని సెట్ చేసాము. ప్రసారానికి ఎక్కువ దూరం మీ ప్యాకెట్లు ప్రయాణించగలవు కాని ఎక్కువ శక్తిని వినియోగిస్తాయి.
void setup () { // సీరియల్ మానిటర్ను ప్రారంభించండి Serial.begin (9600); // లోరా మాడ్యూల్ పిన్మోడ్ను రీసెట్ చేయండి (RFM95_RST, OUTPUT); డిజిటల్ రైట్ (RFM95_RST, LOW); ఆలస్యం (10); డిజిటల్ రైట్ (RFM95_RST, HIGH); ఆలస్యం (10); // లోరా మాడ్యూల్ను ప్రారంభించండి (! Rf95.init ()) { Serial.println ("లోరా రేడియో init విఫలమైంది"); అయితే (1); } // (! Rf95.setFrequency (RF95_FREQ)) ఉంటే డిఫాల్ట్ ఫ్రీక్వెన్సీని సెట్ చేయండి { Serial.println ("setFrequency విఫలమైంది"); అయితే (1); } rf95.setTxPower (18); // లోరా మాడ్యూల్ యొక్క ప్రసార శక్తి }
అనంతమైన లూప్ ఫంక్షన్ లోపల, మేము లోరా మాడ్యూల్ ద్వారా డేటా ప్యాకెట్ను పంపాలి. ఈ డేటా యూజర్ కమాండ్ యొక్క సెన్సార్ విలువ వంటిది కావచ్చు. కానీ సరళత కోసం మేము ప్రతి 1 సెకను విరామానికి చార్ విలువ 0 నుండి 9 వరకు పంపుతాము మరియు తరువాత 9 కి చేరుకున్న తర్వాత విలువను 0 కి తిరిగి ప్రారంభిస్తాము. విలువలను చార్ అర్రే ఫార్మాట్లో మాత్రమే పంపవచ్చని మరియు డేటా రకం యూనిట్ 8_t ఉండాలి ఒక సమయంలో 1 బైట్. అదే చేయవలసిన కోడ్ క్రింద చూపబడింది
void loop () { Serial.print ("పంపండి:"); చార్ రేడియోప్యాకెట్ = చార్ (విలువ)}; rf95.send ((uint8_t *) రేడియోప్యాకెట్, 1); ఆలస్యం (1000); విలువ ++; if (విలువ> '9') విలువ = 48; }
రాస్ప్బెర్రీ పై మరియు ఆర్డునో మధ్య లోరా కమ్యూనికేషన్ ను పరీక్షిస్తోంది
ఇప్పుడు, మన హార్డ్వేర్ మరియు ప్రోగ్రామ్ రెండింటినీ సిద్ధం చేసుకున్నాము, మేము ఆర్డునో కోడ్ను UNO బోర్డ్కు అప్లోడ్ చేయాలి మరియు పైథాన్ స్కెచ్ పైలో ప్రారంభించాలి. కనెక్ట్ చేయబడిన రెండు హార్డ్వేర్లతో నా పరీక్ష సెటప్, ఈ క్రింది విధంగా కనిపిస్తుంది
పైథాన్ క్లయింట్ స్కెచ్ పైపై ప్రారంభించిన తర్వాత (పైథాన్ 3 మాత్రమే వాడండి), ప్రతిదీ సరిగ్గా పనిచేస్తుంటే మీరు షెల్ విండో అయినప్పటికీ పైలో అందుకున్న ఆర్డునో ప్యాకెట్లను చూడాలి. దిగువ చిత్రంలో చూపిన విధంగా “స్వీకరించబడింది: 0” నుండి 9 వరకు మీరు గమనించాలి.
అవసరమైన అన్ని లైబ్రరీలతో కూడిన పూర్తి రాస్ప్బెర్రీ పై కోడ్ను ఇక్కడ నుండి డౌన్లోడ్ చేసుకోవచ్చు.
మీరు ఇప్పుడు Arduino సర్వర్ను తరలించి, మాడ్యూల్ పరిధిని తనిఖీ చేయవచ్చు; అవసరమైతే షెల్ మీద RSSI విలువను ప్రదర్శించడం కూడా సాధ్యమే. ప్రాజెక్ట్ యొక్క పూర్తి పనిని క్రింద లింక్ చేసిన వీడియోలో చూడవచ్చు. ఇప్పుడు, ఆర్డునో మరియు రాస్ప్బెర్రీ పై మధ్య సుదూర తక్కువ శక్తి లోరా కమ్యూనికేషన్ను ఎలా స్థాపించాలో మనకు తెలుసు, పూర్తి ఐయోటి ప్యాకేజీని తయారు చేయడానికి ఆర్డునో వైపు సెన్సార్ మరియు పై వైపు క్లౌడ్ ప్లాట్ఫాంను జోడించడం ద్వారా మనం ముందుకు సాగవచ్చు.
మీరు ప్రాజెక్ట్ను అర్థం చేసుకున్నారని మరియు దానిని నిర్మించడం ఆనందించారని ఆశిస్తున్నాము. ఇది పని చేయడంలో మీకు సమస్య ఉంటే, దిగువ వ్యాఖ్య విభాగాన్ని లేదా ఇతర సాంకేతిక ప్రశ్నల కోసం ఫోరమ్లను ఉపయోగించండి.