Jest to mój pierwszy "projekt", więc proszę o wyrozumiałość.
Wykorzystałem dwa czujniki DS18b20, wyświetlacz OLED i bibliotekę USART do zdalnego odczytu temperatury i nie tylko.
Całość obecnie znajduje się na stykówce, wykorzystałem mikrokontroler ATmega328P taktowany rezonatorem kwarcowycm 11,0592 MHz, wyświetlacz OLED (SPI), dwa czujniki DS18B20, moduł ATNEL-WIFI232-T z ATNEL-AIR , przetwornica ATB-PWR3, kilka kondensatorów 100nF, rezystorów, garstka przewodów połączeniowych no i programator AVR ATB USBASP.
Wykorzystłem biblioteki z bluebooka i greenbooka, oraz bibliotekę z bloga o wyświetlaczach OLED.
Bluebook - biblioteka 1Wire (10_1Wire)
Greenbook - biblioteka USART (L21_UART_ASCII_AT)
Blog - biblioteka OLED:
http://mirekk36.blogspot.co.uk/2014/08/ ... t-01a.htmlhttp://mirekk36.blogspot.co.uk/2014/08/ ... rt-02.htmlhttp://mirekk36.blogspot.co.uk/2014/08/ ... 03-ab.htmlhttp://mirekk36.blogspot.co.uk/2014/08/ ... t-04a.htmlhttp://mirekk36.blogspot.co.uk/2014/08/ ... jalne.html,oraz
Blog - cała reszta
http://www.mirekk36.blogspot.co.uk/2015 ... stowa.htmlhttp://www.mirekk36.blogspot.co.uk/2015 ... start.htmlNie jest on jeszcze skończony, ale pomyślałem, że może się to komuś przydać (z myślą o początkujących takich jak ja). Docelowo termometr ten ma znaleść się u córki w pokoju, bym mógł od czasu do czasu sprawdzić temperaturę, jak również temperaturę na zewnątrz (za oknem) i wszystko pięknie (w razie potrzeby) odczytać zdalnie. Może zamiast diody LED zastosuję przekaźnik, którym zdalnie będę włączał/wyłączał lampkę nocną. W sumie pomysły są tutaj nieograniczone.
Do pliku main.c
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
należy oczywiście dołączyć biblioteki 1Wire, USART i OLED. Zamiast modułu WiFi można podłączyć dowolną przejściówkię RS232 TTL czy moduł Bluetooth.
W pliku źródłowym starałem się zamieścic jak najwięcej komentarzy, aby ułatwić jego zrozumienie (czytanie).
Nie załączam schematu, bo układ ten jest bardzo prosty. Można go zbudować na podstawie poradnika z bloga „programowanie-wifi-platforma-testowa” czy cyklu poradników:
http://mirekk36.blogspot.co.uk/2012/12/ ... aczac.html Dodam tylko, że wyświetlacz OLED SPI (może być też I2C) podłączyłem do PORT (PC5:1), diodę LED podłączyłem anodą do PB1, przycisk do PB0, moduł WiFi do PD0 i PD1, a czujniki temperatury do PB2 (onewire.h) z rezystorem 2.2Kohm do Vcc (tryb normal).
Komendy z terminala:
at+rst? programowy reset procesora (watchdog) do wykorzystania z mkBootLoader'em
temp,1 odczyt temperatury z pierwszego czujnika
temp,2 odczyt temperatury z drugiego czujnika
temp odczyt temperatury z czujników
led,1 włączenie diody LED (zaświecenie)
led,2 wyłączenie diody LED (zgaszenie)
led,1,x mruganie diodą x-razy co 1 sec.
test wyświetlenie tekstu
Oczywiście wyświetlana jest informacja o błędzie któregokolwiek z czujników (np po wyjęciu czujnika). Po włożeniu go z powrotem temperatura wyświetlana jest ponownie. Nie następuje zmiana kolejności wyświetlania czujników.
Dodam, że dzięki ogromnej pracy pana Mirka (mirekk36), a mówię tutaj o książkach, blogu, poradnikom i forum zupełnie początkującemu od zera udało się to "stworzyć". Jeszcze dwa miesiące temu nie byłem w stanie nawet zamigać diodą! Thanks to mirekk36!
Nie mogę się doczekać kolejnego pradnika o serwerze bym mógł na przykład odczytywać temperaturę i nie tylko online!
Pozdrawiam!