• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Jak zasilić moduł GSM SIM800L V2
#41
Zająłem się na razie samym projektem, bo czekam na moduł. I mam takie pytanie: czy jest możliwość podpięcia do jednego UNO zarówno modułu GSM jak i NodeMCU? Z tego co czytałem, SoftwareSerial obsłuży jednocześnie tylko jedno urządzenie.

Czy mógłbym w takim przypadku np. do nodeMCU użyć SoftwareSerial a do GSM sprzętowego RX TX?

EDIT: teraz widzę, że jest taka biblioteka jak NewSoftwareSerial i pozwala na użycie wielu urządzeń po takiej transmisji pod warunkiem, że w danym momencie będzie używane tylko jedno.

Ale czy nie lepiej skorzystać ze sprzętowego RX TX? I czy w ogóle jest taka możlwość?
 
Odpowiedź
#42
Możliwość zawsze jest, a nawet pod jedno sprzętowe rs podłączyć dwa urządzenia i więcej...
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#43
Cóż i można i nie można podłączyć.

Dam prosty przykład:
jeśli mówi do ciebie 5 osób, z czego 4 nie mówią nic co byś chciał słyszeć to czy umiesz słuchać tylko jednej osoby ?
Jeśli tak, to możesz tego nauczyć i atmegę Smile
 
Odpowiedź
#44
Aktualnie uruchomiłem komunikację pomiędzy UNO, a NodeMCU. Wysyłane z UNO informacje są typu float. Na NodeMCU, kiedy ustawiłem taki sam typ, to były odczytywane zupełnie inne wartości w porównaniu do tych wysyłanych. Ponadto, zamiast jednej porcji danych co sekundę, były wysyłane 4. Dopiero ustawienie typu danych na NodeMCU na char (to już dla mnie w ogóle nieprawdopodobne, że coś takiego zadziałało, skoro char to typ znakowy) NodeMCU zaczął odbierać prawidłowe wartości pojedynczo.

I teraz tak: w założeniu, że nie będę potrzebował, aby i moduł GSM i NodeMCU pracowały równocześnie z UNO, to czy wtedy przy pomocy tej bliblioteki NewSoftSerial powinno się to udać? W takim sensie jak np: najpierw wysyłam dane na ESP, potem ustawiam jako aktywne Serial ten od GSM i wtedy wysyłam/odbieram SMS.
 
Odpowiedź
#45
Wtrącę się co do programowego UARTa.
Jeżeli Ty decydujesz, kiedy chcesz rozmawiać z poszczególnymi "peryferiami" to bez problemu można to zrobić przy pomocy UARTa programowego. Wystarczy przed rozpoczęciem "rozmowy" napisać komendę uruchamiającą konkretny UART. Ja tak zrobiłem w stacji pogody do 2 czujników smogu i zdalnego wyświetlacza. Są 3 UARTy programowe.
Nazwałem je S1, S2 i S3.
Tu fragment kodu z deklaracji pinów i deklaracji UARTów.
#define TxS1 A0
#define RxS1 A1
#define TxS2 3
#define RxS2 4
#define TxS3 A2
#define RxS3 A3
#include <SoftwareSerial.h>
SoftwareSerial S1(RxS1, TxS1);//Serial nazywa się S1 RX, TX UART do PMz
SoftwareSerial S2(RxS2, TxS2);//Serial nazywa się S2 RX, TX UART do SLAWE
SoftwareSerial S3(RxS3, TxS3);//Serial nazywa się S3 RX, TX Uart do PMw

Przed rozpoczęciem "rozmowy" z S1 wydaję komendę S1.begin (9600); przed S2 komendę S2.begin (9600); i przed S3 komendę S3.begin (9600);
Komendy są wydawane w pętli loop a nie jak tradycyjnie w setup.
Wcześniej robiłem takie rozwiązanie na przełącznikach tranzystorowych wykorzystując jeden UART sprzętowy. Teraz zrezygnowałem jak "odkryłem", że można inaczej. Ponadto przy wykorzystaniu UARTa sprzętowego występowały kolizje podczas wgrywania programu do Arduino uno.
To tyle w tej kwestii.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości