Termometr z wyświetlaczem LCD na Arduino

720px-Arduino_Logo.svg

Tworzymy termometr z wyświetlaczem LCD a to wszystko w oparciu o Arduino UNO.

Potrzebne nam będą następujące rzeczy i trochę czasu na zmontowanie wszystkiego:

  • Arduino (oprogramowanie oraz dowolny klon płytki)
  • układ DS18B20
  • wyświetlacz LCD HD44780
  • płytka stykowa, przewody
  • biblioteka OneWire 
  • biblioteka LiquidCrystal

Podłączamy wyświetlacz do arduino:

Opis pinów na wyświetlaczu:

wyswietlacz

Jak już wiemy co oznaczają poszczególne piny na naszym wyświetlaczu zabieramy się za podłączenie odpowiednich pinów. Ja użyłem pinów (12, 11, 5, 4, 3, 2) na arduino i zastosowałem potencjometr (10k) na pinie 3 wyświetlacza w celu regulacji kontrastu.

arduino-hd44780

Czujnik temperatury:

sensor_ds18b20

Podłączamy następująco:

  • GND (pin1) oraz VDD (pin3) podłączone do GND,
  • DQ (pin2) podłączony do pinu 8 na arduino,
  • rezystor 1k pomiędzy DQ (pin2) oraz 5V

Wgrywamy program:

// LCD TERMOMETR
// blog.bauerpawel.eu

#include
#include

// Connections:
// rs (LCD pin 4) to Arduino pin 12
// rw (LCD pin 5) to Arduino pin 11
// enable (LCD pin 6) to Arduino pin 10
// LCD pin 15 to Arduino pin 13
// LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
OneWire ds(8); // ds18b20 pin #2 (middle pin) to Arduino pin 8
void setup(void) {
lcd.begin(16, 2);}
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
float celsius, fahrenheit;

int HighByte, LowByte, SignBit, Whole, Fract, TReading, Tc_100, FWhole;

void loop(void) {

if ( !ds.search(addr)) {
ds.reset_search();
delay(250);
return;
}

if (OneWire::crc8(addr, 7) != addr[7]) {

return;
}
// the first ROM byte indicates which chip
switch (addr[0]) {
case 0x10:

type_s = 1;
break;
case 0x28:

type_s = 0;
break;
case 0x22:

type_s = 0;
break;
default:

return;
}

ds.reset();
ds.select(addr);
ds.write(0x44, 1); // start conversion, with parasite power on at the end

delay(1000); // maybe 750ms is enough, maybe not
// we might do a ds.depower() here, but the reset will take care of it.

present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad

for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();

}

// Convert the data to actual temperature
// because the result is a 16 bit signed integer, it should
// be stored to an „int16_t” type, which is always 16 bits
// even when compiled on a 32 bit processor.
int16_t raw = (data[1] << 8) | data[0];
if (type_s) {
raw = raw << 3; // 9 bit resolution default
if (data[7] == 0x10) {
// „count remain” gives full 12 bit resolution
raw = (raw & 0xFFF0) + 12 – data[6];
}
} else {
byte cfg = (data[4] & 0x60);
// at lower res, the low bits are undefined, so let’s zero them
if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
//// default is 12 bit resolution, 750 ms conversion time
}
celsius = (float)raw / 16.0;
fahrenheit = celsius * 1.8 + 32.0;
lcd.clear();
lcd.setCursor(0,0);
lcd.print(„Temperatura: „);
lcd.setCursor(2,1);

if (SignBit) {
lcd.print(„-„);
}
lcd.print(celsius);
lcd.print(” C „);
delay(5000); //Czeka 5 sekund i odswierza
}

/////

Kod do pobrania:
https://dl.dropboxusercontent.com/u/38897001/temperatura_lcd/temperatura_lcd.ino
https://github.com/bauerpawel/Arduino-DS18B20-hd44780

Ściągamy i wklejamy do katalogu Arduino w moich dokumentach lub jako kod bezpośrednio do programu, kompilujemy i wgrywamy do arduino. Program powinien od razu zacząć działać i wyświetlić aktualną temperaturę.

Jeśli użyliście innych pinów to zmian dokonujecie w następującym miejscu w kodzie:

    LiquidCrystal lcd(12, 11, 5, 4, 3, 2); – są to piny użyte do podłączenia wyświetlacza
OneWire  ds(8); – jest to pin od czujnika temperatury

 

E3 2014 LIVE! – Noc pełna wrażeń

logo-e3

Dzisiejszej nocy będzie się działo na targach E3. Ciekawe co pokażą w tym roku producenci gier i sprzętu, a pokażą sporo.

Hormonogram:

  • Microsoft: 9 czerwca, godzina 18:30
  • Electronic Arts: 9 czerwca, godzina 21:00
  • Ubisoft: 9 czerwca, godzina 24:00
  • Sony: 10 czerwca, godzina 3:00
  • Nintendo: 10 czerwca, godzina 18:00

Transmisja na Twitch.tv

[plumwd_twitch_stream channel="twitch"]

Konferencje Microsoftu będzie można oglądać na Xbox 360, Xbox One, Windows Phone jak i w internecie na xbox.com/pl-PL/e3

Strona targów E3 e3expo.com

Strona z transmisjami na GameSpot gamespot.com/e3

Dla użytkowników którzy korzystają z xbmc jest plugin twitch.tv dzięki któremu będzie można cieszyć się transmiją na żywo w salonie na dużym TV. PS. plugin też działa na malinie (raspberry pi) 🙂

Triumfalna Turkawka – polski remiks Ubuntu 14.04 LTS

ubuntu-pl

Polski remiks systemu ubuntu 14.04 stworzony przez serwis ubuntu.pl zawiera sporo udogodnień zgłoszonych przez społeczność, przygotowany specjalnie dla polaków, pozbawiony paczek językowych i pakietów które są zbędne. Dodano, usunięto i zmodyfikowano sporo:

Usunięto

  • niepolskie pakiety językowe,
  • najbardziej egzotyczne fonty.

Dodano

  • pełne spolszczenie,
  • kodeki audio/wideo na wolnych licencjach,
  • Ubuntu Tweak – narzędzie do zaawansowanej konfiguracji Ubuntu,
  • 7-zip – obsługa wielu rodzajów archiwów skompresowanych,
  • OpenJDK 7 – wolna Java (oraz wtyczka do przeglądarek),
  • dodatkowe wtyczki do Compiza oraz Menedżer Ustawień Compiz Config,
  • Nautilus pyExtensions – dodatki do Nautilusa (ze spolszczeniem przygotowanym specjalnie na potrzeby remiksu),
  • Gufw – graficzny interfejs do konfiguracji zapory sieciowej,
  • hardinfo – do wyświetlania informacji o podzespołach komputera,
  • FileZilla – klient FTP,
  • Cheese – do obsługi kamer,
  • furiusisomount – do montowania obrazów płyt,
  • gtk-recordmydesktop – do nagrywania pulpitu,
  • soundconverter – do konwertowania dźwięków,
  • sound-juicer – do zgrywania piosenek z płyt CD,
  • Transmageddon – do transkodowania filmów,
  • XChat – klient IRC-a,
  • GIMP (oraz zestaw wtyczek) – edytor grafiki rastrowej,
  • Inkscape – edytor grafiki wektorowej,
  • XBMC – centrum multimedialne,
  • Dia – edytor diagramów,
  • Wallch – program podmieniający tapety po określonym czasie,
  • NdisGTK – graficzny interfejs użytkownika do instalacji windowsowych sterowników WiFi,
  • build-essential (kompilatory itp.),
  • Vim – potężny konsolowy edytor tekstu,
  • Midnight Commander – konsolowy menedżer plików,
  • dodatki do LiberOffice – import plików PDF, rozszerzenie usprawniające wyświetlania prezentacji,
  • wstępna konfiguracja programu Orca – klawisz „orca” ustawiony na Caps Lock zamiast Insert,
  • gnome-system-tools, htop, unrar-free, mesa-utils i inne…
  • oraz oczywiście Pisklak – skrypt pozwalający skonfigurować system.

Wygląd pulpitu:

Stworzone też na potrzeby nową tapetę która domyślnie przyozdabia pulpit: Tapeta

Przygotowano też obszerny poradnik w wersji PDF: pobierz, pobierz

System do pobrania z: ubuntu.pl

Dla tych co posiadają już Ubuntu 14.04 LTS a chcą przerobić na polski remix może to uczynić korzystając z poradnika Transformacja: Trusty Tahr -> Triumfalna Turkawka

 ubuntu-468_na_60-1

Windows Phone 8.1 – Udostępniamy ekran po USB

windows-phone-8-1

Ci którzy oglądali konferencje Microsoftu lub chociaż widzieli zdjęcia zapewne się zastanawiają jak to zrobili że po kabelku USB był pokazywany obraz z telefonu na dużym ekranie. Teraz jest już na to odpowiedz w nowym systemie Windows Phone 8.1 jest stosowna opcja do włączenia w ustawieniach. Jest też spocjalna aplikacja do zainstalowania na komputerze z systemem Windows: pobierz

screen-app windows-phone-8-1-moj wyswietl-moj-ekran

Windows Phone 8.1 – Już do pobrania!

windows-phone-8-1

Można już pobrać Windows phone 8.1 w wersji testowej bezpośrednio od Microsoftu dla każdej nokii :). Żeby już dziś posiadać najnowszy system Microdoftu na telefony komórkowe trzeba się udać na stronę https://dev.windowsphone.com/en-us/develop/devpreview i kliknąć „Register as a developer with App Studio – Free, and create apps to run on your own Windows Phones” i zalogować się na swoje konto Microsoftu. Na telefonie musimy za to pobrać i zainstalować aplikację ze sklepu Preview for Developers. Na telefonie akceptujemy regulamin i tym sposobem dołączyliśmy nasz telefon do kanału testowego wydań systemu. Teraz w ustawieniach telefonu klikamy na znajdź aktualizacje i po chwili będzie do pobrania aktualizacja do Windows Phone 8.0 a po jej zainstalowaniu i restarcie pojawi się aktualizacja do 8.1. Żadne ustawienia i aplikacje nie zostają usunięte. Testowałęm na Nokia Lumia 1020 i działa system idealnie.  Cartany niestety nie uświadczymy aktualnie w naszym języku ale dla osób chcących przetestować istnieje taka możliwość, wystarczy zmienić język i ustawienia regionalne na angielski.

Ubuntu 14.04 LTS – Już jest!

ubuntu-common

Została udostępniona nowa wersja systemu ubuntu o numerze 14.04. Przynosi sporo zmian jak i wsparcie wydłużone aż do 5 lat.

Z nowości w Ubuntu 14.04 LTS jakie można wyróżnić to nowy kernel 3.14, python 3.4, AppArmor, Upstart i domyślnie włączona obsługa TRIM dla dysków SSD. O wszystkich nowościach możemy poczytać w oficjalnej informacji o wydaniu tutaj.

Ubuntu do pobrania z oficjalnej strony: ubuntu.com/download

 

OpenELEC 4.0 Beta 1

OpenElec logo

Dziś została upubliczniona nowa wersja wspaniałego systemu multimedialnego OpenELEC 4.0 Beta 1 (Version: 3.95.1), który działa na malince (raspberry pi). Mogę polecić każdemu kto szuka szybkiego systemu z xbmx do oglądania filmów.

Z nowości:

Nie pozostaje nic jak tylko pobrać, nagrać na kartę sd i testować nowe wydanie.

Linki do pobrania:
Oficjalna strona: http://openelec.tv/get-openelec/download
Lub z http://bauerpawel.eu/openelec/

Hetzner – instalacja własnego windowsa

hetzner logo

Już dawno nic nie zamieszczałem a temat jaki dziś wam przedstawię uważam za ciekawy. Sam sporo czasu poświęciłem na poszukanie informacji i wdrożenie własnej wersji Windowsa na serwerze w hetzner. Po co płacić jak ma się własną licencje 🙂

Istnieją trzy wersje instalacji własnego Windowsa na serwerze, może to być wersja kliencka jak i serwerowa.

Pierwsza metoda polega na odtworzeniu obrazu dysku na serwerze przy wykorzystaniu trybu instalacyjnego z jakim dostajemy serwer.

Druga metoda polega na skopiowaniu plików z płyty i uruchomieniu instalatora tą metodę można użyć jeśli mamy możliwość uruchomienia systemu z Windowsem np. winpe lub jakiś live cd Windowsa przez ipmi lub coś podobnego. Tej metody użyłem w przypadku serwera z http://oneprovider.com/dedicated-servers/paris-france Opiszę ją może kiedyś.

Trzecia metoda to instalacja systemu Windows na wirtualnej maszynie np. ESXI w OVH można tak było nie wiem czy aktualnie dają ip z adresem MAC dodatkowo do każdego serwera za opłatą. W tej metodzie mamy troszkę mniejszą wydajność spowodowaną wirtualizacją i mniej o 1-2 GB ramu które przeznaczamy na system gospodarza który zapewnia nam wirtualizację. Nie będę tego opisywał każdy kto choć raz używał vmware workstation powinien sobie poradzić z instalacją takiego systemu. Ustawiamy tylko adres MAC w opcjach karty sieciowej na taki jaki został nam przydzielony.

Ja osobiście użyłem metody pierwszej z serwerem w HETZNER i ją tutaj opiszę.

Opis instalacji sposobem pierwszym:

Wykorzystałem virtualboxa uruchomionego na serwerze  z systemem Ubuntu 13.04 x64 z dużą ilością wolnego miejsca na dysku i panelem www (phpvirtualbox) do instalacji czystego Windowsa 7 x64.  Więc polecenia podane niżej będą się odnosić do systemu Ubuntu. Można dać mniejszy dysk bo będziemy potrzebować prawie dwa razy wielkość dysku virtualnego na zrobienie obrazu raw, a program nie pozwoli zrobić tego jak nie mamy wystarczającej ilości wolnego miejsca!

Po normalnej instalacji i utworzeniu użytkownika z hasłem i włączeniu opcji pulpitu zdalnego, plus odblokowaniu portu na firewallu na sieci publicznej można zamknąć system.

Teraz będziemy konwertować wirtualny dysk na obraz dysku raw do wykorzystania podczas odtwarzania przez linuksowy program dd.

Konwertujemy dysk z virtualboxa format VDI na format akceptowalny przez dd:

VBoxManage clonehd win7.vdi win7.raw --format RAW | gzip > win7.gz

Musimy mieć tyle miejsca wolnego ile wynosi nasz dysk wirtualny. Spakujemy co by pustych danych nie przenosić.

Musimy jeszcze na serwerze w hetzner sformatować dysk sdb i zamontować go. Użyjemy do tego fajnego konsolowego programu prawie graficznego cfdisk. Tworzymy partycję a następnie po zapisaniu formatujemy ją i montujemy:

mkfs.ext3 /dev/sdb1
mount /dev/sdb1 /mnt

Teraz kopiujemy nasz obraz dysku na serwer w hetzner przez ftp. Zaletą systemu instalacyjnego z jakim dostajemy serwer to to że możemy instalować na nim co tylko chcemy więc doinstalowanie serwera ftp nie stanowi problemu i możemy zacząć wgrywać plik na dysk sdb (zamontowany w: /mnt) bo na sda będziemy przywracać obraz.

Po wgraniu obrazu możemy przystąpić do odtwarzania obrazu:

gzip -dc /mnt/win7.gz | dd of=/dev/sda

Po restarcie powinien się uruchomić bez problemu system Windows 🙂

Doinstalowujemy aktualizacje i sterowniki, przeważnie jest to serwer firmy DELL więc na stronie producenta można dać opcje znajdź service tag i dociągnąć sterowniki. W zarządzaniu komputerem w opcji zarządzanie dyskami powiększamy partycje z systemem do maksymalnej wielkości dysku pierwszego a dysk drugi formatujemy i montujemy.

Strumyk live czyli Nginx + rtmp module

nginx logo

Dziś zajmiemy się postawieniem serwera do strumieniowania filmów, obrazu z kamery czy dekodera tv.

Do celów testowych ja użyłem wirtualnej maszyny postawionej na serwerze dedykowanym w hetzner, ale może też być vps lub najtańszy cloud np. od e24cloud lub oktawave. System jaki użyłem to ubuntu server 13.04 64bit i do tego systemy będą opisy, może też być debian 7, albo inny na którym pracujecie i umiecie skompilować aplikację.

A więc zaczynamy:

Instalujemy potrzebne aplikacje:

apt-get update  
 apt-get install curl build-essential libpcre3-dev libpcre++-dev zlib1g-dev libcurl4-openssl-dev libssl-dev git-core

Ściągamy potrzebne aplikacje i moduł do nginx:


wget http://nginx.org/download/nginx-1.5.3.tar.gz
git clone https://github.com/arut/nginx-rtmp-module.git
tar -zxvf nginx-1.5.3.tar.gz
cd nginx-1.5.3

Dodajemy moduł do nginx i kompilujemy a potem instalujemy:


./configure --add-module=../nginx-rtmp-module-master
make
sudo make install

Teraz pozostaje mam tylko ustawić configa i odpalić swój pierwszy stream 🙂 Wystarczy w pliku /usr/local/nginx/conf/nginx.conf dodać:


    rtmp {
        server {
            listen 1935;

            application stream {
                live on;
                allow publish all;
                allow play all;
            }
        }
    }

Do testu powinno wystarczyć choć do celów komercyjnych potrzebujemy ograniczyć możliwość nadawania z konkretnego ip. Wtedy kod do dodania będzie wyglądał następująco gdzie X.X.X.X należy podać ip z którego będziemy nadawać.


    rtmp {
        server {
            listen 1935;

            application stream {
                live on;
                allow publish X.X.X.X;
                deny publish all;
                allow play all;
            }
        }
    }

Pierwsza linia wyłącza a druga włącza nginx:


sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx

Mamy więc już działający serwer www bo przecież niem jest nginx możemy tam serwować stronę z odtwarzaczem.
Ja użyłem http://www.longtailvideo.com/jw-player/ mają wersje hostowaną u siebie na serwerach cdn więc jest to fajne bo odciąża nasz serwer.

Jak nadawać? Ja użyłem ffmpeg do plików avi jak i obrazu kamery się nadaje. Można też nadawać z raspberry pi obraz.


ffmpeg -threads 2 -y -i FILM.avi -acodec libmp3lame -ab 192000 -ar 44100 -ac 2 -vcodec libx264 -vb 800000 -f flv rtmp://X.X.X.X/stream/test

przełacznik -threads 2 oznacza że ma użyć 2 rdzenie procesora jak damy z 0 to sam wykrywa optymalna ilość rdzeni do użycia
dalej to kodek audio mp3, bitrate audio, sample rate, kanały audio, kodek video x264, bitrate video, format wyjściowy i adres serwera gdzie nadajemy z nazwa streamu u mnie to test

To tyle w tym wpisie w następnym opiszę stream z raspberry pi pliku avi jak i z kamery którą chce nabyć.
Polecam zapoznanie się z wpisem na http://www.megiteam.pl/blog/2012/11/27/streaming-operacji-serca

Panel web do autopilota

shoutcast

Witam,

Przedstawiam wam mój działający i spełniający moje wymagania i potrzeby panelik do sterowania sc_trans – transkodera shoutcast i generowania playlist. Korzystam z wersji  sc_trans_posix_040 która potrafi nadawać mp3 bo najnowsze wydanie nadaje tylko w AAC+ a do mp3 potrzeba zakupu licencji.

Po sciagnięciu edytujemy 3 pliki: autopilot.php, sc_trans.conf i make_playlist zmieniamy w nich tylko ścieżki do katalogów. Zmieniamy też uprawnienia na wykonywanie i modyfikowanie plików.

Testowane na serwerze z directadminem i php 5.3.10 , żeby wgrywać mp3 bezpośrednio do katalogu z muzyką można dodać dodatkowe konto ftp.

Do pobrania na github: https://github.com/bauerpawel/autopilot

Link do pobrania sc_trans_posix_040: https://dl.dropboxusercontent.com/u/38897001/sc_trans_posix_040.tgz