logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATmega32][C]Stacja meteorologiczna - inż.

lastsith 19 Lis 2011 11:40 5357 14
  • #1 10155732
    lastsith
    Poziom 10  
    Witam, będę pisać prace inżynierską na temat stacji meteorologicznej z komunikacją przez GSM.

    Póki co posiadam zestaw uruchomieniowy EvB 4.3 V3 z ATmega32, który już wcześniej wykorzystywałem do małego projektu w assemblerze. Pracę mam zamiar pisać w C. I w związku z tym mam parę pytań.

    1. Co prawda można programować przez tą płytkę ale jest to mało wygodne, chciałem kupić programator, i trafiłem o informacje o debugerach JTAG, chciałem więc się poradzić czy kupić AVR Dragon czy może zwykłego JTAG ICE. Skłaniam się ku Dragonowi, lecz słyszałem ze trzeba go odpowiednio zabezpieczyć przed pracą, co raczej mnie nie cieszy, chętnie usłyszę jakieś propozycje.

    2. Jaki moduł GSM wybrać? Upatrzyłem sobie chyba dość popularny SIM900, jako że jestem informatykiem a nie elektronikiem i mam dość mało czasu, to chciałbym żeby ten moduł był umieszczony na jakiejś płytce, wraz z gniazdem antenowym i na kartę, tak żebym go od razu mógł podłączyć do mikrokontrolera. Myślałem żeby kupić tą: http://www.mikromania.pl/index.php?st=mm-gsm1&o=3 lecz wymaga ona zasilania 12V, a moją płytka testowa 9V. Płytkę z modułem mam zamiar po obronie pracy wykorzystać w dialerze do alarmu w domu.

    3. Możecie mi polecić jakieś czujniki cyfrowe wilgotności i ciśnienia (tylko nie SMD), w cenie która nie przekraczała by zbytnio 100zł za sztukę?

    4. Posiadam dwie książki "Język C dla mikrokontrolerów AVR" Tomasza Francuza i "Mikrokontrolery AVR w praktyce" Jarosława Dolińskiego, oprócz tego książkę AVR i ARM7 która nie przypadła mi do gustu, czy polecacie jeszcze jakaś literaturę która byłaby przydatna?

    5. Czy ATmega32 będzie wystarczająca? Komunikacja przez GSM obejmie tylko SMSy.

    6. Czy pisanie tego w Eclipsie to dobry wybór czy jednak lepiej użyć AVR Studio? To na pewno zależy od upodobań, więc w tym pytaniu chodzi mi głownie o to czy są jakieś problemy w Eclipse.

    Chętnie wysłucham jakichś innych propozycji na temat pracy.

    Pozdrawiam.
  • #2 10155797
    mirekk36
    Poziom 42  
    lastsith napisał:

    6. Czy pisanie tego w Eclipsie to dobry wybór czy jednak lepiej użyć AVR Studio? To na pewno zależy od upodobań, więc w tym pytaniu chodzi mi głownie o to czy są jakieś problemy w Eclipse..


    Problemy w Eclipse ? ;) właśnie odwrotnie, na dzień dzisiejszy to chyba najlepsza alternatywa w porównaniu do każdej z wersji AVR Studio i to zdecydowanie w stosunku do AVRS5 naszprycowanej babolami. Zobacz tutaj:

    http://mirekk36.blogspot.com/2011/11/dlaczego-eclipse-zamiast-avr-studio.html
  • #3 10155840
    tadzik85
    Poziom 38  
    1. Mam dragona jak za swoją cenę to bardzo dobre rozwiązanie. Tak zważywszy na to ze jest to programator bez obudowy należy uważać przy jego użytkowaniu. Do niego można dorobić zabezpieczenie ISP. Ale używam go od 2 lat bez żadnych dodatkowych rzeczy i działa wyśmienicie.
  • Pomocny post
    #4 10156483
    tmf
    VIP Zasłużony dla elektroda
    ad 1. Ja bym się skłaniał ku Dragonowi, szczególnie jeśli to nie będzie jednorazowa przygoda z AVR. Jeśli tylko potrzebujesz tą pracę zrobić i na tym kończysz to kup to co tańsze - JTAGICE, lub wręcz jakiś klon AVRISP za 30 zł. Niemniej jednak JTAG ooda ci pewnie nieocenione usługi.
    ad 2. NA SIM900 znajdziesz dużo gotowców na AVR więc pójdzie ci łatwiej.
    ad 3. Chyba wszystkie są w SMD, ale to naprawdę żaden problem polutować. Do wilgotności polecam SHT11/15/71/75, do ciśnienia BMP085 - w kamami po 40zł/. Co prawda ludzie piszą, że mają kłopoty z konwersją, ale to bajki są. Niektórzy ze wszystkim mają kłopoty :) W ASF masz gotowce do tego czujnika, więc jego obsługa to tylko kliknięcie na add drivers.
    ad 4. Mam nadzieję, że wystarczy ;)
    ad 5. ATM32 jest aż nadto :) Ale warto w nią wejść bo ma JTAG.
    ad 6. Tak naprawde Eclipse ma tylko bardziej zaawansowany edytor z bajerami. AS4/5 będzie dobrym pomysłem szczególnie jeśli będziesz korzystał z JTAG i debugowania w układzie. Jeśli będziesz korzystał z ISP to Eclipse ma wygodniejszy edytor, podobnie jak np. CodeBlocks.
    BTW, czemu stacja ma się komunikować po GSM? Jak dla mnie istotą stacji jest regularne przesyłanie odczytów i możliwość wykreślania zmian ciśnienia/temp. w czasie, co umożliwia jakieś prognozowanie.
  • #5 10204300
    djkomprez
    Poziom 21  
    lastsith napisał:
    Witam, będę pisać prace inżynierską na temat stacji meteorologicznej z komunikacją przez GSM.

    2. Jaki moduł GSM wybrać?


    Wystarczy nawet najzwyklejszy telefon (z tych starszych) np Siemens C35i
    w necie mnóśtwo opisów + polecenia AT

    Cytat:

    3. Możecie mi polecić jakieś czujniki cyfrowe wilgotności i ciśnienia (tylko nie SMD), w cenie która nie przekraczała by zbytnio 100zł za sztukę?


    Ciśnienie - MPXA4115 - ok 70zł analogowy
    Ciśnienie - HP02S - cyfrowy 20zł
    SHT11 - wilgotność+temperatura cyfrowy ok 70zł

    Cytat:

    4. Posiadam dwie książki "Język C dla mikrokontrolerów AVR" Tomasza Francuza i "Mikrokontrolery AVR w praktyce" Jarosława Dolińskiego, oprócz tego książkę AVR i ARM7 która nie przypadła mi do gustu, czy polecacie jeszcze jakaś literaturę która byłaby przydatna?


    Zależy ile posiadasz wiedzy na temat programowania. Ja CI polece dobry
    kurs z przykładami : http://hobby.abxyz.bplaced.net/index.php?pid=4&cid=1

    Cytat:

    5. Czy ATmega32 będzie wystarczająca? Komunikacja przez GSM obejmie tylko SMSy.


    TAK

    Cytat:

    6. Czy pisanie tego w Eclipsie to dobry wybór czy jednak lepiej użyć AVR Studio? To na pewno zależy od upodobań, więc w tym pytaniu chodzi mi głownie o to czy są jakieś problemy w Eclipse.


    Możesz nawet pisać w notatniku - ja CI polece Programers Notepad wbudowany
    w pakiet WINAVR

    Ogólnie jak kolega wspomiał wyżej, po co GSM ? nie lepiej postawić jakiś serwer
    www i przesyłać dane po rs232 lub zastosować ethernet i wysyłać dane gdzieś do serwera ?
  • #6 10204334
    Konto nie istnieje
    Konto nie istnieje  
  • #7 10204443
    djkomprez
    Poziom 21  
    Smsów nigdzie nie masz za darmo :) zawsze trzeba albo doładować co ileś za jakąś kwotę.
    Coś za coś... wydaje mi się że wykorzystanie prostego accesspointa z układem enc28j60
    załatwi sprawę mobilności ? Koszta nie wielkie i najważniejsze że nie będzie generowało
    dodatkowych kosztów, z uwagi na to że to ma być praca inżynierska, raczej
    nie będzie wykorzystywana później. Sam pisałem taka pracę (stację meteo) i
    tańszym kosztem jest podłączenie jej do internetu za pomocą rs-a lub implementację
    prostego skryptu php zapisującego dane gdzieś na serwerze providera.

    Innym rozwiązaniem jest użycie routera który bazuje na linuxie lub ma możliwość
    wgrania np OpenWRT lub podobnych dystrybucji, wtedy mamy zintegrowaną
    platforme. Wystarczy taki router np ASUS, TP-LINK mamy tam dostępne 2 lub 1
    port rs232, możemy tam wysyłać dane i bezpośrednio na routerze udostępnić je.
    Sam tak zrobiłem i jest to najlepsze rozwiązanie.
  • #8 10204744
    Konto nie istnieje
    Konto nie istnieje  
  • #9 10204873
    djkomprez
    Poziom 21  
    W heyah masz najwyższej 1000 sms przy kazdym doladowaniu co miesiac.
    Darmowe smsy są tylko w sieci własnej. Z internetem tez tak koloro nie jest bo pakiet
    działa 30 dni po wyczerpaniu oczywiście masz limit danych w standardzie gprs ( tak jak piszesz nawet po wygaśnięciu)ale po upływie 30 dni sciąga z konta 9 zł
    i ponawia pakiet z kolejnym limitem do pobrania, a jeśli nie masz kasy - neta wyłącza.

    Już pomijam sam fakt enc28, jak pisałem ... koszt apeka adoptowalnego do uruchomienia
    na nim linuksa to koszt 150zł max. Odpada modem .. i niepotrzebne koszta. :)
  • #10 11107803
    lastsith
    Poziom 10  
    Witam ponownie,

    Dzięki za wszystkie propozycje i rady. Póki co zdecydowałem się na ATMege32 i moduł GSM SIM900D oraz AVR Dragon. Moduł działa, smsy idzie wysyłać. Jest podłaczony tylko przez linie RxD i TxD.

    Funkcjonalność narazie ma polegać na tym, że gdy ktoś zadzwoni, powinien dostać wiadomość SMS z aktualnymi parametrami. Ewentualnie myślę o zrobieniu rejestracji dozwolonych numerów, np za pomocą SMSa z jakimś hasłem.

    Jednakże zastanawiam się jak rozwiązać komunikację modułu z ATMegą, konkretnie chodzi mi o to, czy korzystać z przerwań, w każdym razie jedyne chyba interesujące to to czy ktoś właśnie dzwoni. Widziałem jakieś biblioteki dla SIM900D ale nie było w nich nic z przerwaniami(nie chce korzystać z gotowych bibliotek). Póki co po wysłaniu komendy AT odczekiwałem jakiś interwał czasu na odpowiedź. Tylko nie wiem czy da się pogodzić obsługę przerwań z tą metodą i czy w ogóle jest w tym jakiś sens.

    Prosiłbym o jakieś propozycję rozwiązania tego, ewentualnie jakby ktoś miał jakieś przydatne materiały z tym związane to bardzo chętnie bym zobaczył(póki co nie znalazłem zbyt ciekawych rozwiązań).

    Pozdrawiam.
  • Pomocny post
    #11 11109111
    Konto nie istnieje
    Konto nie istnieje  
  • #12 11157440
    lastsith
    Poziom 10  
    Pomysł z książką mi się podoba, jeszcze go nie zrealizowałem, póki co po zadzwonieniu, odrzuca połączenie i wysyła SMS z temperaturą.

    Zamówiłem SHT71, ale właśnie przeczytałem że nie jest zgodny z I2C/TWI, i się zastanawiam czy aby napewno dobry wybór, póki co jeszcze nie zapłaciłem, więc mogę zrezygnować. Ale co wtedy innego wybrać?

    Co do czujnika ciśnienia to jeszcze nie zdecydowałem się. Jest w śród cyfrowych jakiś wybór inny niż HP02S i BMP085? Oczywiście w cenie poniżej 100zł ewentualnie może trochę przekroczyć. Zastanawiam się czy nie wybrać czasem jakiegoś analogowego.
  • Pomocny post
    #13 11157613
    tmf
    VIP Zasłużony dla elektroda
    SHT71 jest bardzo dobry, co z tego, że nie ma I2C? Łatwo się komunikację z nim implementuje softwarowo. Co ci nie pasuje w BMP085? Też bardzo fajny czujnik. Możesz iść w analogowe, ale zwykle będą one wymagały układu wzmacniającego sygnał, chyba, że masz dosyć dobry ADC.
  • #14 11157636
    lastsith
    Poziom 10  
    No ADC mam tylko ten co jest w mikrokontrolerze(ATmega32), nie wiem czy wystarczajacy, chyba jednak wezmę tak jak piszesz tego BMP085. No to biorę tego SHT71 dzieki.
  • Pomocny post
    #15 11157806
    tmf
    VIP Zasłużony dla elektroda
    ADC z ATMega jest taki sobie, bez cudowania trudno uzyskać rozdzielczość lepszą niż 2mV - musisz to teraz przeliczyć na ciśnienie i sprawdzić czy taki wynik cię satysfakcjonuje. Oczywiście masz zawsze w zanadrzu oversampling, lub wykorzystanie możliwości wzmocnienia sygnału (co zresztą prowadzi dodatkowe błędy). IMHO wykorzystanie BMP085 jest prostsze. Gotowce do jego obsługi znajdziesz w przykładowych programach dodanych do AS6. Właściwie wystarczy tylko zrobić copy&paste.
REKLAMA