• 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
Pierwszy kod, weryfikacja poprawności?
#5
To jest nano atmega328p z tego co kojarzę.

Karta jest bez pin, nóżka resetu jest podpięta do arduino, układ resetuje się z arduino bez problemu. sim800l się nie usypia, arduino to samo, ale udało mi się ograniczyć pobór do 30mA. Zasilanie na nano jest podane poprzez vin, ale błędnie bo 5v niestety musiałem to ograniczyć bo przy 7809 było 5mA więcej, na 7805 działa stabilnie, jeżeli będzie problem wystarczy, że wypnę i wsadzę inny.

Przy odłączonym termometrze otrzymuję wiadomość -273st
Przy zwarciu magistrali z masą otrzymuję też -273st.
D18b20 jest podłączony jako poprzez 2 przewody zgodnie ze sztuką.
Jak program się załaduje to dostaję smsy za każdym razem. Jedna sytuacja jaką zauważyłem przy podpiętej konsoli, jak odpaliłem układ i nie załadował się do końca to "err cmfg" po wysłaniu smsm o załączenie przekaźnika, odpowiedzi nie otrzymałem. Jednak nie wiem na ile był to problem z załadowaniem czy coś w kodzie za dużo zoptymalizowałem, inne smsy poszły wtedy bez problemu. Będę to jeszcze weryfikował. Jeszcze jeden scenariusz muszę przetestować to brak sieci w danym momencie, nie wiem jak zachowa się układ, musiałbym dodać jakiegoś watchdoga.

Tak faktycznie teraz na szybko wyszukałem czy gdzieś jest w kodzie zmienna float i faktycznie nie ma, chodziło o sytuacje jak na początku testowałem czujnik ds18b20 na konsoli, korzystałem tam z funkcji float i na serialu wszystko działało, jednak przy sms nie. Zacząłem wtedy szukać, czytać i najpierw zmieniłem na int, temp dalej czytało, ale sms nie był wysyłany i znalazłem gdzieś, że ktoś miał podobny problem zastosowałem takie rozwiązanie i bingo zadziałało

//Tempertatura odczyt

if (lastLine.indexOf("temperatura") >= 0) {
int temperature = sensors.readTemperature(address);
Serial.println(temperature);
char buffer[10]; // adjust size to suit
itoa(temperature, buffer, 10);
//Serial.println(F(" 'C"));
// Wysyła sms z temperatura
gprs.sendSMS (buffNumber, buffer);
sensors.request(address);
}

Problem pojawi się jak będę chciał odczytać dokładne napięcie 12v z akumulatora i będę musiał użyć zmiennej float do tego a potem jakoś odczytać smsa, który jak widać z biblioteki gprs / gprs.h obsługuje wysyłkę tego jako char. Nie znam się jeszcze na tyle, żeby to przerobić. Sam fakt ogarnięcia czujnika temp zajął mi 3h, próbowałem na różne sposoby, ale nic to nie dało, dopiero poszukałem w innym sposób rozwiązania i powyższe zadziałało od strzała.
 
Odpowiedź
  


Wiadomości w tym wątku
Pierwszy kod, weryfikacja poprawności? - przez nowy - 03-01-2020, 20:03
RE: Pierwszy kod, weryfikacja poprawności? - przez nowy - 03-01-2020, 22:31

Skocz do:


Przeglądający: 1 gości