Spisu treści:
- Krok 1: Tworzenie aplikacji w telefonie
- Krok 2: Przygotowanie PI
- Krok 3: Tworzenie projektu
- Krok 4: MójProjekt.js
- Krok 5: MyProject w Arduino
- Krok 6: Okablowanie
- Krok 7: To wszystko
Wideo: Raspberry PI i Arduino - sterowanie krokowe Blynk: 7 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Ten samouczek pokaże Ci, jak sterować silnikiem krokowym za pomocą Arduino, Raspberry Pi i aplikacji Blynk.
W skrócie, aplikacja wysyła żądania do Raspberry Pi za pośrednictwem wirtualnych pinów, Pi następnie wysyła sygnał WYSOKI/NISKI do Arduino, a Arduino następnie zajmuje się silnikiem krokowym.
Myślę, że łatwiej jest korzystać z tego podejścia, ponieważ większość ludzi jest przyzwyczajona do pracy z Arduino, a niewiele z node.js na Raspberry Pi.
Potrzebne do tego komponenty:
- Raspberry PI (ja używam Raspberry Pi 3 model b)
- Arduino (używam Arduino Nano)
- Servo Motor (używam 28BYJ-48 5VDC z jego kontrolerem)
- Niektóre przewody połączeniowe
- Źródło zasilania (5VDC 2A.)
Szkic Arduino i kod Node.js są dostępne do pobrania. Po prostu wyszukaj pliki.
Krok 1: Tworzenie aplikacji w telefonie
Pobierz Blynk z AppStore lub GooglePlay
Otwórz aplikację i utwórz użytkownika lub zaloguj się przez facebook.
- Utwórz nowy projekt
Nazwij swój projekt: MyProject
Wybierz urządzenie: Rasapberry Pi 3 B
Typ połączenia: Wifi (lub Ethernet, jeśli Twoje Pi jest podłączone do sieci)
- Kliknij Utwórz
Sprawdź pocztę e-mail pod kątem tokena
(wygląda tak 3aa19bb8a9e64c90af11e3f6b0595b3c)
Ten token jest powiązany z Twoją obecną aplikacją. Jeśli zrobisz inną aplikację, wygenerujesz kolejny token.
W aplikacji dodaj następujące widżety (patrz zdjęcie)
- Dodaj 3 przyciski
- Dodaj 1 wyświetlacz LCD
- Edytuj przycisk
nazwij pierwszy z nich Command1, ustaw Pin jako Virtual Pin 1 i ustaw tryb jako SWITCH
nazwij drugi CW, ustaw Pin jako Virtual Pin 2 i ustaw tryb jako PUSH
nazwij trzecią CCW, ustaw Pin jako Virtual Pin 3 i ustaw tryb jako PUSH
- Edytuj wyświetlacz LCD
ustaw Piny jako Virtual Pin 4 i Virtual Pin 5 i ustaw tryb na PUSH
Krok 2: Przygotowanie PI
Najpierw musisz zainstalować Node.js. Przed aktualizacją Node.js pamiętaj o usunięciu starych wersji:
Otwórz terminal i wpisz
sudo apt-get czyszczenie nodejs
node.js -ysudo apt-get autoremove
Automatyczna instalacja Node.js Dodaj repozytoria:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
Zainstaluj Node.js
aktualizacja sudo apt-get && aktualizacja sudo apt-get
sudo apt-get install niezbędne do zbudowania nodejs -y
Po zainstalowaniu Node.js zainstaluj Blynk
sudo npm zainstaluj blynk-library -g
sudo npm zainstaluj onoff -g
Krok 3: Tworzenie projektu
Zacznij od zmiany katalogu (polecenie cd) na katalog pi
Otwórz Terminal i wpisz:
cd /home/pi/
Następnie utwórz katalog, w którym będzie się znajdował Twój projekt
mkdir Mój projekt
Zmień katalog na MyProject, wpisz następujące polecenie w Terminalu
cd MójProjekt
Sprawdź zawartość katalogu (powinna być pusta). Po prostu wpisz następujące polecenie w Terminalu
ls
Następnie wpisz następujące polecenie, aby utworzyć opis projektu (package.json)
początek npm
Wystarczy wpisać nazwę projektu, autora, wersję itp…
Gdy to zrobisz, zainstaluj bibliotekę Blynk, bibliotekę onoff i bibliotekę systemu uśpienia w katalogu TWOJEGO projektu. Wpisz następujące informacje w swoim terminalu
npm zainstaluj blynk-library --save
npm zainstaluj onoff --save
npm zainstaluj system-sleep --save
Na koniec utwórz plik.js (będzie to miejsce, w którym będzie znajdować się Twój kod). Wpisz następujące polecenie w terminalu
nano MójProjekt.js
Po wykonaniu tego polecenia otworzy się nano (edytor tekstu terminala).
Krok 4: MójProjekt.js
W nano napisz następujące wiersze kodu
var Blynk = require('blynk-biblioteka');
var AUTH = '******************** '; TO JEST TWÓJ TOKEN
var blynk = new Blynk. Blynk(AUTH);
var Gpio = require('onoff'). Gpio,
command1 = new Gpio (18, 'out'), // zostanie podłączony do Arduino D2
commandCW = new Gpio (23, 'out'), // zostanie podłączony do Arduino D3
commandCCW = nowy Gpio(24, 'out'); //Zostanie podłączony do Arduino D4
var sleep = require('system-uśpienie');
var v1 = nowy blynk. VirtualPin(1); //to jest twój przycisk Command1 w aplikacji
var v2 = nowy blynk. VirtualPin(2); //to jest twój przycisk CW w aplikacji
var v3 = nowy blynk. VirtualPin(3); //to jest twój przycisk CCW w aplikacji
var v4 = nowy blynk. VirtualPin(4); //to jest twoja linia LCD 1 w aplikacji
var v5 = nowy blynk. VirtualPin(5); //to jest twoja linia LCD 2 w aplikacji
v1.on('write', function (param) //Sprawdź przycisk Command1 w aplikacji
{
if (param == 1) //Jeśli przycisk jest naciśnięty (czyli 1), wykonaj następujące czynności
{
v4.write("Wykonywanie"); //Napisz „Wykonywanie” w pierwszym wierszu wyświetlacza LCD
v5.write("Polecenie"); //Napisz "Polecenie" w drugim wierszu wyświetlacza LCD
polecenie1.writeSync(1); //Ustaw GPIO18 (czyli polecenie zmiennej 1) na 1 (WYSOKI)
sen (4000); //Poczekaj 4 sekundy
polecenie1.writeSync(0); //Ustaw GPIO18 (czyli polecenie zmiennej 1) na 0 (NISKI)
v4.write("Gotowe"); //Wpisz „Gotowe” w pierwszym wierszu wyświetlacza LCD
v5.write(" "); //Wpisz " " (nic) w drugim wierszu LCD
v1.zapis(0); //Wpisz 0 do przycisku Command1, który zresetuje go do pozycji OFF
}
});
v2.on('write', function (param) //Sprawdź przycisk CW w aplikacji
{
if (param == 1) //Jeśli naciśnięty zostanie przycisk (czyli 1), wykonaj następujące czynności
{
polecenieCW.writeSync(1); //Ustaw GPIO23 (który jest zmienną commandCW) na 1 (HIGH)
}
else if (param == 0) //Jeśli przycisk nie został naciśnięty (czyli 0), wykonaj następujące czynności
{
commadCW.writeSync(0); //Ustaw GPIO23 (który jest zmienną commandCW) na 0 (LOW)
}
});
v3.on('write', function (param) //Sprawdź przycisk CCW w aplikacji
{
if (param == 1) //Jeśli naciśnięty zostanie przycisk (czyli 1), wykonaj następujące czynności
{
polecenieCCW.writeSync(1); //Ustaw GPIO24 (który jest zmienną commandCCW) na 1 (HIGH)
}
else if (param == 0) //Jeśli przycisk nie został naciśnięty (czyli 0), wykonaj następujące czynności
{
polecenieCCW.writeSync(0); //Ustaw GPIO24 (który jest zmienną commandCCW) na 1 (HIGH)
}
});
Zapisz i wyjdź z nano
- aby zapisać CTRL+O
- aby wyjść z CTRL+X
Skończyłeś z Raspberry Pi.
Teraz przetestuj go, aby sprawdzić, czy występują jakiekolwiek błędy (w większości przypadków są to błędy literowe)
Aby to przetestować, po prostu wpisz następujące polecenie w swoim terminalu
węzeł MójProjekt.js
Powinieneś otrzymać wynik, który wygląda tak
Tryb wł.wył
Łączenie z: blynk-cloud.com 8441
Autoryzacja SSL…
Upoważniony
Krok 5: MyProject w Arduino
Ok, więc teraz mamy ukończone 2/3 rzeczy!
Teraz wystarczy napisać kod dla Arduino.
- Utwórz nowy szkic Arduino i wpisz następujący kod.
#włączać
#define STEPS_PER_MOTOR_REVOLUTION 32
#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 //2048
//Połączenia pinów muszą być połączone pinami 8, 9, 10, 11
// do sterownika silnika In1, In2, In3, In4
// Następnie piny są wprowadzane tutaj w kolejności 1-3-2-4 dla poprawnego sekwencjonowania
Krokowy mały_krok (STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);
int Steps2Take;
int Polecenie1;
int CommandCW;
int PolecenieCCW;
pusta konfiguracja()
{
pinMode(2, WEJŚCIE);
pinMode(3, WEJŚCIE);
pinMode(4, WEJŚCIE);
//(Biblioteka krokowa ustawia piny jako wyjścia)
}
pusta pętla()
{
Polecenie1 = odczyt cyfrowy(2);
CommandCW = odczyt cyfrowy(3);
CommandCCW = odczyt cyfrowy(4);
if(Polecenie1 == 0)
{
//nic nie robić
}
w przeciwnym razie
{
Funkcja wykonania();
}
if(CommandCW == 1)
{
small_stepper.setSpeed(700);
mały_krok.krok(-1);
opóźnienie(1);
}
jeśli (polecenie CCW ==1)
{
small_stepper.setSpeed(700);
mały_krok.krok(1);
opóźnienie(1);
}
}
nieważna funkcja wykonania ()
{
Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4; // Obróć w lewo o 1/4 obrotu
small_stepper.setSpeed(700);
small_stepper.step(Steps2Take); // Możesz zastąpić Steps2Take dowolną wartością z zakresu od 0 do 2048
opóźnienie (500);
Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Obróć w prawo o 1/4 obrotu
small_stepper.setSpeed(700);
small_stepper.step(Steps2Take); // Możesz zastąpić Steps2Take dowolną wartością z zakresu od 0 do 2048
opóźnienie (2000);
}
Skompiluj i prześlij do swojego Arduino.
Teraz upewnij się, że wszystko poprawnie łączysz! Zobacz następny krok dla okablowania.
Krok 6: Okablowanie
Podłącz Arduino D3 do RaspberryPi GPIO18 (który w rzeczywistości jest pinem 12)
Podłącz Arduino D4 do RaspberryPi GPIO23 (który w rzeczywistości jest pinem 16)
Podłącz Arduino D4 do RaspberryPi GPIO24 (który w rzeczywistości jest pinem 18)
Podłącz Arduino GND do RaspberryPi GND (pin 6)
Podłącz Arduino D8 do kontrolera krokowego In1
Podłącz Arduino D9 do kontrolera krokowego In2
Podłącz Arduino D10 do kontrolera krokowego In3
Podłącz Arduino D11 do kontrolera krokowego In4
Podłącz 5VDC do Arduino, Raspberry Pi i kontrolera krokowego
Krok 7: To wszystko
Sprawdź wideo i powinieneś skończyć!
Dzięki i ciesz się!
Zalecana:
PlotClock, WeMos i Blynk grają w Vintage AMI Jukebox: 6 kroków (ze zdjęciami)
PlotClock, WeMos i Blynk Playing Vintage AMI Jukebox: Cztery innowacje techniczne umożliwiły ten projekt: Rowe AMI Jukebox z 1977 r., zestaw ramienia robota PlotClock, mikrokontroler WeMos/ESP 8266 i usługa Blynk App/Cloud. UWAGA: Jeśli nie masz Jukebox pod ręką – nie przestawaj czytać! Ten projekt może
Robot sterowany przez Wi-Fi za pomocą Wemos D1 ESP8266, Arduino IDE i aplikacji Blynk: 11 kroków (ze zdjęciami)
Robot sterowany przez Wi-Fi za pomocą Wemos D1 ESP8266, Arduino IDE i aplikacji Blynk: W tym samouczku pokażę, jak zrobić zrobotyzowany czołg sterowany przez Wi-Fi, sterowany ze smartfona za pomocą aplikacji Blynk. W tym projekcie wykorzystano płytkę ESP8266 Wemos D1, ale można również zastosować inne modele płyt (NodeMCU, Firebeetle itp.), a pr
Powiadomienie o pralko-suszarce Arduino - powiadomienie push na telefon za pomocą Blynk: 5 kroków (ze zdjęciami)
Powiadomienie o suszarce Arduino – powiadomienie push na telefon za pomocą Blynk: Nasza pralka jest w garażu i nie słyszymy sygnałów dźwiękowych wskazujących, że pranie zostało zakończone. Chciałem znaleźć sposób na otrzymanie powiadomienia, gdziekolwiek jesteśmy w domu, kiedy cykl się zakończy. Majstrowałem przy Arduino, ESP8266 WiFi
Kontroluj Arduino za pomocą smartfona przez USB za pomocą aplikacji Blynk: 7 kroków (ze zdjęciami)
Kontroluj Arduino za pomocą smartfona przez USB za pomocą aplikacji Blynk: W tym samouczku nauczymy się korzystać z aplikacji Blynk i Arduino w celu sterowania lampą, połączenie będzie odbywać się przez port szeregowy USB. Celem tej instrukcji jest pokazanie najprostsze rozwiązanie do zdalnego sterowania Arduino lub c
Kontroluj urządzenia domowe ze swojego smartfona za pomocą aplikacji Blynk i Raspberry Pi: 5 kroków (ze zdjęciami)
Steruj urządzeniami domowymi ze swojego smartfona za pomocą aplikacji Blynk i Raspberry Pi: W tym projekcie nauczymy się korzystać z aplikacji Blynk i Raspberry Pi 3 w celu sterowania urządzeniami domowymi (ekspres do kawy, lampa, zasłona okienna i wiele innych… ).Składniki sprzętowe: Raspberry Pi 3 Relay Lamp Breadboard WiresAplikacje programowe: Blynk A