Mündəricat:
- Təchizat
- Addım 1: Kitabxana
- Addım 2: Pinout
- Addım 3: AUX Pin
- Addım 4: Tam Bağlı Schema Esp8266
- Addım 5: Tamamilə Bağlı Schema Arduino
- Addım 6: Kitabxana: Konstruktor
- Addım 7: Başlayın
- Addım 8: Konfiqurasiya və Məlumat Metodu
- Addım 9: Cavab Konteyner
- Addım 10: Əsas Konfiqurasiya Seçimi
- Addım 11: Mesaj Alın
- Addım 12: Normal ötürmə rejimi
- Addım 13: Quruluşu idarə edin
- Addım 14: Normal Mod əvəzinə Sabit Rejim
- Addım 15: Təşəkkürlər
Video: Arduino, Esp8266 və ya Esp32 üçün aşağı qiymətli E32 (sx1278/sx1276) cihazı ilə LoRa 3Km -dən 8Km -ə qədər Simsiz Əlaqə: 15 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Çox güclü, sadə və ucuz bir cihaz olan LoRa cihazının Semtech seriyasına əsaslanan EBYTE E32 idarə etmək üçün bir kitabxana yaradıram.
3km versiyasını burada, 8km versiyasını burada tapa bilərsiniz
3000 m -dən 8000 m -ə qədər məsafədə işləyə bilərlər və bir çox xüsusiyyətə və parametrə malikdirlər. İstifadəni asanlaşdırmaq üçün bu kitabxananı yaradıram.
Metropoliten sensorlarından məlumat almaq və ya dronu idarə etmək üçün bir həlldir.
Təchizat
Arduino UNO
Wemos D1 mini
LoRa E32 TTL 100 3km versiyası
LoRa E32 TTL 1W 8Km versiyası
Addım 1: Kitabxana
Kitabxanamı burada tapa bilərsiniz.
Yükləmək üçün.
Sağ üst köşedeki YÜKLƏMƏ düyməsini basın, sıxılmamış qovluğun adını LoRa_E32 adlandırın.
LoRa_E32 qovluğunda LoRa_E32.cpp və LoRa_E32.h olduğunu yoxlayın.
LoRa_E32 kitabxana qovluğunu / libraries / qovluğunuza yerləşdirin. İlk kitabxananız varsa, kitabxanalar alt qovluğunu yaratmağınız lazım ola bilər.
IDE -ni yenidən başladın.
Addım 2: Pinout
Gördüyünüz kimi, M0 və M1 sancaqlar vasitəsilə müxtəlif rejimlər qura bilərsiniz.
Statik bir şəkildə istifadə edilə bilən bəzi pinlər var, ancaq onu mikro nəzarətçiyə bağlasanız və kitabxanada konfiqurasiya etsəniz, performans qazanırsınız və proqram vasitəsilə bütün rejimi idarə edə bilərsiniz, amma bundan sonra daha yaxşı izah edəcəyik.
Addım 3: AUX Pin
Artıq dediyim kimi, bütün pinləri mikrodenetleyicinin çıxışına bağlamağın əhəmiyyəti yoxdur, M0 və M1 sancaqlarını YÜKSƏLİ və ya YÜKSƏK olaraq təyin edə bilərsiniz və AUX -ə qoşulmasanız, kitabxana əmin olmaq üçün ağlabatan bir gecikmə təyin edir. əməliyyatın tamamlandığını.
AUX pin
Məlumat ötürülməsi zamanı xarici MCU -nu oyatmaq və məlumat ötürülməsi bitdikdə YÜKSƏK qaytarmaq üçün istifadə edilə bilər.
AUX aldıqda LOW gedir və tampon boş olduqda YÜKSƏ qaytarılır.
Normal işini bərpa etmək üçün özünü yoxlamaq üçün də istifadə olunur (açma və yuxu/proqram rejimində).
Addım 4: Tam Bağlı Schema Esp8266
esp8266 əlaqə sxemi daha sadədir, çünki eyni məntiqi rabitə gərginliyində işləyir (3.3v).
Yaxşı bir sabitlik əldə etmək üçün çəkmə rezistoru (4, 7Kohm) əlavə etmək vacibdir.
Addım 5: Tamamilə Bağlı Schema Arduino
Arduino iş gərginliyi 5v -dir, buna görə də zədələnməməsi üçün LoRa modulunun RX pin M0 və M1 -ə bir gərginlik bölücü əlavə etməliyik, burada daha çox məlumat əldə edə bilərsiniz Gərginlik bölücü: kalkulyator və tətbiq.
RX -də birləşdirməkdənsə siqnaldan GND və 1Kohm üçün 2Kohm rezistor istifadə edə bilərsiniz.
Addım 6: Kitabxana: Konstruktor
Çox sayda konstruktor hazırladım, çünki idarə etmək üçün daha çox seçimimiz və vəziyyətimiz ola bilər.
LoRa_E32 (bayt rxPin, bayt txPin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
LoRa_E32 (bayt rxPin, bayt txPin, bayt auxPin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600); LoRa_E32 (bayt rxPin, bayt txPin, bayt auxPin, bayt m0Pin, bayt m1Pin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
İlk konstruktor dəsti, Serial və digər pinlərin idarə edilməsini kitabxanaya həvalə etmək üçün yaradılır.
rxPin və txPin UART -a qoşulmaq üçün pindir və məcburidir.
auxPin, əməliyyatı, ötürülmə və qəbul vəziyyətini yoxlayan bir pindir (bundan sonra daha yaxşı izah edəcəyik), bu pin Məcburi deyil, bunu təyin etməsəniz, əməliyyatın özünü tamamlamasına icazə vermək üçün gecikmə tətbiq edirəm (gecikmə ilə).
m0pin və m1Pin, MODE rejimini dəyişdirmək üçün pinlərdir (yuxarıdakı cədvələ baxın), "istehsalda" bu pinlərin birbaşa YÜKSƏK və ya DÜŞÜK bağlanacağını düşünürəm, amma test üçün kitabxana tərəfindən idarə olunmaq üçün faydalıdır.
bpsRate, SoftwareSerial -ın boudrateidir normal olaraq 9600 (proqramçı/yuxu rejimində yeganə baud dərəcəsi)
Sadə bir nümunədir
#"LoRa_E32.h" daxil et LoRa_E32 e32ttl100 (2, 3); // RX, TX // LoRa_E32 e32ttl100 (2, 3, 5, 6, 7); // RX, TX
Başqa bir konstruktorla birbaşa bir SoftwareSerial istifadə edə bilərik
LoRa_E32 (HardwareSerial* serial, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
LoRa_E32 (HardwareSerial* serial, bayt auxPin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
LoRa_E32 (HardwareSerial* serial, bayt auxPin, bayt m0Pin, bayt m1Pin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
Bu konstruktorun yuxarıdakı nümunəsi belə edilə bilər.
#daxil et "daxil et" LoRa_E32.h"
SoftwareSerial mySerial (2, 3); // RX, TX
LoRa_E32 e32ttl100 (& mySerial);
// LoRa_E32 e32ttl100 (& mySerial, 5, 7, 6);
Son konstruktor dəsti, SoftwareSerial yerinə HardwareSerialdan istifadə etməyə icazə verməkdir.
LoRa_E32 (SoftwareSerial* serial, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
LoRa_E32 (SoftwareSerial* serial, bayt auxPin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
LoRa_E32 (SoftwareSerial* serial, bayt auxPin, bayt m0Pin, bayt m1Pin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
Addım 7: Başlayın
Başlat əmri giriş və çıxış rejimində Seri və pinləri işə salmaq üçün istifadə olunur.
void start ();
icradadır
// Bütün pinləri və UART -ı işə salın
e32ttl100.begin ();
Addım 8: Konfiqurasiya və Məlumat Metodu
Konfiqurasiyanı idarə etmək və cihaz haqqında məlumat əldə etmək üçün bir çox üsul var.
ResponseStructContainer getConfiguration ();
ResponseStatus setConfiguration (Konfiqurasiya konfiqurasiyası, PROGRAM_COMMAND saveType = WRITE_CFG_PWR_DWN_LOSE);
ResponseStructContainer getModuleInformation ();
void printParameters (struct Konfiqurasiya konfiqurasiyası);
ResponseStatus resetModule ();
Addım 9: Cavab Konteyner
Cavab idarəetməsini asanlaşdırmaq üçün səhvləri idarə etmək və ümumi məlumatları qaytarmaq üçün çox faydalı bir konteyner yaradıram.
Response Status
Bu status konteyneridir və 2 sadə giriş nöqtəsinə malikdir, bununla status kodunu və status kodunun təsvirini əldə edə bilərsiniz
Serial.println (c.getResponseDescription ()); // Kodun təsviri
Serial.println (c. kodu); Uğurlu olarsa // 1
Kod var
Uğur = 1, ERR_NAMAN, 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
Bu konteyner String cavabını idarə etmək və 2 giriş nöqtəsinə sahib olmaq üçün yaradılmışdır.
simli məlumatlar RepsonseStatusun bir nümunəsi olan mesajdan və statusdan qaytarılır.
ResponseContainer rs = e32ttl.receiveMessage ();
String mesajı = rs.data;
Serial.println (rs.status.getResponseDescription ());
Serial.println (mesaj);
ResponseStructContainer
Bu daha "mürəkkəb" konteynerdir, bunu quruluşu idarə etmək üçün istifadə edirəm, eyni ResponseContainer giriş nöqtəsinə malikdir, lakin məlumatlar kompleks quruluşu idarə etmək üçün boş bir göstəricidir.
ResponseStructContainer c;
c = e32ttl100.getConfiguration (); // Bütün digər əməliyyatlardan əvvəl konfiqurasiya göstəricisi əldə etmək vacibdir
Konfiqurasiya konfiqurasiyası = *(Konfiqurasiya *) c.data;
Serial.println (c.status.getResponseDescription ());
Serial.println (c.status.code);
getConfiguration və setConfiguration
Birinci üsul getConfigurationdır, cihazda saxlanan bütün məlumatları geri qaytarmaq üçün istifadə edə bilərsiniz.
ResponseStructContainer getConfiguration ();
Burada bir istifadə nümunəsi.
ResponseStructContainer c;
c = e32ttl100.getConfiguration (); // Bütün digər əməliyyatlardan əvvəl konfiqurasiya göstəricisi əldə etmək vacibdir
Konfiqurasiya konfiqurasiyası = *(Konfiqurasiya *) c.data;
Serial.println (c.status.getResponseDescription ());
Serial.println (c.status.code);
Serial.println (configuration. SPED.getUARTBaudRate ());
Konfiqurasiya quruluşunda bütün parametrlər məlumatları var və tək məlumatların bütün təsvirini almaq üçün bir sıra funksiyalar əlavə edirəm.
konfiqurasiya. ADDL = 0x0; // Adres konfiqurasiyasının birinci hissəsi. ADDH = 0x1; // Ünvan konfiqurasiyasının ikinci hissəsi. CHAN = 0x19; // Kanal konfiqurasiyası. OPTION.fec = FEC_0_OFF; // İrəli xəta düzəliş açarı konfiqurasiyası. OPTION.fixedTransmission = FT_TRANSPARENT_TRANSMISSION; // Transmissiya rejimi konfiqurasiyası. OPTION.ioDriveMode = IO_D_MODE_PUSH_PULLS_PULL_UPS; // Pull-up idarəetmə konfiqurasiyası. OPTION.transmissionPower = POWER_17; // dBm ötürmə gücü konfiqurasiyası. OPTION.wirelessWakeupTime = WAKE_UP_1250; // Uyanma konfiqurasiyasını gözləyin. SPED.airDataRate = AIR_DATA_RATE_011_48; // Hava məlumatı dərəcəsi konfiqurasiyası. SPED.uartBaudRate = UART_BPS_115200; // Rabitə ötürmə dərəcəsi konfiqurasiyası. SPED.uartParity = MODE_00_8N1; // Parite bit
Bütün təsviri əldə etmək üçün bütün atributlar üçün eyni funksiyaya sahibsiniz:
Serial.print (F ("Chan:")); Serial.print (konfiqurasiya. 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 (konfiqurasiya. OPTION.fixedTransmission, BIN); Serial.print (" ->"); Serial.println (configuration. OPTION.getFixedTransmissionDescription ()); Serial.print (F ("OptionPullup:")); Serial.print (konfiqurasiya. OPTION.ioDriveMode, BIN); Serial.print (" ->"); Serial.println (configuration. OPTION.getIODroveModeDescription ()); Serial.print (F ("OptionWakeup:")); Serial.print (konfiqurasiya. OPTION.wirelessWakeupTime, BIN); Serial.print (" ->"); Serial.println (configuration. OPTION.getWirelessWakeUPTimeDescription ()); Serial.print (F ("OptionFEC:")); Serial.print (konfiqurasiya. OPTION.fec, BIN); Serial.print (" ->"); Serial.println (konfiqurasiya. OPTION.getFECDescription ()); Serial.print (F ("OptionPower:")); Serial.print (konfiqurasiya. OPTION.transmissionPower, BIN); Serial.print (" ->"); Serial.println (configuration. OPTION.getTransmissionPowerDescription ());
Eyni şəkildə setConfiguration bir konfiqurasiya quruluşu istəyir, buna görə də konfiqurasiyanı idarə etməyin ən yaxşı yolu, mövcud olanı əldə etmək, lazım olan yeganə dəyişikliyi tətbiq etmək və yenidən qurmaqdır.
ResponseStatus setConfiguration (Konfiqurasiya konfiqurasiyası, PROGRAM_COMMAND saveType = WRITE_CFG_PWR_DWN_LOSE);
konfiqurasiya əvvəlcədən qurulmuş şou, saveType dəyişiklik yalnız cari sessiya üçün daimi olarsa seçim etməyinizə icazə verir.
ResponseStructContainer c; c = e32ttl100.getConfiguration (); // Bütün digər əməliyyatlardan əvvəl konfiqurasiya göstəricisi əldə etmək vacibdir Konfiqurasiya konfiqurasiyası = *(Konfiqurasiya *) c.data; Serial.println (c.status.getResponseDescription ()); Serial.println (c.status.code); printParameters (konfiqurasiya); konfiqurasiya. ADDL = 0x0; konfiqurasiya. ADDH = 0x1; konfiqurasiya. CHAN = 0x19; konfiqurasiya. OPTION.fec = FEC_0_OFF; konfiqurasiya. OPTION.fixedTransmission = FT_TRANSPARENT_TRANSMISSION; konfiqurasiya. OPTION.ioDriveMode = IO_D_MODE_PUSH_PULLS_PULL_UPS; konfiqurasiya. OPTION.transmissionPower = POWER_17; konfiqurasiya. OPTION.wirelessWakeupTime = WAKE_UP_1250; konfiqurasiya. SPED.airDataRate = AIR_DATA_RATE_011_48; konfiqurasiya. SPED.uartBaudRate = UART_BPS_115200; konfiqurasiya. SPED.uartParity = MODE_00_8N1; // Konfiqurasiya dəyişdirildi və ResponseStatus rs = e32ttl100.setConfiguration (konfiqurasiya, WRITE_CFG_PWR_DWN_LOSE) konfiqurasiyasını saxlamamaq üçün təyin edin; Serial.println (rs.getResponseDescription ()); Serial.println (rs.code); printParameters (konfiqurasiya);
Parametrlərin hamısı sabit olaraq idarə olunur:
Addım 10: Əsas Konfiqurasiya Seçimi
Addım 11: Mesaj Alın
Əvvəlcə bir şeyin qəbul tamponunda olub olmadığını yoxlamaq üçün sadə, lakin faydalı bir üsul təqdim etməliyik
int available ();
Mövcud axında neçə baytınız olduğunu qaytarmaq kifayətdir.
Addım 12: Normal ötürmə rejimi
Normal/Şəffaf ötürmə rejimi eyni ünvana və kanala malik bütün cihazlara mesaj göndərmək üçün istifadə olunur.
Mesaj göndərmək/almaq üçün bir çox üsul var, ətraflı izah edəcəyik:
ResponseStatus sendMessage (const String mesajı);
ResponseContainer receiveMessage ();
Birinci üsul sendMessage və Normal rejimdə bir cihaza String göndərmək üçün istifadə olunur.
ResponseStatus rs = e32ttl.sendMessage ("Prova"); Serial.println (rs.getResponseDescription ());
Digər cihaz sadəcə döngədə edir
əgər (e32ttl.available ()> 1) {ResponseContainer rs = e32ttl.receiveMessage (); String mesajı = rs.data; // Əvvəlcə Serial.println (rs.status.getResponseDescription ()) məlumatlarını əldə edin; Serial.println (mesaj); }
Addım 13: Quruluşu idarə edin
Mürəkkəb bir quruluş göndərmək istəyirsinizsə, bu üsuldan istifadə edə bilərsiniz
ResponseStatus sendMessage (const void *mesajı, const uint8_t ölçüsü); ResponseStructContainer receiveMessage (const uint8_t ölçüsü);
Struktur göndərmək üçün istifadə olunur, məsələn:
struktur Messaggione {char növü [5]; char mesajı [8]; bool mitico; }; struktur Messaggione messaggione = {"TEMP", "Peple", doğru}; ResponseStatus rs = e32ttl.sendMessage (& messaggione, sizeof (Messaggione)); Serial.println (rs.getResponseDescription ());
və digər tərəfdən mesajı belə ala bilərsiniz
ResponseStructContainer rsc = e32ttl.receiveMessage (sizeof (Messaggione)); struct Messaggione messaggione = *(Messaggione *) rsc.data; Serial.println (messaggione.message); Serial.println (messaggione.mitico);
Qismən quruluşu oxuyun
Daha çox quruluş növünü idarə etmək üçün mesajın birinci hissəsini oxumaq istəyirsinizsə, bu üsuldan istifadə edə bilərsiniz.
ResponseContainer receiveInitialMessage (const uint8_t ölçüsü);
Yüklənəcək quruluşu müəyyən etmək üçün növü və ya başqa bir simli almaq üçün yaradıram.
struktag Messaggione {// Yazı maşını mesajı olmayan qismən struktur [8]; bool mitico; }; char növü [5]; // ResponseContainer strukturunun birinci hissəsi rs = e32ttl.receiveInitialMessage (sizeof (tip)); // simli bir char massivinə qoyun (lazım deyil) memcpy (type, rs.data.c_str (), sizeof (type)); Serial.println ("TİPİ OKU:"); Serial.println (rs.status.getResponseDescription ()); Serial.println (növ); // ResponseStructContainer -in qalan hissəsini oxuyun rsc = e32ttl.receiveMessage (sizeof (Messaggione))); struktur Messaggione messaggione = *(Messaggione *) rsc.data;
Addım 14: Normal Mod əvəzinə Sabit Rejim
Eyni şəkildə sabit ötürmə ilə istifadə etmək üçün bir sıra metodlar yaradıram
Sabit ötürmə
Yalnız göndərmə metodunu dəyişdirməlisiniz, çünki təyinat cihazı sabit rejimdə Ünvan və Kanal ilə preambula almır.
Beləliklə, String mesajınız üçün
ResponseStatus sendFixedMessage (bayt ADDL, bayt ADDH, bayt CHAN, const String mesajı); ResponseStatus sendBroadcastFixedMessage (bayt CHAN, const String mesajı);
və quruluşunuz üçün
ResponseStatus sendFixedMessage (bayt ADDL, bayt ADDH, bayt CHAN, const void *mesajı, const uint8_t ölçüsü); ResponseStatus sendBroadcastFixedMessage (bayt CHAN, const void *mesajı, const uint8_t ölçüsü);
Burada sadə bir nümunə
ResponseStatus rs = e32ttl.sendFixedMessage (0, 0, 0x17, & messaggione, sizeof (Messaggione))); // ResponseStatus rs = e32ttl.sendFixedMessage (0, 0, 0x17, "Ciao");
Sabit ötürmənin daha çox ssenarisi var
Müəyyən bir cihaza (ikinci ssenarilər Sabit ötürülmə) göndərirsinizsə, birbaşa müəyyən etmək üçün ADDL, ADDH və CHAN əlavə etməlisiniz.
ResponseStatus rs = e32ttl.sendFixedMessage (2, 2, 0x17, "Bir cihaza mesaj");
İstənilən kanalda bütün cihazlara mesaj göndərmək istəyirsinizsə, bu üsuldan istifadə edə bilərsiniz.
ResponseStatus rs = e32ttl.sendBroadcastFixedMessage (0x17, "Bir kanalın cihazlarına mesaj");
Şəbəkədəki bütün yayım mesajlarını almaq istəyirsinizsə, ADDH və ADDL -ni BROADCAST_ADDRESS ilə təyin etməlisiniz.
ResponseStructContainer c; c = e32ttl100.getConfiguration (); // Bütün digər əməliyyatlardan əvvəl konfiqurasiya göstəricisi əldə etmək vacibdir Konfiqurasiya konfiqurasiyası = *(Konfiqurasiya *) c.data; Serial.println (c.status.getResponseDescription ()); Serial.println (c.status.code); printParameters (konfiqurasiya); konfiqurasiya. ADDL = BROADCAST_ADDRESS; konfiqurasiya. ADDH = BROADCAST_ADDRESS; // Konfiqurasiya dəyişdirildi və ResponseStatus rs = e32ttl100.setConfiguration (konfiqurasiya, WRITE_CFG_PWR_DWN_LOSE) konfiqurasiyasını saxlamamaq üçün təyin edin; Serial.println (rs.getResponseDescription ()); Serial.println (rs.code); printParameters (konfiqurasiya);
Addım 15: Təşəkkürlər
İndi işinizi görmək üçün bütün məlumatlarınız var, amma düşünürəm ki, bütün ehtimalları daha yaxşı başa düşmək üçün bəzi real nümunələr göstərmək vacibdir.
- Arduino, esp32 və ya esp8266 üçün LoRa E32 cihazı: parametrlər və əsas istifadə
- Arduino, esp32 və ya esp8266 üçün LoRa E32 cihazı: kitabxana
- Arduino, esp32 və ya esp8266 üçün LoRa E32 cihazı: konfiqurasiya
- Arduino, esp32 və ya esp8266 üçün LoRa E32 cihazı: sabit ötürücü
- Arduino, esp32 və ya esp8266 üçün LoRa E32 cihazı: enerjiyə qənaət və strukturlaşdırılmış məlumatların göndərilməsi
Tövsiyə:
Aşağı Qiymətli EKQ Cihazı Necə Qurulur: 26 Addım
Aşağı Qiymətli EKQ Cihazı Necə Qurulur: Hamıya Salam! Adım Mariano və mən biotibbi mühəndisiyəm. Bir neçə həftə sonu Bluetooth vasitəsilə bir Android cihazına (smartfon və ya tablet) qoşulmuş Arduino lövhəsinə əsaslanan aşağı qiymətli EKQ cihazının prototipini hazırlamaq və həyata keçirmək üçün keçirdim. Mən istərdim ki
ARUPI - Soundscape Ekoloqları üçün Aşağı Qiymətli Avtomatlaşdırılmış Qeyd Bölməsi/Avtonom Qeyd Bölməsi (ARU): 8 Addım (Şəkillərlə)
ARUPI - Soundscape Ekoloqları üçün Aşağı Qiymətli Avtomatlaşdırılmış Qeyd Bölməsi/Avtonom Qeyd Bölməsi (ARU): Bu təlimat Anthony Turner tərəfindən yazılmışdır. Layihə, Kent Universiteti Kompüter Məktəbindəki Sheddən çox kömək alaraq hazırlanmışdır (cənab Daniel Knox böyük bir kömək oldu!)
Uzun Mesafe, 1.8km, Arduino-dan Arduino ilə HC-12 ilə Simsiz Əlaqə: 6 Addım (Şəkillərlə)
Uzun məsafə, 1.8km, Arduino-dan Arduino-ya HC-12 ilə Simsiz Əlaqə: Bu təlimatda Arduinos arasında 1.8km-ə qədər açıq havada necə ünsiyyət qurmağı öyrənəcəksiniz. HC-12 simsiz serial portudur. çox faydalı, son dərəcə güclü və istifadəsi asan olan ünsiyyət modulu. Əvvəlcə sızlayacaqsınız
E32-433T LoRa Modulu Dərsliyi - E32 Modulu üçün DIY Breakout Board: 6 addım
E32-433T LoRa Modulu Dərsliyi | E32 Modulu üçün DIY Breakout Board: Hey, nə var, uşaqlar! Akarsh burada CETech-dən. Mənim bu layihəm, yüksək gücə malik 1 vatlıq ötürücü modulu olan eByte-dən E32 LoRa modulunun işini başa düşmək üçün daha çox öyrənmə əyrisidir. İşi başa düşdükdən sonra dizaynım var
Lehim Yenidən İşləmək üçün Aşağı Qiymətli Dövrə Kartı Ön İstilik İş İstasyonu: 12 Addım
Lehim Yenidən İşləmək üçün Aşağı Qiymətli Dövrə Kartı Ön İstilik İş İstasyonu: Dövrə lövhəsi əvvəlcədən isidilən iş stansiyaları çox bahalıdır, $ 350.00-$ 2500.00. Bu təlimatın məqsədi, heç bir xüsusi alət olmadan və əksər materiallardan istifadə etmədən 50,00 dollar civarında bir dövrə lövhəsi əvvəlcədən istiləşmə iş stansiyasının necə qurulacağını göstərməkdir