Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Arduino uno - duza ilość podłaczeń a i2c.

ArchitektPiramid 11 Mar 2019 19:51 957 21
  • #1
    ArchitektPiramid
    Level 3  
    Planuje zrobić stacje pogodowa wewnetrzna i zewnetrzna.

    W pokoju
    - Czujnik temperatury i wilgotnosci DHT22.
    - Zegar co by dane zapisywal o okreslonym czasie.
    - Karte do zapisu danych.
    - Modul wifi aby raz na jakis czas zrobic backup.
    - Czujnik CO2.
    - Okolo 2 wyswietlacze (128x64px), aby pokazywaly na nich statystyki. Oraz jeden wiekszy do danych.
    - I jeden duzy juz z scalakiem do literek.

    Na zewnatrz
    - Rainmeter.
    - Barometr.
    - DHT22.
    - Czujnik drgan.
    - Fotorezystor.
    - Mikrofon.
    - Kamera do timelapsu.

    Da rade?
    Myslalem, zeby jeszcze do paru kwiatkow czujnik wigotnosci dac (max do 3).
    + Czujnik zanieczyszczenia.

    Ile z tego jest dostepne i2c? zasilanie z arduno starczy zeby nie padł?
  • #2
    LChucki
    Level 31  
    ArchitektPiramid wrote:
    z 2 wyswietlacze te 128x64px zeby dane pomiescic albo i ich wiecej bo one i2c

    Te więcej to ile ma być?
    Jaka ma być sumaryczna długość magistrali I2C?

    ArchitektPiramid wrote:
    i jeden duzy ten juz z scalakiem do literek zeby na nim widoczne bylo z daleka chociaz temperatura, wilgotnosc i cos tam

    Scalak do literek? Co masz na myśli? Niewiele wyświetlaczy ma sterownik z czcionkami, jesli nawet mają to bez PL.

    ArchitektPiramid wrote:
    zasilanie z arduno starczy zeby nie umarl?

    Juk czujniki można usypiać to pewnie wystarczy.
  • #3
    ArchitektPiramid
    Level 3  
    Quote:
    Te więcej to ile ma być?
    Jaka ma być sumaryczna długość magistrali I2C?

    4-6.

    Quote:
    Scalak do literek? Co masz na myśli? Niewiele wyświetlaczy ma sterownik z czcionkami, jesli nawet mają to bez PL.

    PL nie potrzebuje. O to mi chodzi: Link

    Quote:
    Juk czujniki można usypiać to pewnie wystarczy.

    Czujnikow nie uspisz. moglbym arduino i wybudzac co jakis ale na ten kod mi miejsca braknie w pamieci.
  • #4
    LChucki
    Level 31  
    ArchitektPiramid wrote:
    Quote:
    Te więcej to ile ma być?
    Jaka ma być sumaryczna długość magistrali I2C?

    4-6.

    Co 4-6? 4-6 LCD czy 4-6metrów?
    ArchitektPiramid wrote:
    Czujnikow nie uspisz.

    No to zasilacz z Arduino niekoniecznie da radę.

    ArchitektPiramid wrote:

    na ten kod mi miejsca braknie w pamieci.

    Jaki problem dać większy uC?
  • #5
    khoam
    Level 41  
    ArchitektPiramid wrote:
    moglbym arduino i wybudzac co jakis ale na ten kod mi miejsca braknie w pamieci.

    Przesadzasz kolego. Te parę dodatkowych linii kodu na pewno nie zdewastuje Ci pamięci Flash, czy SRAM.

    ArchitektPiramid wrote:
    Czujnikow nie uspisz.

    To zależy, jakie to będą czujniki. Na razie nie podałeś żadnych konkretnych modeli, poza DHT22. AM2302 ma sleep mode :)
  • #6
    ArchitektPiramid
    Level 3  
    LChucki wrote:
    Co 4-6? 4-6 LCD czy 4-6metrów?

    XD no LCD i innych rzeczy co I2C obsługuja.

    LChucki wrote:
    No to zasilacz z Arduino niekoniecznie da radę.

    To machne zewnetrzne zasilanie tylko czy duzo to bedzie ciaglo wat? Planuje to na powerbanku zasilac.

    I tak, racja. zapomnialem, ze mozna zewnetrzne EEPROM dodac. Tylko portow mi prawdopodobnie na to wszystko braknie.
  • #7
    LChucki
    Level 31  
    ArchitektPiramid wrote:
    Tylko portow mi prawdopodobnie na to wszystko braknie.

    Co za problem dac większy uC?
    Nie ma sensu używać malutkiego UNO i otaczać go dziesiątkami układów, taniej, lepiej będzie dać większy uC. Jeśli już zapierać się (nie wiem czemu) przy przestarzałym AVR, to można użyć Mega1280. Nadal to średnio dobry pomysł, bo jaki by ten AVR nie był (z dużych) to ma tylko jeden I2C.

    ArchitektPiramid wrote:
    no LCD

    LCD z I2C mają przeważnie możliwość wyboru jednego z 2 adresów z tym, że w modułach, adres ten jest zafiksowany. Można dać multiplekser ale po co pchać się w koszty, jak wystarczy ARM z kilkoma I2C?


    Policzyłeś ile potrzeba pamięci na bufor ekranu? Na ile starczy RAM UNO czy nawet Mega?
    AVR do projektu, który chcesz zrobić to zły wybór! Potrzebujesz znacznie więcej RAM niż oferuje Arduino UNO czy nawet Mega. Aż się prosi o DMA, którego AVRmega nie ma. Xmega ma DMA ale jest ubogi w RAM i najczęściej droższy od ARM o większych możliwościach.
  • #8
    khoam
    Level 41  
    Przy tego rodzaju metodyce projektowej proponuję od razu wziąć pod uwagę Raspberry Pi 3 model B+ WiFi Dual Band Bluetooth 1GB RAM 1,4GHz.
  • #9
    krzysiek_krm
    Level 40  
    khoam wrote:
    Przy tego rodzaju metodyce projektowej proponuję od razu wziąć pod uwagę Raspberry Pi 3 model B+ WiFi Dual Band Bluetooth 1GB RAM 1,4GHz.

    Ale poważnie mówiąc, przy tych wszystkich peryferiach z pierwszego postu to wspomniane w tytule uno raczej nie da rady.
  • #10
    khoam
    Level 41  
    krzysiek_krm wrote:
    Ale poważnie mówiąc, przy tych wszystkich peryferiach z pierwszego postu to wspomniane w tytule uno raczej nie da rady.

    Uno pewnie nie, ale w wypadku Mega to udałoby się to zrobić. 50% sukcesu zależy od kreatywności programisty.
  • #11
    krzysiek_krm
    Level 40  
    khoam wrote:
    Raspberry Pi 3 model B+ WiFi Dual Band Bluetooth 1GB RAM 1,4GHz.

    Ten Twój "pomysł" to wcale nie jest taki głupi.
    Platforma jest dość dobrze ustabilizowana, zarówno sprzętowo jak i programowo. Są fajne wyświetlacze, takie trochę typu "podłącz, zainstaluj oprogramowanie i zapomnij", jest dużo wiedzy sprzętowej i programowej, itp, itd.
    A i rozwój przedsięwzięcia, w razie jakby co, będzie dość łatwy.
  • #12
    khoam
    Level 41  
    krzysiek_krm wrote:
    khoam wrote:
    Raspberry Pi 3 model B+ WiFi Dual Band Bluetooth 1GB RAM 1,4GHz.

    Ten Twój "pomysł" to wcale nie jest taki głupi.
    Platforma jest dość dobrze ustabilizowana, zarówno sprzętowo jak i programowo. Są fajne wyświetlacze, takie trochę typu "podłącz, zainstaluj oprogramowanie i zapomnij", jest dużo wiedzy sprzętowej i programowej, itp, itd. A i rozwój przedsięwzięcia, w razie jakby co, będzie dość łatwy.


    Do tego dochodzi dodatkowy bonus: to wszystko można szybko napisać w Pythonie, po co się męczyć z C/C++.
  • #13
    LChucki
    Level 31  
    khoam wrote:
    krzysiek_krm wrote:
    Ale poważnie mówiąc, przy tych wszystkich peryferiach z pierwszego postu to wspomniane w tytule uno raczej nie da rady.

    Uno pewnie nie, ale w wypadku Mega to udałoby się to zrobić. 50% sukcesu zależy od kreatywności programisty.

    Każdy ekran wyświetlacza LCD mono 128x64 to 1kB RAM. Przy 6 wyświetlaczach, 6 kB RAM z 8 w Mega. Zapis na kartę SD, warto zarezerwować jakieś 700bajtów. Pewnie przyjdzie ochota na Ethertet, na co warto dać 3kB. Większa rozdzielczość LCD np 128x128 max 3 wyświetlacze bo coś musi zostać na resztę, o 4 czy 6 LCD nie ma co marzyć.
    Oczywiście da się obsłużyć bez bufora ale to gimnastyka i różne ograniczenia.
    Arduino Mega z 8kB RAM, skąpymi peryferiami, kosztuje ok 45zł. Za ok 50zł, można kupić NUCLEO od STM. Jak ktoś chce, może porównywać Trabanta z Ferrari a na koniec, niech porówna stosunek cena/jakość. Gdy dodać do tego fakt, że program na ARM pisze się szybciej, debuger kosztuje 13zł a nie setki czy tysiące, to chyba wybór jest jasny.

    Co do Rpi, to rzadko w bardziej rozbudowanych systemach sam da radę, najczęściej trzeba wspomagać się jakimś ARM'em.
  • #14
    khoam
    Level 41  
    LChucki wrote:
    Co do Rpi, to rzadko w bardziej rozbudowanych systemach sam da radę, najczęściej trzeba wspomagać się jakimś ARM'em.

    To bardzo ciekawe spostrzeżenie, że mocniejszy procesor ARM w malince wymaga wspomagania ze strony słabszego procesora ARM w STM32.
    W zasadzie to temat jest już wyczerpany.
  • #15
    krzysiek_krm
    Level 40  
    khoam wrote:
    To bardzo ciekawe spostrzeżenie, że mocniejszy procesor ARM w malince wymaga wspomagania ze strony słabszego procesora ARM w STM32.

    Bo kolega Chucki, będący (chyba) inkarnacją innego użytkownika elektrody, który był maniakalnym zwolennikiem AVR-ów, stał się ostatnio cortexowym neofitą - najwierniejszym z wiernych, chyba że może ma jakieś akcje ARM'a i reklamuje wszędzie gdzie popadnie.
  • #16
    User removed account
    Level 1  
  • #17
    ArchitektPiramid
    Level 3  
    khoam wrote:


    No tak, zwracam honor. Popatrzylem do dokumentacji i masz racje.

    Wiec tak:
    - DHT22.
    - BMP280 barometr. nie wiem czy nie brac wersji z koncowka GY-BME280 ale boje sie ze wyniki moga byc mniej dokladne niz w DHT22 i jest jeszcze GY-68 sporo tansza.
    - DS3231 lub DS1302.
    - Rainmeter no name.
    - Wyswietlacze jakies (128x64px) no name.
    - Karta na pamiec pisze ze modul SPIl
    - Fotorezystory na pewno nie maja
    - Kamera OV7670.
    - Pojemnosciowy czujnik wilgotnosci tez na pewno nie ma.

    @Marek_Skalski
    Jutro wszystko dokladnie opisze jak znajde czas bo pora spac. Praca czeka. Dzieki za proponowanie pomocy.
  • #18
    ArchitektPiramid
    Level 3  
    @Marek_Skalski

    Przemyslalem sprawe przez noc i biore jakas malinke. Musze jeszcze ogarnac jaka dokladnie i jaka dystrybucje wybrac. Przyda mi sie to do innych projektow jak hosting, dysk sieciowy i mase innych mozliwosci a cena nie jest az tak duza jak mozna by powiedziec - pelnoprawny mikrokomputer. Problem sie zaczyna bo sie nie mam pojecia jak polaczyc arduino z malinka. Wszak ona nie ma tyle portow no i nie odczytam na niej pomiarow uzywajac roznych natezen pradu.
  • Helpful post
    #19
    LChucki
    Level 31  
    ArchitektPiramid wrote:
    Problem sie zaczyna bo sie nie mam pojecia jak polaczyc arduino z malinka.

    Raczej AVR :-)
    Najprościej przez USB ale do tego najlepsze są uC ze sprzętowym USB więc popularne UNO czy Mega odpada.
    Inna opcja to SPI czy I2C.
  • #20
    khoam
    Level 41  
    ArchitektPiramid wrote:
    Przemyslalem sprawe przez noc i biore jakas malinke. Musze jeszcze ogarnac jaka dokladnie i jaka dystrybucje wybrac. Przyda mi sie to do innych projektow jak hosting, dysk sieciowy i mase innych mozliwosci a cena nie jest az tak duza jak mozna by powiedziec - pelnoprawny mikrokomputer. Problem sie zaczyna bo sie nie mam pojecia jak polaczyc arduino z malinka. Wszak ona nie ma tyle portow no i nie odczytam na niej pomiarow uzywajac roznych natezen pradu.


    To nie kombinuj z łączeniem różnych płytek, tylko użyj ESP32-WROOM-32. Będziesz miał WiFi (wbudowana obsługa stosu IP) i BT w pakiecie. Specyfikacja jest tutaj oraz tutaj.
    Cena kostki ESP32-WROOM-32 to 4$ z wysyłką, za gotowe moduły trzeba zapłacić od 8$ do 12$, w zależności od ich konfiguracji.

    Jeżeli chodzi o środowisko programowe to możesz użyć Arduino HAL, FreeRTOS lub natywny ESP-IDF.
    Debugger: JTAG + OpenOCD.

    P.S. ESP32 nie ma nic wspólnego z STM32.
  • #21
    ArchitektPiramid
    Level 3  
    LChucki wrote:
    Najprościej przez USB ale do tego najlepsze są uC ze sprzętowym USB więc popularne UNO czy Mega odpada.
    Inna opcja to SPI czy I2C.


    O cholera jak ja moglem na to nie wpasc, chyba bylem pijany piszac ten temat... A tak na powaznie znalazlem ta duza ATmege328P z uno. Jakies Attiny chyba 13 wiec za duzo roboty z tym a reszta jakbym chcial odlutowac to za male nozki ma. Wiec pierwszy wariant chyba najlepszy deal. Musze jeszcze jakos to podlaczyc a najlepiej schemat na poczatek zrobic coby nic nie wybuchlo i go tutaj wstawic.

    Dodano po 36 [minuty]:

    @khoam
    O Paaanie, drogo, drogo i jeszcze raz drogo. Sprobuje najpierw zrobic cos diy z gotowych komponentow jak przed chwila napisalem jak wyjdzie to spox i lece dalej po jakies wifi. Myslalem o jakims ESP-01 albo innej wersji z pinami (nie patrzylem jakie sa inne). Chociaz 2 wifi w bloku niezbyt bezpieczne bez dobrej wiedzy na temat konfiguracji... Nie lepiej np. takie NRF24L01 podlaczyc tu i tu - Cos pierdyknie w AVR - malinka cała. Nikt nie nie wlamie etc..
  • #22
    khoam
    Level 41  
    ArchitektPiramid wrote:
    O Paaanie, drogo, drogo i jeszcze raz drogo.

    Nie zrozumieliśmy się chyba. Jeżeli zdecydujesz się na ESP32, to RPI nie będzie Ci potrzebne.

    ArchitektPiramid wrote:
    Cos pierdyknie w AVR - malinka cała. Nikt nie nie wlamie etc..

    A świstak siedzi w kącie i zawija w sreberka.