Raspberry Pi Zero W, Python oraz Visual Studio Code

CharGPT: Oto komplet gotowych plików, które umożliwią Ci:

  1. Wysłanie projektu z Maca na Raspberry Pi

  2. Automatyczne utworzenie venv na Raspberry Pi

  3. Instalację zależności z requirements.txt

  4. Uruchomienie Twojego programu


📁 Struktura folderu pi-project na Twoim Macu

pi-project/
├── main.py
├── requirements.txt
├── install-on-pi.sh
└── deploy.sh

🧱 Zawartość plików

1. main.py — przykładowy kod Pythona

# main.py
import requests

print("Hello from Raspberry Pi!")
response = requests.get("https://api.github.com")
print("GitHub status:", response.status_code)

2. requirements.txt — lista bibliotek

requests

Dodawaj tu wszystko, co Twój projekt potrzebuje (np. flask, numpy, paho-mqtt itd.).


3. install-on-pi.sh — uruchamiane na Raspberry Pi

#!/bin/bash

echo "📦 Tworzenie środowiska wirtualnego..."
python3 -m venv venv
source venv/bin/activate

echo "📦 Instalacja zależności..."
pip install -r requirements.txt

echo "🚀 Uruchamianie programu..."
python main.py

Uczyń go wykonywalnym:

chmod +x install-on-pi.sh

4. deploy.sh — uruchamiane na Macu

#!/bin/bash

PI_USER=minimj
PI_HOST=raspberrypir2.local
REMOTE_DIR=/home/$PI_USER/pi-project

echo "📤 Wysyłanie projektu na Raspberry Pi..."
scp -r . "$PI_USER@$PI_HOST:$REMOTE_DIR"

echo "🔗 Łączenie przez SSH i uruchamianie skryptu instalacyjnego..."
ssh "$PI_USER@$PI_HOST" "cd $REMOTE_DIR && bash install-on-pi.sh"

Uczyń go wykonywalnym:

chmod +x deploy.sh

🚀 Jak uruchomić?

Z poziomu Maca:

cd ~/pi-project
./deploy.sh

Wszystko — łącznie z venv i instalacją zależności — wykona się automatycznie na Raspberry Pi.

 


🖥️ Wyjaśniam co działo się na Twoim Macu:

  1. Utworzyłeś folder projektu (np. ~/pi-project) i umieściłeś w nim:

    • main.py – Twój kod w Pythonie,

    • requirements.txt – listę bibliotek do zainstalowania na Pi,

    • install-on-pi.sh – skrypt, który Raspberry Pi uruchamia, aby przygotować środowisko i uruchomić program,

    • deploy.sh – skrypt uruchamiany z Maca, który:

      • przesyła pliki na Raspberry Pi przez scp,

      • łączy się zdalnie przez ssh,

      • uruchamia install-on-pi.sh na Raspberry Pi.

  2. Uruchomiłeś deploy.sh, co zainicjowało cały proces.


🍓 Co działo się na Raspberry Pi Zero W:

  1. 📁 Pliki z projektu zostały przesłane do katalogu ~/pi-project.

  2. 🐚 Raspberry Pi wykonał polecenia z install-on-pi.sh:

    • utworzył wirtualne środowisko Python (venv) w katalogu projektu,

    • aktywował to środowisko (source venv/bin/activate),

    • zainstalował bibliotekę requests (z requirements.txt) za pomocą pip,

    • uruchomił Twój program main.py.

  3. 🖨️ Program main.py zrobił zapytanie HTTP do GitHub API i wyświetlił status odpowiedzi — co potwierdziło, że:

    • Raspberry Pi ma połączenie z internetem,

    • Python działa prawidłowo,

    • biblioteka requests została zainstalowana poprawnie.


✅ Dzięki temu:

  • Programujesz lokalnie na Macu, gdzie masz wygodny edytor i szybki dostęp do plików.

  • Raspberry Pi wykonuje kod, instalując potrzebne zależności i działając jak mały serwer.

  • Wszystko dzieje się przez Wi-Fi/USB bez potrzeby monitora, klawiatury czy myszy.


Nowy skrypt deploy.sh, który wysyła zawartość foldera do Raspberry

Oto zaktualizowany, prosty i inteligentny skrypt deploy.sh, który:

  • używa rsync (szybszy od scp),

  • pomija venv,

  • może zainstalować zależności (jeśli chcesz),

  • uruchamia Twój program po przesłaniu.


📄 Plik deploy.sh

Umieść go lokalnie w folderze Twojego projektu na macOS (~/pi-project/deploy.sh):

#!/bin/bash

# Zmienne – dostosuj w razie potrzeby
PI_USER="pi"
PI_HOST="raspberrypir2.local"
PI_PROJECT_PATH="/home/pi/pi-project"
LOCAL_PROJECT_PATH="$(pwd)"
REMOTE="$PI_USER@$PI_HOST:$PI_PROJECT_PATH"

echo "📦 Synchronizuję projekt na Raspberry Pi..."
rsync -avz \
--exclude'.venv'\
--exclude'*.sh'\
--exclude'*.pyc'\
--exclude'__pycache__'\
--exclude'.DS_Store'\
--exclude'.git'\
--exclude'.gitignore'\
"$LOCAL_PROJECT_PATH/""$REMOTE/"

echo "✅ Synchronizacja zakończona."

echo "🔗 Łączenie przez SSH w celu aktywacji środowiska i uruchomienia programu..."
ssh "$PI_USER@$PI_HOST" << 'EOF'
cd ~/pi-project
source venv/bin/activate
pip install -r requirements.txt
python3 main.py
EOF

🛠 Co robi skrypt?

  1. Synchronizuje cały folder projektu z Pi (pomijając venv i .git).

  2. Łączy się z Pi przez ssh.

  3. Aktywuje zdalne środowisko wirtualne.

  4. Instaluje wymagane biblioteki (z requirements.txt).

  5. Uruchamia main.py.


✅ Jak używać?

  1. Upewnij się, że masz uprawnienia do wykonania:

    chmod +x deploy.sh
    
  2. Uruchom z terminala:

    ./deploy.sh