Spisu treści:

Tweetująca stacja pogodowa: 8 kroków (ze zdjęciami)
Tweetująca stacja pogodowa: 8 kroków (ze zdjęciami)

Wideo: Tweetująca stacja pogodowa: 8 kroków (ze zdjęciami)

Wideo: Tweetująca stacja pogodowa: 8 kroków (ze zdjęciami)
Wideo: It is over! SpaceX Starship Updates, Falcon Heavy / Ariane 6 updates, Crew 3/2 delays 2024, Listopad
Anonim
Tweetująca stacja pogodowa
Tweetująca stacja pogodowa

Czy kiedykolwiek chciałeś monitorować aktualne warunki pogodowe, ślad węglowy, poziom hałasu i zanieczyszczenia w swoim mieście? Czy chcesz zostać krzyżowcem zmian klimatycznych lub założyć własną stację pogodową Tweeting i dzielić się lokalnymi warunkami pogodowymi ze światem?

Poznaj Tweeting Weather IoT Station aka TWIST - DIY, Open-Source platformę monitorowania środowiska i akwizycji danych meteorologicznych. Celem TWIST jest umożliwienie osobom i społecznościom gromadzenia danych o tym, co faktycznie dzieje się w ich środowisku i udostępniania tych danych w mediach społecznościowych, takich jak Twitter.

  • TWIST to platforma oparta na Internecie rzeczy (IoT).
  • Mózgiem TWIST jest Intel Edison Board.
  • TWIST jest kompatybilny z różnymi czujnikami.
  • Cały kod, pliki projektowe (schematy i układ PCB) są Open-Source. Oznacza to, że każdy może przyczynić się do rozwoju platformy TWIST, udostępniając kod i schematy dla różnych czujników.

TWIST składa się z trzech warstw technologicznych:

Pierwsza warstwa to płyta sprzętowa, która zawiera wszystkie czujniki pogodowe i środowiskowe znane jako „Płyta z czujnikami”. Jak sama nazwa wskazuje, posiada czujniki mierzące skład powietrza, temperaturę, wilgotność, deszcz. Można również dodać dodatkowe czujniki, takie jak aktywność sejsmiczna, wskaźnik UV, ciśnienie barometryczne, wysokość, luks (jasność), poziom dźwięku, prędkość i kierunek wiatru itp. Po skonfigurowaniu tablica czujników jest w stanie przesyłać dane zmierzone przez czujniki do drugiej warstwy. Druga warstwa to Intel Edison Board, która odbiera dane z płyty Sensor Board, przetwarza je i wysyła do następnej warstwy. Trzecia warstwa łączy tablicę Edisona z Internetem przez Wi-Fi za pomocą modułu bezprzewodowego na tablicy Edisona i warunków aktualnej pogody i środowiska w serwisie Tweet.

Zasilanie urządzenia może być zapewnione przez panel słoneczny lub zasilacz sieciowy.

Repozytoria kontrolowane przez wersję

Wszystkie trzy warstwy technologiczne TWIST są typu Open-Source, a zatem wszystkie pliki, których używamy do tworzenia kodu, opracowywania PCB, projektowania mechanicznego itp., są łatwo dostępne w naszym repozytorium Github.

Zgłoszenia konkursowe

Zaproszenie do Intel IoT

Chciałbym podziękować firmie Intel+Instructables za dostarczenie mi płyty Intel Edison Board. Planuję stworzyć o wiele więcej instrukcji związanych z IoT za pomocą tablicy Edisona.

#iotweatherstn

Jeśli tworzysz TWIST, nie zapomnij tweetować o pogodzie za pomocą #iotweatherstn. #iotweatherstn może być hashtagiem używanym przez wszystkie stacje pogodowe wykorzystujące tweet z technologią IoT.

Krok 1: Części i materiały

Części i materiały
Części i materiały
Części i materiały
Części i materiały
Części i materiały
Części i materiały

IlośćSzczegóły części 1

Intel Edison

z płytką zaciskową Arduino

1

Czujnik gazów palnych MQ2

1

YL-83

Czujnik deszczu

1

SL-HS-220

Czujnik temperatury i wilgotności

1

Rezystor

32K

4.7K

3 metalowe wsporniki 1 cal

1

Rezystor

32K

4.7K

2

Arkusz drewna A4 rozmiar

Można później przyciąć do rozmiaru

3

Uchwyt metalowy

1 cal

Krok 2: Projekt elektryczny

Moc

Cały system zasilany jest z zasilacza 5V 1A. Czujniki (temperatura, wilgotność, deszcz, gaz) pobierają około 200 mA, Edison około 500 mA. Ponieważ całkowity wymagany prąd jest mniejszy niż 1 amper, zasilanie o natężeniu 1 ampera powinno działać dobrze. Wbudowana zielona dioda LED na cyfrowym styku 13 płyty Edisona służy do pokazywania stanu zasilania.

ControlAn Intel Edison prowadzi program dla TWIST. Edison jest montowany na płytce zaciskowej Arduino, co ułatwia odczytywanie sygnałów cyfrowych i analogowych z czujników. Edison jest podłączony do szyny 5V za pomocą kabla micro USB. Edison ma wbudowane radio Wi-Fi, które pozwala mu łączyć się z Twitterem bez konieczności używania dodatkowego sprzętu.

Zegar czasu rzeczywistego (RTC)

Ponieważ oznaczanie czasu automatycznie wykonywane przez Twitter dla każdego tweeta ma rozdzielczość ograniczoną do łącznej liczby dni od momentu tweetowania, zegar czasu rzeczywistego służy do dokładnego oznaczania daty i godziny w polu Godzina-Minuta- Drugi format. Zegar czasu rzeczywistego zastosowany w platformie TWIST to moduł DS-1307 RTC.

Czujniki Najbardziej podstawowa konfiguracja tego systemu obejmuje cztery czujniki (temperatury, wilgotności, deszczu, gazu), które łączą się z Edisonem. Można dodać dodatkowe czujniki, takie jak hałas, wiatr itp. Każdy czujnik jest zasilany bezpośrednio z szyny 5 V i ma swój pin sygnałowy podłączony odpowiednio do pinów analogowych od A0 do A2 i pinu cyfrowego 2 na płytce zaciskowej Edisona. Każdy z czujników ma również potencjometr regulacji czułości zamontowany na każdej płytce czujnika; MQ-2 to czujnik gazów palnych (gazu płynnego, propanu, wodoru i metanu), który generuje napięcie analogowe proporcjonalne do stężenia gazów w częściach na milion. SL-HS-220 posiada termistor, który podaje wartość temperatury. Ponieważ wyjście termistora jest nieliniowe, odpowiednia tabela temperatur jest podana w repozytorium czujników. Termistor wymaga obwodu dzielnika napięcia po podłączeniu do płyty Edisona, jak pokazano na schemacie obwodu. SL-HS-220 ma również wbudowany higrometr, który mierzy wilgotność i wysyła napięcie analogowe odpowiadające stałej wartości wilgotności. Tabela wilgotnościowo-napięciowa jest również podana w repozytorium czujników. Częstym zamiennikiem SL-HS-220 jest czujnik DHT11. Czujnik deszczu/czujnik wody posiada potencjometr, który jest ustawiony tak, aby dawać cyfrowe wyjście dla określonej ilości deszczu, którego czułość może regulować użytkownik.

Stacja pogodowa.fzz

Krok 3: Konstrukcja mechaniczna

Korpus TWIST wykonany jest z dwóch płyt drewnianych arkuszy. Chociaż użyłem sklejki 1/4 , projekt można złożyć z dowolnego materiału arkuszowego, ponieważ odstęp (utrzymywany przez 1-calowe aluminiowe dystanse) jest jedynym krytycznym elementem. Powyżej załączam pliki wektorowe do pobrania.

Cięcie laserowe

Dla wszystkich, którzy chcą wyciąć laserowo dwie płyty, załączam pliki do wycinania laserowego do pobrania poniżej. W swojej konstrukcji zawiera również dodatkowy czujnik jakości powietrza. Możesz więc użyć modułu czujnika MQ2 lub modułu czujnika jakości powietrza, w zależności od wyboru.

Krok 4: Montaż ramy: twarz i podstawa

Przedni panel

Czujniki pasują do pasujących do nich otworów i wycięć i mogą być mocowane za pomocą śrub lub kleju.

Płyta podstawowa

Wsporniki płyty Edisona są przykręcone do płyty bazowej. Przetwornik analogowo-cyfrowy (ADC), który jest podłączony do czujnika deszczu, można również przykręcić do płyty bazowej.

Dodatkowe elementy, takie jak brzęczyki lub obwód regulatora napięcia dla wejścia słonecznego, można również przykręcić do płyty bazowej.

Baseplate i Faceplate są oddzielone 1 calowymi dystansami.

Krok 5: Zespół elektroniki i czujnika

Moc

Zasilanie systemu zapewnia adapter ścienny ze standardowym gniazdem baryłkowym, który jest podłączony bezpośrednio do złącza baryłkowego Edisona. System może być również zasilany przez port USB na płycie Edisona. Płytę można również zasilać z zewnętrznego panelu słonecznego.

Czujniki

Czujniki są przymocowane do płytek zaciskowych z męskimi złączami, dzięki czemu można je bezpośrednio podłączyć do Edisona za pomocą przewodów połączeniowych męsko-żeńskich.

Krok 6: Konfiguracja Twittera

Aby móc tweetować, korzystamy z aplikacji innej firmy opracowanej przez NeoCat, która pobiera token Twittera, który będziesz musiał tweetować za pomocą tablicy Edisona. Tokeny można również pozyskać ze strony deweloperów Twittera.

Aby rozpocząć, odwiedź stronę NeoCat, postępuj zgodnie z jego samouczkiem, aby uzyskać bibliotekę Twittera i token Twittera. Jak wspomniał NeoCat na swojej stronie, prosimy nie nadużywać usługi. Postaraj się, aby tweety były rzadkie. Jeśli potrzebujesz czegoś, co tweetuje co 6 sekund, powinieneś założyć własny serwer i aplikację do twittera i stąd kod, który napisałem zapewnia, że serwer NeoCat nie przeciąża się (twitty TWIST co 6 godzin).

Biblioteka wykorzystuje witrynę NeoCat jako serwer proxy dla rzeczy OAuth. Twój tweet może nie zostać zastosowany podczas konserwacji tej witryny NeoCat. Twitter wydaje się odrzucać powtarzające się tweety o tej samej treści (zwraca błąd 403).

Token na Twitterze

Biblioteka Tweetów Arduino

Krok 7: Oprogramowanie i konfiguracja

Postępuj zgodnie z przewodnikiem konfiguracji Intel Edsion przed rozpoczęciem kodowania.

Program jest szkicem Arduino działającym na Edisona. Poniżej wyjaśniłem każdy z głównych bloków kodu.

Kod zawiera pewne predefiniowane stałe, deklaracje pin i kilka instrukcji drukowania szeregowego, które pomagają w rozwiązywaniu problemów.

Opóźnienie tweeta

Ponieważ Twitter odfiltrowuje tweety, które mają tę samą treść i są tweetowane w krótkich odstępach czasu między każdym z nich, ustawiono standardowe 3-godzinne (10800000 milisekund) opóźnienie między każdym tweetem.

tweetWiadomość();

opóźnienie (10800000);

Typ odlewania

Wiele odczytów, które otrzymujemy z czujników, ma typ danych „int” lub „float”. Ale ponieważ publikujemy te wartości na Twitterze, musimy je przekonwertować na typ danych „String”. W tym celu stosujemy specjalną technikę Type-casting.

char *dtostrf (podwójna wartość, szerokość znaku ze znakiem, znak bez znaku prec, znak *sout) {

char fmt[100]; sprintf(fmt, "%%%d.%df", szerokość, prec); sprintf(sout, fmt, val); powrót sout; }

Token na Twitterze

Token Twittera jest tworzony na stronie NeoCat i należy go wkleić w pole tokena tutaj.

nieważne tweetMessage() {

Twitter twitter(" WPISZ TOKEN TWITTERA ");

Wartości czujnika tweetowania

Aby tweetować wartość czujnika, najpierw uwzględniamy typ czujnika; Przykład: „Wilgotność”. Następnie następuje deklaracja znaków i wiersz kodu wymagany do rzutowania typów. Następnie dodajemy oświadczenie o jednostce miary; Przykład: "%RH". W podobny sposób możemy dodawać wartości innych czujników.

wilgotność(); unosić się wilgotno;

//Wiadomość na Twitterze String stringMsg = "Wilgotność:"; char tmp[10]; dtosrf(wilgotny, 1, 2, tmp); stringMsg += tmp; stringMsg += "%RH";

Lokalizacja i oznaczanie stacji pogodowej

Następnie tagujemy lokalizację (Miasto, Miejscowość itp.) i inne tagi, takie jak #iotweatherstn.

stringMsg += " #Mumbai #Bandra #iotweatherstn ";

Zegar czasu rzeczywistego (RTC)

Jak wyjaśniono wcześniej, TWIST może również tweetować dane zegara czasu rzeczywistego. Poniżej znajduje się przykład bloku parametrów „dzień” kodu RTC. Funkcja zegara czasu rzeczywistego jest opcjonalna na platformie TWIST, ponieważ moduł jest dostarczany osobno. Stąd w repozytorium TWIST utworzona została osobna gałąź dla kodu i schematów gałęzi Real Time Clock.

TwistDateTime(); DataCzas teraz = rtc.now(); int twistday, twistmonth, twistyear, twisthour, twistmin, twistsec; Ciąg ciągMsg = ""; char ds1307day[10]; dtosrf(twistday, 1, 0ds1307day); ciągMsg += ds1307dzień; stringMsg += "/";

Limit 140 znaków

Ten blok kodu zamienia tablicę ciągów na tablicę 140 znaków gotową do tweetowania.

komunikat o znakach[140];

stringMsg.toCharArray(msg, 140);

Rozwiązywanie problemów z wiadomościami i połączeniem

Ten blok kodu drukuje kilka wierszy tekstu w Monitorze szeregowym, aby pomóc użytkownikowi sprawdzić wiadomość i status tweeta.

//Tweetuj tego frajera!

if (twitter.post(msg)) { int status = twitter.wait(); if (status == 200) { Serial.println("OK."); Serial.println("Wiadomość tweetowana"); } else { //Test połączenia Serial.print("nieudane: kod"); Serial.println("Wiadomość nie jest wysyłana na Twittera"); Serial.println(stan); } } else { Serial.println("połączenie nie powiodło się."); Serial.println("Wiadomość nie jest wysyłana na Twittera"); }

Wszystkie pozostałe bloki kodu po prostu przekształcają analogowy lub cyfrowy odczyt z czujników na użyteczne dane.

Kod można pobrać stąd lub z głównego repozytorium:

Stacja pogodowa.ino

Krok 8: Wnoszenie wkładu do repozytorium czujników

Jesteś programistą, inżynierem lub projektantem, który ma świetny pomysł na nową funkcję w TWIST? Może masz dobry pomysł na naprawę błędu? Zapraszam do pobrania naszego kodu, schematów i plików CAD z Github i majstrowania przy nim.

TWIST GitHub

Zaproszenie Intel® IoT
Zaproszenie Intel® IoT
Zaproszenie Intel® IoT
Zaproszenie Intel® IoT

Druga nagroda w konkursie Intel® IoT Invitational

Zalecana: