Inhoudsopgave:

Geautomatiseerde huisgordijnen - Miniproject met de BluChip-module (nRF51 BLE) van MakerChips - Ajarnpa
Geautomatiseerde huisgordijnen - Miniproject met de BluChip-module (nRF51 BLE) van MakerChips - Ajarnpa

Video: Geautomatiseerde huisgordijnen - Miniproject met de BluChip-module (nRF51 BLE) van MakerChips - Ajarnpa

Video: Geautomatiseerde huisgordijnen - Miniproject met de BluChip-module (nRF51 BLE) van MakerChips - Ajarnpa
Video: Original Prusa MINI is here: Smart and compact 3D printer for everyone! 2024, Juli-
Anonim
Geautomatiseerde huisgordijnen - Miniproject met de BluChip (nRF51 BLE) -module van MakerChips
Geautomatiseerde huisgordijnen - Miniproject met de BluChip (nRF51 BLE) -module van MakerChips

Stel je voor dat je wakker wordt en een zonnestraal door je ramen wilt hebben, of de gordijnen wilt sluiten zodat je verder kunt uitslapen, zonder de moeite om dicht bij de gordijnen te komen, maar met een druk op een knop op je smartphone. Met het Automated Home Curtain-systeem bereikt u dit met componenten die niet meer dan $ 90 kosten!

Bekijk deze tutorial op Github

Stap 1: Het ontwerp

Het ontwerp
Het ontwerp

Het hart van het Automated Home Curtain-systeem wordt gevormd door de BluChip-module van MakerChips.

De BluChip is een kleine Bluetooth-module van 16,6 x 11,15 mm die via BTLE als randapparaat voor smartphones kan dienen.

Klik hier voor een inleiding tot Bluetooth Low Energy (BTLE).

De module bestaat uit een nRF51 SoC van Nordic Semiconductors, een geweldig platform voor BLE-applicaties omdat het veel geïntegreerde functies op zowel Android- als Apple-apps ondersteunt.

Stap 2: BluChip Explorer-kit

BluChip Explorer-kit
BluChip Explorer-kit
BluChip Explorer-kit
BluChip Explorer-kit
BluChip Explorer-kit
BluChip Explorer-kit

Om dit project te bouwen, kreeg ik de BluChip Explorer Kit van MakerChips die in 2 afzonderlijke dozen arriveerde, een voor de CMSIS-DAP-programmeur en een andere doos met de BluChip op een breadboard met 2 RGB-LED's, een fotoweerstand en een CR2032-batterij.

Zoals je hebt gemerkt, is de BluChip-module extreem klein, waardoor hij perfect is voor kleine ingebouwde Bluetooth-projecten met laag vermogen. Het past op een voetafdruk van slechts 6x4 0.1" headers op een breadboard en heeft extra 0.05" headers op de bovenkant van het bord, behoorlijk indrukwekkend voor een commercieel FCC-gecertificeerd pakket!

Hier zijn enkele belangrijke kenmerken van de BluChip van de MakerChips-website:

  • 14 toegankelijke GPIO-pinnen
  • ARM Cortex M0 32-bits processor en 256 KB flash en 32 KB RAM
  • 16,6 mm x 11,15 mm Kleinste breadboardbare Bluetooth®-module beschikbaar
  • Voeding ondersteunt 1.8V - 3.6V
  • Bluetooth-functies

    • BTLE - Bluetooth Low Energy - (BLE, BT 4.1)
    • Bluetooth® en Japan, FCC, IC gekwalificeerd
    • Geïntegreerde 32 Mhz-systeemklok
    • Uitgangsvermogen: +4dBm typisch
    • Frequentie: 2402 tot 2480 MHz

      Geïntegreerde hoogwaardige patroonantenne

    • Single Mode Bluetooth® Smart Slave/Master
  • Ondersteunde interfaces: SPI, UART, I2C en 8/9/10bit ADC
  • Twee sets programmeerpinnen

    • .05" headers voor eenvoudige koppeling aan CMSIS-DAP- en J-Link-apparaten
    • .1" headers voor interface met breadboards
  • Software bestuurbare rode LED

Stap 3: NRF Connect-app

Image
Image
NRF Connect-app
NRF Connect-app
NRF Connect-app
NRF Connect-app

Zodra je de BluChip explorer-box openklapt, zie je hem tot leven komen met knipperende LED's, best een fascinerend gezicht, nietwaar?

Laten we, om te zien wat deze BLE-module in petto heeft, doorgaan en de nRF Connect-app installeren vanuit Google Play of App Store.

We gaan met onze telefoon verbinding maken met de BluChip, dus open de nRF Connect-app, blader door het welkomstscherm en tik op Inschakelen om Bluetooth in te schakelen. Tik vervolgens op Scannen en u zult snel ontdekken dat uw BluChip-apparaat wordt vermeld onder het tabblad Scanner.

Voordat we daadwerkelijk verbinding maken met de BluChip, laten we een LED nemen en deze op het breadboard plaatsen naast pinnen 026 (+ ve) en 021 (-ve). De LED moet onmiddellijk oplichten omdat pin 026 3,3V uitvoert (logisch niveau HOOG), terwijl pin 021 logisch LAAG is (aarde).

Ga je gang en tik op verbinden om een verbinding tot stand te brengen tussen je smartphone en de BluChip, die je vervolgens naar het client-tabblad van het apparaat in de app brengt.

Op het tabblad BluChip-client worden alle services weergegeven die op uw apparaat beschikbaar zijn. Waar we hier in geïnteresseerd zijn, is de BlueChip GPIO-service (vermeld als onbekende service). Tik erop en tik vervolgens op de naar boven wijzende pijl naast het GPIO-modulatiekenmerk (vermeld als onbekend kenmerk).

Er verschijnt een pop-up met schrijfwaarde, waarmee u gegevens naar uw BluChip-apparaat kunt verzenden. In ons geval willen we de LED uitschakelen, dus tik op de pijl naast BYTE ARRAY en verander het gegevensformaat in UINT 8. We sturen het pinnummer als de eerste waarde, dus voer 21 in voor pin021. Tik op waarde toevoegen om het volgende stuk gegevens te verzenden, waarvan de status moet worden ingesteld (hex BYTE-formaat). Om de LED uit te schakelen, stellen we pin 021 in op 3,3V (logisch niveau hoog), dus voer 01 in en tik vervolgens op Verzenden.

De LED gaat onmiddellijk uit! Om de LED weer aan te zetten, stuurt u een waarde van 0x00 (logisch niveau LAAG) naar pin021. Zoals te zien is onder het vermelde kenmerk, wordt de verzonden waarde van (0x) 15-01 weergegeven. {[(decimaal UINT8) 21 = (hex BYTE) 0x15] + (hex BYTE) 0x01 => (hex BYTE's) 0x1501 }

Als u ervoor kiest deze waarden op te slaan in het pop-upvenster Waarde schrijven door het een naam te geven en vervolgens op opslaan te tikken, kunt u ze in de toekomst laden als presets voor eenvoudige GPIO-modulatie!

Stap 4: Programmeren van de BluChip

Programmeren van de BluChip
Programmeren van de BluChip
Programmeren van de BluChip
Programmeren van de BluChip
Programmeren van de BluChip
Programmeren van de BluChip

Je zou uit de bovenstaande video hebben opgemerkt dat de BluChip-apparaatnaam op mijn telefoon anders is dan die van jou, dus hoe kunnen we deze naar onze eigen smaak veranderen?

De applicatie-firmware die op de BluChip draait, dient als een randapparaat (slave) via BLE naar centrale apparaten (master) zoals smartphones die erop zijn aangesloten. Om de naam van ons apparaat te wijzigen, gaan we dieper in op het flashen van applicatiefirmware op onze BluChip.

Inbegrepen bij de BluChip Explorer kit is de ARM Programmer (CMSIS-DAP). MakerChips heeft een nette How-To-gids verstrekt over de details van het flashen van firmware op de BluChip met de CMSIS-DAP.

Om firmware in een hex-bestand te compileren en te flashen, hebben we Keil, nRF51 Software Development Kit (SDK) en BluChip-firmware nodig. Ga je gang en download ze via de links in het gedeelte "De software" op de MakerChips' Programmering van de BluChip met CMSIS-DAP en Keil-pagina.

Installeer Keil en volg stap 1-3 in het gedeelte "Het Hex-bestand maken".

Op dit punt kunt u doorgaan naar stap 4, Alle doelbestanden opnieuw opbouwen.

Als u een foutmelding krijgt met betrekking tot "core_cm0.h", moet u het pad naar het project toevoegen om het te compileren.

We zouden gewoon naar het bestand moeten zoeken en de directory ervan moeten vinden, namelijk "\components\toolchain\gcc".

Laten we dit pad opnemen in ons project. Klik op Opties voor doel, ga naar het tabblad C/C++ en voeg het pad toe zoals weergegeven in Afbeelding 16.

Nadat de nodige afhankelijkheden zijn opgenomen, wordt ons project gecompileerd en kunnen we nu de gecompileerde uitvoer bekijken, een aangepast hex-bestand op "nRF51_SDK_10.0.0_dc26b5e\examples\ble_peripheral\ble_app_ahc-master\bluchip\s110_with_dfu\arm4\_buildnrf51422_xxac_s110.hex".

Om het hex-bestand op de BluChip te flashen, volgt u de stappen 1-8 in het gedeelte "Het Hex-bestand overdragen".

Nu u firmware op de BluChip hebt geladen met een aangepaste apparaatnaam, start u de nRF Connect-app en scant u naar uw apparaat. Je zult merken dat het nu vernoemd is naar wat je hebt gedefinieerd in DEVICE_NAME in de firmware!

In de volgende stap beginnen we met het opzetten van de hardware, elektronica en software van ons geautomatiseerde huisgordijnsysteem.

Stap 5: De geautomatiseerde gordijnen bouwen

Image
Image
De geautomatiseerde gordijnen bouwen
De geautomatiseerde gordijnen bouwen
De geautomatiseerde gordijnen bouwen
De geautomatiseerde gordijnen bouwen
De geautomatiseerde gordijnen bouwen
De geautomatiseerde gordijnen bouwen

Nadat we het proces van het compileren en flashen van onze firmware hebben bekeken, gaan we verder met het bouwen van onze eigen bluetooth-gordijnen!

Een stappenmotor zal worden gebruikt om een distributieriem aan te drijven die de gordijnen open en dicht beweegt. De stappenmotor wordt aangedreven door een Half-H driver IC die wordt aangestuurd door de BluChip.

Voor voeding gebruiken we een 12V AC-DC-spanningsregelaar die naar de motor wordt gevoerd, samen met een LM317 DC-DC-spanningsregelaar om 12V naar 3,3V te verlagen, die de BluChip en Stepper Driver IC van stroom zal voorzien.

U kunt uw eigen BluChip-module verkrijgen in de gloednieuwe winkel van MakerChips bij Tindie, of van de MakerChips-website.

Laten we naast de BluChip Explorer Kit de onderstaande onderdelen aanschaffen om te beginnen met het monteren van de automatische gordijnen:

  • 12V 1A voedingsadapter $ 3,40
  • Barrel Jack $ 0,68
  • LM317T Spanningsregelaar $ 0,80
  • Weerstanden (200 & 330 Ohm) $1.69
  • L293D Stepper-stuurprogramma $ 1,63
  • Unipolaire stappenmotor $ 8,00 (of $ 1,66 <= verander deze kleinere unipolaire in een bipolaire stepper)
  • 6 mm distributieriem $ 7,31
  • 6 mm versnelling $ 0,54 (of 3D-afdrukbaar vanuit Thingiverse)
  • 6 mm katrol $ 1,17 (of 3D-afdrukbaar vanuit Thingiverse)
  • Limietschakelaar x2 (optioneel) $ 1,34
  • Projectbehuizingsdoos (optioneel) $ 1,06
  • Breadboard Jumper-draden $ 2,09
  • Dupont Jumper-draden $ 2,80
  • Elastiekjes $ 1,13
  • Twist stropdassen $3,22
  • 22 AWG-draad (optioneel) $ 1,22"
  • Ritssluitingen (optioneel) $ 0,63
  • Krimpkous (optioneel) $ 1,97

Gereedschap (optioneel):

  • Heet lijmpistool $ 3,75
  • Soldeerbout $ 6,79

Stuklijst downloaden van GitHub (Amazon)

Afbeelding 20 laat zien hoe u het systeem gaat aansluiten, afhankelijk van de functies die u wilt toevoegen. Als u preciezere bewegingen wilt, voegt u eindschakelaars toe aan het project.

Eindschakelaars zijn eindpunten voor de gordijnen die de BluChip vertellen wanneer deze wordt geopend of gesloten. Zonder de limietschakelaars zou u de firmware moeten configureren om aan te geven hoe ver uw gordijnen bewegen in het komende gedeelte "Firmwareconfiguratie".

Afbeelding 20 bevat ook een optionele fotoweerstand die dag- en nachtdetectie mogelijk maakt, ook configureerbaar in de sectie "Firmwareconfiguratie".

Begin met de montage van de hardware door de stappenmotor, katrol en distributieriem aan de bovenkant van uw gordijnen te monteren. (Figuur 21)

Span de distributieriem tijdelijk met een rubberen band. Later, voordat u het project voltooit, gaat u het aan elkaar binden om het permanent vast te houden.

Om de gordijnen aan uw distributieriem te bevestigen, lus je Wire Ties rond de riem en gordijnhaak.

Om een beter idee te krijgen over hoe de gordijnen aan de riem moeten worden vastgemaakt, volg je figuur 22. Je gaat het linker gordijn aan de achterkant van de distributieriem vastbinden met een draadband, en het rechter gordijn aan de voorkant van de distributieriem met een draadband.

Zodra u de riem hebt vastgemaakt en het gordijn hebt vastgemaakt, verwijdert u de stappenmotor zodat we kunnen beginnen met het monteren en testen van het elektronische circuit dat het zal aandrijven. Begin met het bouwen van de elektronica door de Bluchip, L293d IC en LM317t spanningsregelaar op het breadboard te plaatsen volgens naar figuur 20.

Plaats de 200 & 330 ohm weerstanden volgens figuur 20. De weerstanden passen de output van de LM317 aan zodat deze ~3,3V levert. (Figuur 24)

Steek de jumperdraad in en vervolgens een bedrade cilinderaansluiting zoals weergegeven in Afbeelding 26.

Laten we onze voedingsadapter in het stopcontact steken en de adapter in de cilinderaansluiting steken om de spanningen te testen, zoals te zien is in Afbeelding 27.

Zodra de juiste spanningen zijn vastgesteld, verwijdert u de stroomaansluiting en begint u met het plaatsen van de resterende breadboard-jumperdraden volgens afbeelding 20.

Vervolgens gaan we onze bipolaire stappenmotor aansluiten op de L293d IC.

Plaats eerst de jumperdraden van Dupont in de stappenmotorconnector zoals weergegeven in Afbeelding 29.

Volg het schema in Afbeelding 30 om te weten welke draad waarheen gaat.

Zoals te zien is in het schema, gaan de draden van één spoel naar Pin2 & Pin6 van de L293D. De draden van de andere spoel gaan naar Pin11 & Pin14.

De gemodificeerde 28BYJ-48 bipolaire stappenmotor heeft vier bruikbare gekleurde draden, zoals te zien is in Afbeelding 31.

We verbinden blauw naar Pin3, geel naar Pin6, oranje naar Pin11 en roze naar Pin14 op de L293d.

De basisschakeling is nu voltooid!

Als u eindschakelaars wilt implementeren, sluit u de NO & C-kabels aan op een 22AWG-draad. Bevestig aan het andere uiteinde DuPont-jumpers om kabels te vormen die op het breadboard passen. (Afbeelding 32)

Je kunt ze met elastiekjes op de gordijnrail monteren, zoals weergegeven in figuur 33, of als je een heet lijmpistool bij de hand hebt, kun je deze met een ritssluiting aan de rail vastmaken en vervolgens een flinke hoeveelheid hete lijm deppen om ervoor te zorgen dat hij niet verschuift in de omgeving van.

Raadpleeg Afbeelding 34 om een idee te krijgen van waar u ze moet plaatsen.

Een eindschakelaar is bevestigd aan het uiterst linkse uiteinde van de gordijnrail, tussen de eerste railhaak en de tweede, zodat wanneer de gordijnen opengaan, de haak tegen de schakelaar drukt en deze activeert. De andere eindschakelaar wordt direct in het midden van de rail geplaatst, naar links gericht. Op deze manier wordt het geactiveerd wanneer de gordijnen sluiten.

Steek de kabels van de eindschakelaar in het breadboard volgens afbeelding 20.

Tot slot, als u wilt dat uw gordijnen opengaan wanneer de zon opkomt en sluiten wanneer deze ondergaat, moet u de fotoweerstand aansluiten zoals weergegeven in AFBEELDING 36, en deze dichtbij plaatsen waar het toegang heeft tot zonlicht tijdens het ochtendgloren.

Nadat u klaar bent met het instellen van het breadboard-circuit, maakt u zich klaar en sluit u uw programmeur aan op de BluChip om de firmware te flashen. Download de firmware van GitHub en pak deze uit in uw SDK-directory zoals u eerder deed.

Download ble_app_ahc.zip van Github.

Open het project, compileer en upload de firmware naar de BluChip.

Voordat we het uittesten, zullen we het breadboard in een doos insluiten en gaten maken voor de draden en onze gordijnstatus-LED.

Plaats het breadboard op de basis van de behuizing en maak een opening voor de draden. De opening dient ook als een punt voor de BluChip om via de antenne met andere apparaten te communiceren. (Figuur 37)

Boor een gat ter grootte van de LED aan de zijkant van de behuizing en monteer de LED erop. Bedraad de LED volgens afbeelding 20.

Zoek een geschikte plaats om de behuizingsdoos links van de gordijnrail te monteren, dicht bij een stopcontact. Monteer de motor weer en doe een laatste spanningstest van de distributieriem, zorg ervoor dat er geen speling is. (Figuur 39)

Nu is het tijd om ons geassembleerde systeem te testen. Plaats de voedingsadapter en start uw nRF Connect-app. U zult een apparaat met de naam Curtains. BluChip ontdekken.

Maak er verbinding mee, stuur een waarde van UINT8 1(Open gordijnen) naar de Onbekende Karakteristiek onder Onbekende service, en kijk hoe de gordijnen open gaan!

Nu u uw systeem met succes hebt getest, gaan we eens kijken naar het configureren van een deel van de code die de show op de BluChip uitvoert.

Stap 6: BluChip Firmware-configuratie

BluChip Firmware-configuratie
BluChip Firmware-configuratie
BluChip Firmware-configuratie
BluChip Firmware-configuratie
BluChip Firmware-configuratie
BluChip Firmware-configuratie

Het Automated Home Curtain-firmwareproject bestaat voornamelijk uit 4 bestanden: main.c, ahc.c, ble_ahc_service.c & ble_ahc_service.h.

Tijdens het bouwen van de elektronica en hardware hadden we de mogelijkheid om te kiezen of we eindschakelaars wilden om de nauwkeurigheid van ons geautomatiseerde systeem te vergroten.

In de code van ahc.h kunnen we #define zien voor LIMIT_SWITCHES.

Het compileren en knipperen van de code met #define LIMIT_SWITCHES maakt het gebruik van beide eindschakelaars mogelijk om te detecteren wanneer de gordijnen zijn geopend en gesloten.

Hernoemen naar #undef LIMIT_SWITCHES is nodig als je ervoor hebt gekozen om geen limietschakelaars op te nemen voor je project. In dit geval moet u de afstand waarover uw gordijn beweegt fijn afstemmen in de variabelen CURTAIN_OPEN_STEPS en CURTAIN_CLOSE_STEPS. Pas deze waarden aan om de reisafstand van het gordijn te verlengen of te verkorten.

De andere optie, het toevoegen van een fotoresistor, kan worden ingeschakeld door #undef LDR te wijzigen in #define LDR. LDR staat voor Light-dependent weerstand, ook wel fotoresistor genoemd. Wanneer we LDR inschakelen, weet de fotoresistor wanneer het licht of donker is buiten, en helpt hij je aan het begin of het einde van de dag je gordijnen te sluiten of te openen.

Laten we, naast het configureren van de limietschakelaars en fotoweerstand, eens kijken naar enkele van de andere hoofdcodeblokken waarmee u de gordijnen automatisch kunt openen en sluiten.

De bestanden ble_ahc_service.c & ble_ahc_service.h bevatten code die gegevens van uw telefoon naar de BluChip verzendt.

Wanneer de BluChip de gegevens ontvangt, ontleedt hij deze op basis van het verzenden van een 0 of een 1. Het activeert vervolgens de status-LED, voert de motorbeweging uit en deactiveert vervolgens de voltooiing van de LED-signalering.

De functie ahc_init() van ahc.h wordt aan het begin van de hoofdlus uitgevoerd, waarbij alle pinnen op de BluChip worden geïnitialiseerd.

Stap 7: Samenvatting

Kortom, dit was een buitengewoon leuk en redelijk eenvoudig project om de basisprincipes van BLE te leren. Het feit dat de breakout-module van BluChip precies op een breadboard past, maakt het heel gemakkelijk om snel een prototype te maken op elk breadboard dat je misschien hebt liggen.

Ik zou zeggen dat ik na het bouwen van mijn geautomatiseerde gordijnen al aan verschillende andere dingen heb gedacht om de BluChip aan te sluiten, waaronder slimme neopixels, een OLED om een digitaal horloge te maken, een door een smartphone bestuurde robot en vele andere elektronische projecten met laag vermogen ideeën die compacte draadloze communicatie nodig hebben!

Iedereen met een grote interesse in elektronica en programmeren zou aangenaam verrast zijn door wat de BluChip te bieden heeft, evenals het gemak van het opzetten en implementeren van BLE om projecten nog cooler te maken.

Vanaf nu ga ik weer genieten van mijn handige geautomatiseerde Home Gordijnen..

Aanbevolen: