Spisu treści:

Zautomatyzowane zasłony domowe – mini projekt z modułem MakerChips BluChip (nRF51 BLE): 7 kroków (ze zdjęciami)
Zautomatyzowane zasłony domowe – mini projekt z modułem MakerChips BluChip (nRF51 BLE): 7 kroków (ze zdjęciami)

Wideo: Zautomatyzowane zasłony domowe – mini projekt z modułem MakerChips BluChip (nRF51 BLE): 7 kroków (ze zdjęciami)

Wideo: Zautomatyzowane zasłony domowe – mini projekt z modułem MakerChips BluChip (nRF51 BLE): 7 kroków (ze zdjęciami)
Wideo: A Wy na jakim etapie związku jesteście? 😂 #shorts 2024, Lipiec
Anonim
Zautomatyzowane zasłony domowe – mini projekt z modułem BluChip firmy MakerChips (nRF51 BLE)
Zautomatyzowane zasłony domowe – mini projekt z modułem BluChip firmy MakerChips (nRF51 BLE)

Wyobraź sobie, że budzisz się i chcesz wpuścić promień słońca przez okna lub zasuwasz zasłony, aby móc spać dalej, bez wysiłku zbliżania się do zasłon, ale za naciśnięciem jednego przycisku na smartfonie. Dzięki zautomatyzowanemu systemowi kurtyn domowych możesz to osiągnąć dzięki komponentom, które kosztują nie więcej niż 90 USD!

Zobacz ten samouczek na Github

Krok 1: Projekt

Projektowanie
Projektowanie

Sercem zautomatyzowanego systemu kurtyn domowych jest moduł BluChip firmy MakerChips.

BluChip to mały moduł Bluetooth 16,6 x 11,15 mm, który może służyć jako urządzenie peryferyjne do smartfonów za pośrednictwem BTLE.

Kliknij tutaj, aby zapoznać się z wprowadzeniem do technologii Bluetooth Low Energy (BTLE).

Moduł składa się z nRF51 SoC firmy Nordic Semiconductors, doskonałej platformy dla aplikacji BLE, ponieważ obsługuje wiele zintegrowanych funkcji zarówno w aplikacjach na Androida, jak i Apple.

Krok 2: Zestaw BluChip Explorer

Zestaw BluChip Explorer
Zestaw BluChip Explorer
Zestaw BluChip Explorer
Zestaw BluChip Explorer
Zestaw BluChip Explorer
Zestaw BluChip Explorer

Aby zbudować ten projekt, otrzymałem zestaw BluChip Explorer od MakerChips, który dotarł w 2 oddzielnych pudełkach, jednym dla programatora CMSIS-DAP i drugim pudełku zawierającym BluChip na płytce stykowej z 2 diodami LED RGB, fotorezystorem i baterią CR2032.

Jak zauważyłeś, moduł BluChip jest niezwykle mały, dzięki czemu idealnie nadaje się do małych, wbudowanych projektów Bluetooth o niskim poborze mocy. Mieści się na powierzchni zaledwie 6x4 nagłówków 0,1" na płytce prototypowej i ma dodatkowe nagłówki 0,05" na górze płytki, co jest imponujące jak na komercyjnie certyfikowany pakiet FCC!

Oto kilka kluczowych cech BluChip ze strony MakerChips:

  • 14 dostępnych pinów GPIO
  • 32-bitowy procesor ARM Cortex M0, 256KB flash i 32KB RAM
  • 16,6 mm x 11,15 mm Najmniejszy dostępny moduł Bluetooth® do wbudowania w chleb
  • Zasilanie obsługuje 1,8V - 3,6V
  • Funkcje Bluetooth

    • BTLE - Bluetooth Low Energy - (BLE, BT 4.1)
    • Bluetooth® i Japonia, FCC, certyfikat IC
    • Zintegrowany zegar systemowy 32 MHz
    • Moc wyjściowa: typowo + 4dBm
    • Częstotliwość: 2402 do 2480 MHz

      Zintegrowana antena wzorcowa o wysokiej wydajności

    • Jednomodowy Bluetooth® Smart Slave/Master
  • Obsługiwane interfejsy: SPI, UART, I2C i 8/9/10bit ADC
  • Dwa zestawy kołków do programowania
    • Złącza.05" do łatwego łączenia z urządzeniami CMSIS-DAP i J-Link
    • Nagłówki.1" do współpracy z płytkami stykowymi
  • Czerwona dioda LED sterowana programowo

Krok 3: Aplikacja NRF Connect

Image
Image
Aplikacja NRF Connect
Aplikacja NRF Connect
Aplikacja NRF Connect
Aplikacja NRF Connect

Gdy tylko otworzysz pudełko z eksploratorem BluChip, zobaczysz, że ożywa z migającymi diodami LED, całkiem fascynujący widok, prawda?

Aby zobaczyć, co jest w sklepie z tym modułem BLE, zainstalujmy aplikację nRF Connect z Google Play lub App Store.

Zamierzamy połączyć się z BluChip za pomocą naszego telefonu, więc otwórz aplikację nRF Connect, przejrzyj ekran powitalny i dotknij opcji Włącz, aby włączyć Bluetooth. Następnie dotknij Skanuj, a wkrótce odkryjesz, że Twoje urządzenie BluChip znajduje się na liście w zakładce Skaner.

Zanim faktycznie połączymy się z BluChip, weźmy diodę LED i umieśćmy ją na płytce stykowej obok pinów 026(+ve) i 021(-ve). Dioda LED powinna natychmiast się zaświecić, ponieważ pin 026 wyprowadza 3,3 V (poziom logiczny WYSOKI), podczas gdy pin 021 jest NISKI (uziemienie).

Śmiało i dotknij połącz, aby nawiązać połączenie między smartfonem a BluChip, które następnie przeniesie Cię do zakładki klienta urządzenia w aplikacji.

Karta klienta BluChip wyświetla wszystkie usługi dostępne na Twoim urządzeniu. Interesuje nas tutaj usługa BlueChip GPIO (wymieniona jako nieznana usługa). Stuknij w nią, a następnie stuknij w strzałkę skierowaną w górę obok charakterystyki modulacji GPIO (wymienionej jako nieznana charakterystyka).

Pojawi się wyskakujące okienko wartości zapisu, dające możliwość wysłania danych do urządzenia BluChip. W naszym przypadku chcemy wyłączyć diodę, więc dotknij strzałki obok TABLICA bajtów i zmień format danych na UINT 8. Jako pierwszą wartość wyślemy numer pinu, więc wpisz 21 dla pin021. Stuknij w dodaj wartość, aby wysłać kolejną porcję danych, których stan ma być ustawiony pin (format hex BYTE). Aby wyłączyć diodę LED, ustawimy pin 021 na 3,3 V (wysoki poziom logiczny), więc wpisz 01, a następnie dotknij Wyślij.

Dioda LED natychmiast się wyłącza! Aby ponownie włączyć diodę LED, wyślij wartość 0x00 (poziom logiczny LOW) do pin021. Jak widać poniżej wymienionej charakterystyki, wyświetlana jest wysłana wartość (0x) 15-01. {[(dziesiętny UINT8) 21 = (hex BYTE) 0x15] + (hex BYTE) 0x01 => (hex BYTEs) 0x1501 }

Jeśli wybierzesz zapisz te wartości w wyskakującym okienku Zapisz wartość, nadając mu nazwę, a następnie stukając Zapisz, możesz je załadować w przyszłości jako ustawienia wstępne w celu łatwej modulacji GPIO!

Krok 4: Programowanie BluChip

Programowanie BluChip
Programowanie BluChip
Programowanie BluChip
Programowanie BluChip
Programowanie BluChip
Programowanie BluChip

Na powyższym filmie zauważyłeś, że nazwa urządzenia BluChip na moim telefonie różni się od Twojej, więc jak możemy zmienić ją według własnych upodobań?

Oprogramowanie układowe aplikacji działające na BluChip służy jako urządzenie peryferyjne (slave) przez BLE do urządzeń centralnych (master), takich jak podłączone do niego smartfony. Aby zmienić nazwę naszego urządzenia, przejdźmy do flashowania oprogramowania aplikacji na naszym BluChip.

Do zestawu BluChip Explorer dołączony jest programator ARM (CMSIS-DAP). MakerChips dostarczył zgrabny przewodnik dotyczący szczegółów flashowania oprogramowania układowego na BluChip za pomocą CMSIS-DAP.

Aby skompilować oprogramowanie układowe do pliku szesnastkowego i sflashować je, będziemy potrzebować Keila, zestawu programistycznego nRF51 (SDK) i oprogramowania układowego BluChip. Śmiało i pobierz je z linków w sekcji „Oprogramowanie” na stronie Programowanie BluChip firmy MakerChips za pomocą CMSIS-DAP i strony Keil.

Zainstaluj Keil, a następnie wykonaj kroki 1-3 w sekcji „Tworzenie pliku szesnastkowego”.

W tym momencie możesz przejść do kroku 4, Odbudowa wszystkich plików docelowych.

Jeśli pojawi się błąd dotyczący "core_cm0.h", musisz dodać jego ścieżkę do projektu, aby go skompilować.

Po prostu musielibyśmy poszukać pliku i zlokalizować jego katalog, czyli „\components\toolchain\gcc”.

Dołączmy tę ścieżkę do naszego projektu. Kliknij Options for Target, przejdź do zakładki C/C++, a następnie dołącz ścieżkę, jak pokazano na rysunku 16.

Po uwzględnieniu niezbędnych zależności, nasz projekt się kompiluje i możemy teraz wyświetlić skompilowany plik wyjściowy, niestandardowy plik szesnastkowy pod adresem "nRF51_SDK_10.0.0_dc26b5e\examples\ble_peripheral\ble_app_ahc-master\bluchip\s110_with_dfu\arm4\_buildnrf51422_xxac_s110.hex".

Aby przesłać plik szesnastkowy na BluChip, wykonaj kroki 1-8 w sekcji „Przenoszenie pliku szesnastkowego”.

Po załadowaniu oprogramowania układowego do BluChip z niestandardową nazwą urządzenia, uruchom aplikację nRF Connect i zeskanuj urządzenie. Zauważysz, że jest teraz nazwany tak, jak zdefiniowałeś w DEVICE_NAME w oprogramowaniu!

W następnym kroku zaczniemy konfigurować sprzęt, elektronikę i oprogramowanie naszego zautomatyzowanego systemu kurtyn domowych.

Krok 5: Budowanie automatycznych zasłon

Image
Image
Budowanie automatycznych zasłon
Budowanie automatycznych zasłon
Budowanie automatycznych zasłon
Budowanie automatycznych zasłon
Budowanie automatycznych zasłon
Budowanie automatycznych zasłon

Po zapoznaniu się z procesem kompilowania i flashowania naszego oprogramowania, przejdźmy do budowania naszych własnych zasłon Bluetooth!

Do napędu paska rozrządu używany będzie silnik krokowy, który otwiera i zamyka zasłony. Silnik krokowy jest napędzany przez układ scalony sterownika Half-H, który będzie kontrolowany przez BluChip.

Do zasilania użyjemy regulatora napięcia 12 V AC-DC, który jest podawany do silnika, wraz z regulatorem napięcia LM317 DC-DC, aby obniżyć napięcie 12 V do 3,3 V, który zasili BluChip i układ scalony sterownika krokowego.

Możesz dostać swój własny moduł BluChip z zupełnie nowego sklepu MakerChips na Tindie lub ze strony MakerChips.

Zdobądźmy wymienione poniżej części oprócz zestawu BluChip Explorer Kit, aby rozpocząć montaż automatycznych zasłon:

  • Zasilacz 12 V 1 A 3,40 USD
  • Jack Barrel $0.68
  • Regulator napięcia LM317T $0.80
  • Rezystory (200 i 330 omów) $1.69
  • Sterownik krokowy L293D $1,63
  • Jednobiegunowy silnik krokowy 8,00 USD (lub 1,66 USD <= zmodyfikuj ten mniejszy jednobiegunowy w dwubiegunowy silnik krokowy)
  • Pasek rozrządu 6mm $7.31
  • Przekładnia 6 mm 0,54 USD (lub do druku 3D z Thingiverse)
  • Koło pasowe 6 mm 1,17 USD (lub do druku 3D z Thingiverse)
  • Wyłącznik krańcowy x2 (opcjonalnie) 1,34 USD
  • Obudowa projektu (opcjonalnie) 1,06 USD
  • Przewody do krojenia chleba $2.09
  • Przewody połączeniowe Dupont 2,80 USD
  • Gumki $1.13
  • Twist krawaty $3,22
  • Przewód 22 AWG (opcjonalnie) 1,22 USD
  • Opaski na suwak (opcjonalnie) 0,63 USD
  • Rurka termokurczliwa (opcjonalnie) 1,97 USD

Narzędzia (opcjonalnie):

  • Pistolet do klejenia na gorąco $3,75
  • Lutownica $6,79

Pobierz zestawienie materiałów z GitHub (Amazon)

Rysunek 20 pokazuje, jak zamierzasz okablować system, w zależności od tego, jakie funkcje wybierzesz. Jeśli chcesz bardziej precyzyjny ruch, możesz dodać wyłączniki krańcowe do projektu.

Wyłączniki krańcowe to punkty końcowe kurtyn, które informują BluChip, kiedy jest otwarty lub zamknięty. Bez wyłączników krańcowych musiałbyś skonfigurować oprogramowanie układowe, aby wskazać, jak daleko przesuwają się twoje zasłony w nadchodzącej sekcji „Konfiguracja oprogramowania układowego”.

Rysunek 20 zawiera również opcjonalny fotorezystor umożliwiający detekcję w dzień iw nocy, również konfigurowalny w sekcji „Konfiguracja oprogramowania układowego”.

Rozpocznij montaż sprzętu, montując silnik krokowy, koło pasowe i pasek rozrządu na górze zasłon. (Rysunek 21)

Tymczasowo napnij pasek rozrządu gumką. Później, przed ukończeniem projektu, zwiążesz go suwakiem, aby trwale go utrzymać.

Aby przymocować zasłony do paska rozrządu, owiń opaski zaciskowe wokół paska i haczyka na zasłony.

Aby uzyskać lepszy pomysł na zaczepienie zasłon do paska, postępuj zgodnie z rysunkiem 22. Lewą zasłonę przywiążesz do tyłu paska rozrządu za pomocą drucika, a prawą zasłonę do przedniej części paska rozrządu z opaską drucianą.

Po zabezpieczeniu pasa i zawiązaniu kurtyny, wyjmij silnik krokowy, abyśmy mogli rozpocząć montaż i przetestowanie obwodu elektronicznego, który będzie go napędzał. Rozpocznij budowę elektroniki, umieszczając regulator napięcia Bluchip, L293d IC i LM317t na płytce stykowej zgodnie z do Rysunku 20.

Włóż rezystory 200 i 330 omów zgodnie z rysunkiem 20. Rezystory dostosowują wyjście LM317 tak, aby dostarczało ~3,3V. (Rysunek 24)

Włóż przewód połączeniowy, a następnie przewodowy jack baryłkowy, jak pokazano na rysunku 26.

Podłączmy nasz zasilacz do gniazdka ściennego i podłączmy zasilacz do gniazda w lufie, aby przetestować napięcia, jak pokazano na rysunku 27.

Po ustaleniu prawidłowego napięcia odłącz gniazdo zasilania i zacznij umieszczać pozostałe przewody połączeniowe płytki stykowej zgodnie z rysunkiem 20.

Następnie podłączymy nasz bipolarny silnik krokowy do układu scalonego L293d.

Najpierw umieść przewody połączeniowe Dupont w złączu silnika krokowego, jak pokazano na rysunku 29.

Aby dowiedzieć się, który przewód idzie gdzie, postępuj zgodnie ze schematem na rysunku 30.

Jak widać na schemacie, przewody z jednej cewki biegną do Pin2 i Pin6 L293D. Wyprowadzenia z drugiej cewki trafiają do Pin11 i Pin14.

Zmodyfikowany bipolarny silnik krokowy 28BYJ-48 ma cztery użyteczne kolorowe przewody, jak pokazano na rysunku 31.

Podłączamy niebieski do Pin3, żółty do Pin6, pomarańczowy do Pin11 i różowy do Pin14 w L293d.

Podstawowe obwody są już gotowe!

Jeśli chcesz zaimplementować wyłączniki krańcowe, podłącz przewody NO i C do jakiegoś przewodu 22AWG. Na drugim końcu załóż zworki DuPont, aby uformować przewody pasujące do płytki stykowej. (Rysunek 32)

Możesz zamontować je na karniszu, jak pokazano na rysunku 33, za pomocą gumek lub jeśli masz pod ręką pistolet do gorącego kleju, możesz zapiąć go do szyny, a następnie nałożyć sporą ilość gorącego kleju, aby się nie poruszył na około.

Aby zorientować się, gdzie je umieścić, zobacz Rysunek 34.

Jeden wyłącznik krańcowy jest przymocowany do skrajnego lewego końca szyny zasłony, pomiędzy pierwszym hakiem szyny a drugim, tak że kiedy zasłony się otwierają, hak naciska na przełącznik i aktywuje go. Drugi wyłącznik krańcowy jest umieszczony bezpośrednio na środku szyny, zwrócony w lewo. W ten sposób aktywuje się, gdy zasłony się zamkną.

Włóż przewody wyłącznika krańcowego do płytki stykowej zgodnie z rysunkiem 20.

Wreszcie, jeśli chcesz, aby zasłony otwierały się, gdy słońce wschodzi i zamykają się, gdy zachodzi, musisz podłączyć fotorezystor, jak pokazano na ryc. 36, i ustawić go blisko miejsca, w którym ma dostęp do światła słonecznego o świcie.

Po zakończeniu konfiguracji obwodu płytki stykowej przygotuj się i podłącz programator do BluChip, aby sflashować oprogramowanie układowe. Pobierz oprogramowanie układowe z GitHub i rozpakuj je do katalogu SDK, tak jak wcześniej.

Pobierz ble_app_ahc.zip z Github.

Otwórz projekt, a następnie skompiluj i prześlij oprogramowanie do BluChip.

Przed przetestowaniem zamkniemy płytkę stykową w pudełku i zrobimy otwory na przewody i diodę LED stanu kurtyny.

Umieść płytkę stykową na podstawie puszki obudowy i wykonaj otwór na przewody. Otwór służy również jako punkt, w którym BluChip może komunikować się z innymi urządzeniami za pośrednictwem anteny. (Rysunek 37)

Wywierć otwór wielkości diody z boku obudowy i zamontuj na nim diodę LED. Podłącz diodę LED zgodnie z rysunkiem 20.

Znajdź odpowiednie miejsce do zamontowania obudowy po lewej stronie karnisza, blisko gniazdka elektrycznego. Zamontuj silnik i wykonaj ostatni test napięcia paska rozrządu, upewniając się, że nie ma luzu. (Rysunek 39)

Teraz nadszedł czas na przetestowanie naszego zmontowanego systemu. Podłącz zasilacz i uruchom aplikację nRF Connect. Odkryjesz urządzenie o nazwie Curtains. BluChip.

Połącz się z nim, wyślij wartość UINT8 1 (otwarte zasłony) do nieznanej charakterystyki w ramach usługi nieznanej i obserwuj, jak zasłony się otwierają!

Teraz, gdy pomyślnie przetestowałeś swój system, przyjrzyjmy się konfiguracji kodu, który uruchamia program na BluChip.

Krok 6: Konfiguracja oprogramowania sprzętowego BluChip

Konfiguracja oprogramowania sprzętowego BluChip
Konfiguracja oprogramowania sprzętowego BluChip
Konfiguracja oprogramowania sprzętowego BluChip
Konfiguracja oprogramowania sprzętowego BluChip
Konfiguracja oprogramowania sprzętowego BluChip
Konfiguracja oprogramowania sprzętowego BluChip

Projekt oprogramowania układowego automatycznej kurtyny domowej składa się głównie z 4 plików: main.c, ahc.c, ble_ahc_service.c i ble_ahc_service.h.

Budując elektronikę i sprzęt, mieliśmy możliwość wyboru, czy chcemy, aby wyłączniki krańcowe zwiększały dokładność naszego zautomatyzowanego systemu.

W kodzie z ahc.h widzimy #define dla LIMIT_SWITCHES.

Kompilacja i flashowanie kodu za pomocą #define LIMIT_SWITCHES umożliwia użycie obu wyłączników krańcowych do wykrywania otwarcia i zamknięcia kurtyn.

Zmiana nazwy na #undef LIMIT_SWITCHES jest konieczna, jeśli zdecydowałeś się nie uwzględniać wyłączników krańcowych w swoim projekcie. W takim przypadku należałoby dostroić odległość, na jaką pokonuje kurtyna w zmiennych CURTAIN_OPEN_STEPS i CURTAIN_CLOSE_STEPS. Dostosuj te wartości, aby wydłużyć lub skrócić odległość przesuwu kurtyny.

Drugą opcję, dodanie fotorezystora, można włączyć, modyfikując #undef LDR na #define LDR. LDR oznacza rezystor zależny od światła, znany również jako fotorezystor. Gdy włączymy LDR, fotorezystor wie, kiedy na zewnątrz jest jasno, a kiedy ciemno, i pomaga zamykać lub otwierać zasłony na początku lub na końcu dnia.

Poza konfiguracją wyłączników krańcowych i fotorezystora, przyjrzyjmy się innym głównym blokom kodu, które pozwalają automatycznie otwierać i zamykać zasłony.

Pliki ble_ahc_service.c i ble_ahc_service.h zawierają kod, który przesyła dane z telefonu do BluChip.

Gdy BluChip otrzyma dane, analizuje je w zależności od tego, czy zostanie wysłane 0 czy 1. Następnie aktywuje diodę LED statusu, wykonuje ruch silnika, a następnie dezaktywuje diodę sygnalizującą zakończenie.

Funkcja ahc_init() z ahc.h jest uruchamiana na początku głównej pętli, inicjując wszystkie piny na BluChip.

Krok 7: Podsumowanie

Podsumowując, był to niezwykle zabawny i dość łatwy projekt, aby nauczyć się podstaw BLE. Fakt, że moduł rozbijający BluChip jest dobrze dopasowany do płytki prototypowej, sprawia, że bardzo łatwo jest szybko prototypować na dowolnej płytce prototypowej, którą możesz mieć.

Powiedziałbym, że po zbudowaniu automatycznych zasłon myślałem już o różnych innych rzeczach, z którymi można podłączyć BluChip, w tym o inteligentnych neopikselach, OLED do tworzenia cyfrowego zegarka, robocie sterowanym smartfonem i wielu innych projektach elektronicznych o niskim poborze mocy pomysły, które wymagałyby kompaktowej komunikacji bezprzewodowej!

Każdy, kto interesuje się elektroniką i programowaniem, byłby mile zaskoczony tym, co oferuje BluChip, a także wygodą konfiguracji i wdrażania BLE, aby zmienić projekty w jeszcze fajniejsze.

Od teraz wrócę do korzystania z moich poręcznych automatycznych zasłon domowych..

Zalecana: