Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Kirjasto
- Vaihe 2: Pinout
- Vaihe 3: AUX -nasta
- Vaihe 4: Täysin yhdistetty malli Esp8266
- Vaihe 5: Täysin yhdistetty skeema Arduino
- Vaihe 6: Kirjasto: Rakentaja
- Vaihe 7: Aloita
- Vaihe 8: Kokoonpano- ja tietomenetelmä
- Vaihe 9: Vastaussäiliö
- Vaihe 10: Perusasetukset
- Vaihe 11: Lähetä vastaanottoviesti
- Vaihe 12: Normaali lähetystila
- Vaihe 13: Hallitse rakennetta
- Vaihe 14: Kiinteä tila normaalitilan sijaan
- Vaihe 15: Kiitos
Video: LoRa 3–8 km: n langaton tiedonsiirto edullisilla E32 -laitteilla (sx1278/sx1276) Arduino-, Esp8266- tai Esp32 -laitteille: 15 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Luon kirjaston EBYTE E32: n hallintaan perustuen LoRa -laitteen Semtech -sarjaan, joka on erittäin tehokas, yksinkertainen ja halpa laite.
Löydät 3 km: n version täältä, 8 km: n version täältä
Ne voivat työskennellä 3000–8000 metrin etäisyydellä, ja niillä on paljon ominaisuuksia ja parametreja. Joten luon tämän kirjaston käytön yksinkertaistamiseksi.
Se on ratkaisu tietojen hakuun pääkaupunkiseudun antureista tai dronin hallintaan.
Tarvikkeet
Arduino UNO
Wemos D1 mini
LoRa E32 TTL 100 3Km versio
LoRa E32 TTL 1W 8Km versio
Vaihe 1: Kirjasto
Kirjastoni löydät täältä.
Ladata.
Napsauta LATAA -painiketta oikeassa yläkulmassa ja nimeä pakkaamaton kansio uudelleen LoRa_E32.
Tarkista, että LoRa_E32 -kansio sisältää LoRa_E32.cpp ja LoRa_E32.h.
Aseta LoRa_E32 -kirjastokansio / libraries / kansio. Sinun on ehkä luotava kirjastojen alikansio, jos se on ensimmäinen kirjasto.
Käynnistä IDE uudelleen.
Vaihe 2: Pinout
Kuten näet, voit asettaa erilaisia tiloja M0- ja M1 -nastojen kautta.
Joitakin nastoja voidaan käyttää staattisella tavalla, mutta jos liität sen mikrokontrolleriin ja määrität ne kirjastossa, saat suorituskykyä ja voit hallita kaikkia tiloja ohjelmiston avulla, mutta aiomme selittää paremmin seuraavaksi.
Vaihe 3: AUX -nasta
Kuten jo sanon, ei ole tärkeää liittää kaikkia nastaja mikrokontrollerin lähtöön, voit laittaa M0- ja M1 -nastat HIGH- tai LOW -asentoon, jotta saat halutun kokoonpanon, ja jos et liitä AUX: ta, kirjasto asettaa kohtuullisen viiveen varmistaaksesi, että että toimenpide on valmis.
AUX -nasta
Lähetettäessä dataa voidaan käyttää ulkoisen MCU: n herättämiseen ja palauttamiseen HIGH tiedonsiirron päätyttyä.
Vastaanotettaessa AUX -toimintoa MATALA ja palaa KORKEA, kun puskuri on tyhjä.
Sitä käytetään myös itsetarkistukseen normaalin toiminnan palauttamiseksi (käynnistettäessä ja lepotilassa/ohjelmointitilassa).
Vaihe 4: Täysin yhdistetty malli Esp8266
esp8266 -kytkentäkaavio on yksinkertaisempi, koska se toimii samalla loogisen viestinnän jännitteellä (3.3v).
On tärkeää lisätä vetovastus (4, 7Kohm) hyvän vakauden saavuttamiseksi.
Vaihe 5: Täysin yhdistetty skeema Arduino
Arduinon käyttöjännite on 5 V, joten meidän on lisättävä jännitteenjakaja LoRa -moduulin RX -nastalle M0 ja M1 vaurioiden estämiseksi, saat lisätietoja täältä Jännitteenjakaja: laskin ja sovellus.
Voit käyttää 2Kohmin vastusta GND: hen ja 1Kohm signaalista kuin koota RX: ssä.
Vaihe 6: Kirjasto: Rakentaja
Tein joukon melkoisia rakentajia, koska meillä voi olla enemmän vaihtoehtoja ja tilanteita hallittavaksi.
LoRa_E32 (tavu rxPin, tavu txPin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
LoRa_E32 (tavu rxPin, tavu txPin, tavu auxPin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600); LoRa_E32 (tavu rxPin, tavu txPin, tavu auxPin, tavu m0Pin, tavu m1Pin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
Ensimmäinen joukko konstruktoreita luodaan siirtämään sarja- ja muiden nastojen hallinta kirjastoon.
rxPin ja txPin ovat UART -yhteyden muodostustappi, ja ne ovat pakollisia.
auxPin on nasta, joka tarkistaa toiminnan, lähetyksen ja vastaanoton tilan (aiomme selittää paremmin seuraavaksi), että pin Se ei ole pakollista, jos et määritä sitä, käytän viivettä, jotta toiminto voi suorittaa itsensä loppuun (viiveellä).
m0pin ja m1Pin ovat tapoja muuttaa toimintatilaa (katso taulukon yläosa), luulen, että nämä "tuotannon" nastat yhdistävät suoraan HIGH tai LOW, mutta testin vuoksi ne ovat hyödyllisiä kirjaston hallinnassa.
bpsRate on SoftwareSerialin boudraatti normaalisti 9600 (ainoa tiedonsiirtonopeus programmin/lepotilassa)
Yksinkertainen esimerkki on
#include "LoRa_E32.h" LoRa_E32 e32ttl100 (2, 3); // RX, TX // LoRa_E32 e32ttl100 (2, 3, 5, 6, 7); // RX, TX
Voimme käyttää SoftwareSerialia suoraan toisen valmistajan kanssa
LoRa_E32 (HardwareSerial* -sarja, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
LoRa_E32 (HardwareSerial* -sarja, tavu auxPin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
LoRa_E32 (HardwareSerial* -sarja, tavu auxPin, tavu m0Pin, tavu m1Pin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
Ylempi esimerkki tällä konstruktorilla voi tehdä näin.
#Sisällytä #Sisällytä "LoRa_E32.h"
SoftwareSerial mySerial (2, 3); // RX, TX
LoRa_E32 e32ttl100 (& mySerial);
// LoRa_E32 e32ttl100 (& mySerial, 5, 7, 6);
Viimeinen rakentajajoukko sallii HardwareSerialin käytön SoftwareSerialin sijaan.
LoRa_E32 (SoftwareSerial* -sarja, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
LoRa_E32 (SoftwareSerial* -sarja, tavu auxPin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
LoRa_E32 (SoftwareSerial* -sarja, tavu auxPin, tavu m0Pin, tavu m1Pin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
Vaihe 7: Aloita
Käynnistyskomentoa käytetään sarja- ja nastien käynnistämiseen tulo- ja tulostustilassa.
mitätön alku ();
toteutuksessa on
// Käynnistä kaikki nastat ja UART
e32ttl100.begin ();
Vaihe 8: Kokoonpano- ja tietomenetelmä
Siellä on joukko menetelmiä kokoonpanon hallintaan ja laitteen tietojen hankkimiseen.
ResponseStructContainer getConfiguration ();
ResponseStatus setConfiguration (Kokoonpanomääritykset, PROGRAM_COMMAND saveType = WRITE_CFG_PWR_DWN_LOSE);
ResponseStructContainer getModuleInformation ();
void printParameters (strukturointiasetusten määritys);
ResponseStatus resetModule ();
Vaihe 9: Vastaussäiliö
Vastauksen hallinnan yksinkertaistamiseksi luon säilön, joka on erittäin hyödyllinen virheiden hallintaan ja yleisten tietojen palauttamiseen.
ResponseStatus
Tämä on tilasäiliö ja siinä on 2 yksinkertaista syöttöpistettä, joiden avulla saat tilakoodin ja tilakoodin kuvauksen
Serial.println (c.getResponseDescription ()); // Koodin kuvaus
Serial.println (c.code); // 1 jos menestys
Koodit ovat
MENESTYS = 1, ERR_UNKNOWN, ERR_NOT_SUPPORT, ERR_NOT_IMPLEMENT, ERR_NOT_INITIAL, ERR_INVALID_PARAM, ERR_DATA_SIZE_NOT_MATCH, ERR_BUF_TOO_SMALL, ERR_TIMEOUT, ERR_HARDWARE, ERR_HEAD_NOT_RECOGNIZED
ResponseContainer
Tämä säilö on luotu hallitsemaan merkkijonovastausta ja sillä on kaksi syöttöpistettä.
tiedot, joiden merkkijono on palautettu viestistä ja tilasta, RepsonseStatus -ilmentymä.
ResponseContainer rs = e32ttl.receptMessage ();
Merkkijonoviesti = rs.data;
Serial.println (rs.status.getResponseDescription ());
Serial.println (viesti);
ResponseStructContainer
Tämä on "monimutkaisempi" säilö, käytän tätä rakenteen hallintaan, sillä on sama ResponseContainerin aloituspiste, mutta data on tyhjä osoitin monimutkaisen rakenteen hallintaan.
ResponseStructContainer c;
c = e32ttl100.getConfiguration (); // On tärkeää saada määritysosoitin ennen kaikkia muita toimintoja
Kokoonpanon määritykset = *(Kokoonpano *) c.data;
Serial.println (c.status.getResponseDescription ());
Serial.println (c.status.code);
getConfiguration ja setConfiguration
Ensimmäinen menetelmä on getConfiguration, jonka avulla voit hakea kaikki laitteelle tallennetut tiedot.
ResponseStructContainer getConfiguration ();
Tässä esimerkki käytöstä.
ResponseStructContainer c;
c = e32ttl100.getConfiguration (); // On tärkeää saada määritysosoitin ennen kaikkia muita toimintoja
Kokoonpanon määritykset = *(Kokoonpano *) c.data;
Serial.println (c.status.getResponseDescription ());
Serial.println (c.status.code);
Serial.println (configuration. SPED.getUARTBaudRate ());
Kokoonpanon rakenteessa on kaikki asetustiedot, ja lisään sarjan toimintoja, jotta saan kaiken yksittäisten tietojen kuvauksen.
kokoonpano. ADDL = 0x0; // Osoiteasetusten ensimmäinen osa. ADDH = 0x1; // Osoitekokoonpanon toinen osa. CHAN = 0x19; // Kanavan määritys. OPTION.fec = FEC_0_OFF; // Välitä virheenkorjauskytkimen kokoonpano. OPTION.fixedTransmission = FT_TRANSPARENT_TRANSMISSION; // Lähetystilan määritys. OPTION.ioDriveMode = IO_D_MODE_PUSH_PULLS_PULL_UPS; // Pull-up-hallintamääritykset. OPTION.transmissionPower = POWER_17; // dBm lähetystehon kokoonpano. OPTION.wirelessWakeupTime = WAKE_UP_1250; // Odota heräämiskonfigurointia. SPED.airDataRate = AIR_DATA_RATE_011_48; // Ilmavirran määritys. SPED.uartBaudRate = UART_BPS_115200; // Tiedonsiirtonopeuden määritys. SPED.uartParity = MODE_00_8N1; // Pariteettibitti
Sinulla on vastaava toiminto kaikille määritteille saadaksesi kaikki kuvaukset:
Serial.print (F ("Chan:")); Serial.print (kokoonpano. CHAN, DEC); Serial.print (" ->"); Serial.println (configuration.getChannelDescription ()); Serial.println (F ("")); Serial.print (F ("SpeedParityBit:")); Serial.print (configuration. SPED.uartParity, BIN); Serial.print (" ->"); Serial.println (configuration. SPED.getUARTParityDescription ()); Serial.print (F ("SpeedUARTDatte:")); Serial.print (configuration. SPED.uartBaudRate, BIN); Serial.print (" ->"); Serial.println (configuration. SPED.getUARTBaudRate ()); Serial.print (F ("SpeedAirDataRate:")); Serial.print (configuration. SPED.airDataRate, BIN); Serial.print (" ->"); Serial.println (configuration. SPED.getAirDataRate ()); Serial.print (F ("OptionTrans:")); Serial.print (configuration. OPTION.fixedTransmission, BIN); Serial.print (" ->"); Serial.println (configuration. OPTION.getFixedTransmissionDescription ()); Serial.print (F ("OptionPullup:")); Serial.print (configuration. OPTION.ioDriveMode, BIN); Serial.print (" ->"); Serial.println (configuration. OPTION.getIODroveModeDescription ()); Serial.print (F ("OptionWakeup:")); Serial.print (configuration. OPTION.wirelessWakeupTime, BIN); Serial.print (" ->"); Serial.println (configuration. OPTION.getWirelessWakeUPTimeDescription ()); Serial.print (F ("OptionFEC:")); Serial.print (configuration. OPTION.fec, BIN); Serial.print (" ->"); Serial.println (configuration. OPTION.getFECDescription ()); Serial.print (F ("OptionPower:")); Serial.print (configuration. OPTION.transmissionPower, BIN); Serial.print (" ->"); Serial.println (configuration. OPTION.getTransmissionPowerDescription ());
Samalla tavalla setConfiguration haluaa kokoonpanorakenteen, joten mielestäni parempi tapa hallita kokoonpanoa on hakea nykyinen, soveltaa vain tarvitsemasi muutos ja asettaa se uudelleen.
ResponseStatus setConfiguration (Kokoonpanon määritys, PROGRAM_COMMAND saveType = WRITE_CFG_PWR_DWN_LOSE);
kokoonpano on näytetty aiemmin, SaveType sallii sinun valita, jos muutos tulee pysyvästi vain nykyiselle istunnolle.
ResponseStructContainer c; c = e32ttl100.getConfiguration (); // On tärkeää saada määritysosoitin ennen kaikkia muita toimintoja Configuration configuration = *(Configuration *) c.data; Serial.println (c.status.getResponseDescription ()); Serial.println (c.status.code); printParameters (kokoonpano); kokoonpano. ADDL = 0x0; ADDH = 0x1; kokoonpano. CHAN = 0x19; configuration. OPTION.fec = FEC_0_OFF; configuration. OPTION.fixedTransmission = FT_TRANSPARENT_TRANSMISSION; configuration. OPTION.ioDriveMode = IO_D_MODE_PUSH_PULLS_PULL_UPS; configuration. OPTION.transmissionPower = POWER_17; configuration. OPTION.wirelessWakeupTime = WAKE_UP_1250; configuration. SPED.airDataRate = AIR_DATA_RATE_011_48; configuration. SPED.uartBaudRate = UART_BPS_115200; configuration. SPED.uartParity = MODE_00_8N1; // Määritä asetuksia muutettuna ja aseta olemaan pitämättä kokoonpanoa ResponseStatus rs = e32ttl100.setConfiguration (kokoonpano, WRITE_CFG_PWR_DWN_LOSE); Serial.println (rs.getResponseDescription ()); Serial.println (rs.code); printParameters (kokoonpano);
Kaikkia parametreja hallitaan vakiona:
Vaihe 10: Perusasetukset
Vaihe 11: Lähetä vastaanottoviesti
Ensin meidän on otettava käyttöön yksinkertainen mutta hyödyllinen tapa tarkistaa, onko jotain vastaanottopuskurissa
int saatavilla ();
Se yksinkertaisesti palauttaa, kuinka monta tavua sinulla on nykyisessä streamissa.
Vaihe 12: Normaali lähetystila
Normaali/Läpinäkyvä lähetystapaa käytetään viestien lähettämiseen kaikkiin laitteisiin, joilla on sama osoite ja kanava.
Viestien lähettämiseen/vastaanottamiseen on monia tapoja, aiomme selittää yksityiskohtaisesti:
ResponseStatus sendMessage (const String -viesti);
ResponseContainer ReceiveMessage ();
Ensimmäinen tapa on sendMessage ja sitä käytetään lähettämään merkkijono laitteelle normaalitilassa.
ResponseStatus rs = e32ttl.sendMessage ("Prova"); Serial.println (rs.getResponseDescription ());
Toinen laite yksinkertaisesti tekee silmukan
jos (e32ttl.available ()> 1) {ResponseContainer rs = e32ttl.receptionMessage (); Merkkijonoviesti = rs.data; // Hanki ensin tiedot Serial.println (rs.status.getResponseDescription ()); Serial.println (viesti); }
Vaihe 13: Hallitse rakennetta
Jos haluat lähettää monimutkaisen rakenteen, voit käyttää tätä menetelmää
ResponseStatus sendMessage (const void *message, const uint8_t size); ResponseStructContainer ReceiveMessage (const uint8_t size);
Sitä käytetään strucutren lähettämiseen, esimerkiksi:
rakenne Messaggione {char -tyyppi [5]; char -viesti [8]; bool mitico; }; rakenne Messaggione messaggione = {"TEMP", "Peple", true}; ResponseStatus rs = e32ttl.sendMessage (& messaggione, sizeof (Messaggione)); Serial.println (rs.getResponseDescription ());
ja toisella puolella voit vastaanottaa viestin niin
ResponseStructContainer rsc = e32ttl.receptMessage (sizeof (Messaggione)); struk Messaggione messaggione = *(Messaggione *) rsc.data; Serial.println (messaggione.message); Serial.println (messaggione.mitico);
Lue osittainen rakenne
Jos haluat lukea viestin ensimmäisen osan hallitaksesi useampia rakenteita, voit käyttää tätä menetelmää.
ResponseContainer ReceiveInitialMessage (const uint8_t size);
Luon sen vastaanottamaan merkkijonon, jonka tyyppi tai muu tunnistaa ladattavan rakenteen.
strukt Messaggione {// Osittainen rakenne ilman kirjoitusviestiä [8]; bool mitico; }; char -tyyppi [5]; // rakenteen ensimmäinen osa ResponseContainer rs = e32ttl.receptInitialMessage (sizeof (type)); // Laita merkkijono char -taulukkoon (ei tarvita) memcpy (type, rs.data.c_str (), sizeof (type)); Serial.println ("LUE TYYPPI:"); Serial.println (rs.status.getResponseDescription ()); Sarja.println (tyyppi); // Lue muun rakenteen ResponseStructContainer rsc = e32ttl.receptMessage (sizeof (Messaggione)); rakenne Messaggione messaggione = *(Messaggione *) rsc.data;
Vaihe 14: Kiinteä tila normaalitilan sijaan
Samalla tavalla luon joukon menetelmiä käytettäväksi kiinteän lähetyksen kanssa
Kiinteä lähetys
Sinun on muutettava vain lähetystapaa, koska kohdelaite ei vastaanota johdanto -osaa, jossa on kiinteä osoite ja kanava.
Joten String -viestillä
ResponseStatus sendFixedMessage (tavu ADDL, tavu ADDH, tavu CHAN, const String -viesti); ResponseStatus sendBroadcastFixedMessage (tavu CHAN, const String -viesti);
ja rakenteellesi
ResponseStatus sendFixedMessage (tavu ADDL, tavu ADDH, tavu CHAN, const void *viesti, const uint8_t -koko); ResponseStatus sendBroadcastFixedMessage (tavu CHAN, const void *message, const uint8_t size);
Tässä yksinkertainen esimerkki
ResponseStatus rs = e32ttl.sendFixedMessage (0, 0, 0x17, & messaggione, sizeof (Messaggione)); // ResponseStatus rs = e32ttl.sendFixedMessage (0, 0, 0x17, "Ciao");
Kiinteässä lähetyksessä on enemmän skenaarioita
Jos lähetät tietylle laitteelle (toinen skenaario Kiinteä lähetys), sinun on lisättävä ADDL, ADDH ja CHAN sen tunnistamiseksi suoraan.
ResponseStatus rs = e32ttl.sendFixedMessage (2, 2, 0x17, "Viesti laitteelle");
Jos haluat lähettää viestin kaikille tietyn kanavan laitteille, voit käyttää tätä menetelmää.
ResponseStatus rs = e32ttl.sendBroadcastFixedMessage (0x17, "Viesti kanavan laitteille");
Jos haluat vastaanottaa kaikki verkon yleislähetysviestit, sinun on asetettava ADDH- ja ADDL -asetukseksi BROADCAST_ADDRESS.
ResponseStructContainer c; c = e32ttl100.getConfiguration (); // On tärkeää saada määritysosoitin ennen kaikkia muita toimintoja Configuration configuration = *(Configuration *) c.data; Serial.println (c.status.getResponseDescription ()); Serial.println (c.status.code); printParameters (kokoonpano); configuration. ADDL = BROADCAST_ADDRESS; configuration. ADDH = BROADCAST_ADDRESS; // Määritä kokoonpano muuttunut ja aseta olemaan pitämättä kokoonpanoa ResponseStatus rs = e32ttl100.setConfiguration (kokoonpano, WRITE_CFG_PWR_DWN_LOSE); Serial.println (rs.getResponseDescription ()); Serial.println (rs.code); printParameters (kokoonpano);
Vaihe 15: Kiitos
Nyt sinulla on kaikki tiedot työn tekemiseen, mutta mielestäni on tärkeää näyttää realistisia esimerkkejä kaikkien mahdollisuuksien ymmärtämiseksi paremmin.
- LoRa E32 -laite Arduinolle, esp32 tai esp8266: asetukset ja peruskäyttö
- LoRa E32 -laite Arduinolle, esp32 tai esp8266: kirjasto
- LoRa E32 -laite Arduinolle, esp32 tai esp8266: kokoonpano
- LoRa E32 -laite Arduinolle, esp32 tai esp8266: kiinteä lähetys
- LoRa E32 -laite Arduinolle, esp32 tai esp8266: virransäästö ja strukturoidun datan lähettäminen
Suositeltava:
Langaton salattu tiedonsiirto Arduino: 5 vaihetta
Langaton salattu tiedonsiirto Arduino: Hei kaikille, Tässä toisessa artikkelissa kerron teille, kuinka käyttää Atecc608a -sirua langattoman viestinnän suojaamiseen. Tätä varten käytän NRF24L01+ -laitetta langattomassa osassa ja Arduino UNO: ssa. Mikrosiru ATECC608A on suunnitellut
Pitkä kantama, 1,8 km, Arduino-Arduino Langaton tiedonsiirto HC-12: n kanssa: 6 vaihetta (kuvilla)
Pitkä kantama, 1,8 km, Arduino-Arduino Langaton tiedonsiirto HC-12: n avulla: Tässä ohjeessa opit kommunikoimaan Arduinojen välillä pitkän matkan, jopa 1,8 km: n päässä ulkona. HC-12 on langaton sarjaportti viestintämoduuli, joka on erittäin hyödyllinen, erittäin tehokas ja helppokäyttöinen. Ensin otat
Langaton tiedonsiirto NRF24L01 -lähetinvastaanotinmoduulilla Arduino -pohjaisiin projekteihin: 5 vaihetta (kuvilla)
Langaton tiedonsiirto NRF24L01-lähetinvastaanotinmoduulin avulla Arduino-pohjaisiin projekteihin: Tämä on toinen opettavainen opetusohjelmani roboteista ja mikro-ohjaimista. On todella hämmästyttävää nähdä robotin elossa ja toimivan odotetusti, ja usko minua, että on hauskempaa, jos ohjaat robottiasi tai muita asioita langattomasti nopealla ja
E32-433T LoRa-moduulin opetusohjelma - DIY Breakout Board E32 -moduulille: 6 vaihetta
E32-433T LoRa-moduulin opetusohjelma | DIY Breakout Board E32 -moduulille: Hei, mitä kuuluu, kaverit! Akarsh täältä CETechiltä.Tämä projektini on enemmän oppimiskäyrä ymmärtämään eByten E32 LoRa -moduulin toimintaa, joka on suuritehoinen 1 watin lähetinvastaanotinmoduuli. Kun ymmärrämme työn, minulla on suunnittelu
Langaton tiedonsiirto käyttämällä halpoja 433 MHz: n RF -moduuleja ja Pic -mikro -ohjaimia. Osa 2: 4 vaihetta (kuvilla)
Langaton tiedonsiirto käyttämällä halpoja 433 MHz: n RF -moduuleja ja Pic -mikro -ohjaimia. Osa 2: Tämän ohjeen ensimmäisessä osassa esittelin kuinka ohjelmoida PIC12F1822 käyttämällä MPLAB IDE- ja XC8 -kääntäjää yksinkertaisen merkkijonon lähettämiseksi langattomasti käyttämällä halpoja TX/RX 433MHz -moduuleja. kaapelimainos