Övning 25 / 29
Installera paho-mqtt och publicera
Beräknad tid: 25 min
Varför
En IoT-enhet skickar sällan data bara till sin egen skärm. MQTT är ett enkelt sätt att lämna ett meddelande hos en server så att andra program kan hämta det. Först ska paketet in på datorn, sedan skickar du en rad text.
Den nya idén
MQTT — ett lätt protokoll för små meddelanden. En klient ansluter till en broker, publicerar till ett ämne (topic) eller prenumererar på ett. Du behöver inte bygga en egen server.
Broker — servern som tar emot och vidarebefordrar meddelanden. I den här kursen: mqtt.progress42.com på port 1883. Ingen inloggning — anonym anslutning.
Topic — ämnets namn, skrivet med snedstreck som en sökväg. Exempel: nackademin/sam/hello. Välj ett kort namn utan mellanslag och utan å, ä, ö.
paho-mqtt — ett Python-bibliotek från Eclipse. Det följer inte med Python — du installerar det med pip, precis som du tidigare importerade random från standardbiblioteket.
pip är Pythons paketverktyg. Kör det som en modul: python3 -m pip install paho-mqtt (Windows: py -m pip). Då hamnar paketet i samma Python som du redan använder.
import paho.mqtt.publish as publish
publish.single(
"nackademin/sam/hello",
payload="Hej från Sam",
hostname="mqtt.progress42.com",
port=1883,
)
print("Skickat.")publish.single ansluter, skickar ett meddelande och kopplar ner. Ingen användare och inget lösenord. Porten är 1883 — det är MQTT utan TLS.
Meddelandet syns inte i din terminal hos mottagaren ännu. Övning 26 lyssnar. Här räcker det att programmet skriver Skickat. och avslutas utan fel.
Mac — installera paho-mqtt
Använd samma python3 som i övning 1. Stäng inte Terminal mellan stegen.
- Öppna Terminal.
- Skriv python3 -m pip install paho-mqtt och tryck Enter.
- Vänta tills pip skriver att paketet är installerat.
- Testa importen: python3 -c "import paho.mqtt.publish as publish; print('paho ok')"
Får du externally-managed-environment: prova python3 -m pip install --user paho-mqtt. Fortfarande nej: skapa en venv med python3 -m venv .venv, aktivera med source .venv/bin/activate och kör pip-kommandot där.
Mac (Terminal)
paho okWindows — installera paho-mqtt
Använd py -m pip så att paketet hamnar i samma Python som py.
- Öppna CMD (inte PowerShell som huvudväg).
- Skriv py -m pip install paho-mqtt och tryck Enter. Fungerar inte py: prova python -m pip install paho-mqtt.
- Vänta tills pip är klar.
- Testa importen: py -c "import paho.mqtt.publish as publish; print('paho ok')"
Microsoft Store-fönster eller 'Python was not found' betyder att PATH från övning 1 saknas. Lös det först, installera sedan paketet.
Windows (CMD)
paho okUppgift
Följ stegen för ditt system nedan så att paho-mqtt är installerat. Skapa sedan filen publicera.py som:
- Ansluter till mqtt.progress42.com på port 1883.
- Publicerar en kort text till ämnet nackademin/<ditt-namn>/hello (byt ut namnet).
- Skriver ut Skickat. när publiceringen är klar.
Kör programmet från samma mapp. Använd python3 publicera.py på Mac, eller py publicera.py på Windows om python3 saknas.
Förväntat resultat
En rad i terminalen, sedan kommer prompten tillbaka. Inget traceback.
Skickat.