it:iot:mosquitto

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
it:iot:mosquitto [2023/01/04 20:42] Petr Nosekit:iot:mosquitto [2023/02/12 08:49] (aktuální) – [Zapnutí autentizace] Petr Nosek
Řádek 5: Řádek 5:
  
 V [[https://randomnerdtutorials.com/what-is-mqtt-and-how-it-works/|tutoriálu]] je srozumitelně popsané, jak MQTT funguje. V [[https://randomnerdtutorials.com/what-is-mqtt-and-how-it-works/|tutoriálu]] je srozumitelně popsané, jak MQTT funguje.
 +
 +
 +
 +===== Podrobnější logování v Mosquitto  =====
 +Do konfiguračního souboru lze [[https://iot.stackexchange.com/questions/956/how-to-enable-detailed-logging-of-mosquitto-broker-on-windows-7|dle zdroje]] přidat tyto řádky:
 +
 +<code bash>
 +# Types of messages to log. Use multiple log_type lines for logging
 +# multiple types of messages.
 +# Possible types are: debug, error, warning, notice, information, 
 +# none, subscribe, unsubscribe, websockets, all.
 +# Note that debug type messages are for decoding the incoming/outgoing
 +# network packets. They are not logged in "topics".
 +log_type error
 +log_type warning
 +log_type notice
 +log_type information
 +</code>
 +
  
  
Řádek 23: Řádek 42:
  
 <code bash> <code bash>
-docker exec -it mosqutto sh+docker exec -it mosquitto sh
 mosquitto_passwd -c /mosquitto/pwfile/pwfile majordomus mosquitto_passwd -c /mosquitto/pwfile/pwfile majordomus
 </code> </code>
Řádek 79: Řádek 98:
 function generate_der () { function generate_der () {
    echo "generate DER certificates for ESP8266"    echo "generate DER certificates for ESP8266"
-   openssl x509 -in server.crt -out cert.der -outform DER +   openssl x509 -in client.crt -out cert.der -outform DER 
-   openssl rsa -in server.key -out key.der -outform DER+   openssl rsa -in client.key -out key.der -outform DER
 } }
 +
 +function generate_server_pem () {
 +   echo "generate PEM certificates for Node RED"
 +   openssl x509 -in server.crt -out server-cert.pem
 +   openssl rsa -in server.key -out server-key.pem
 +}
 +
  
 generate_CA generate_CA
Řádek 87: Řádek 113:
 generate_client generate_client
 generate_der generate_der
 +generate_server_pem
 </code> </code>
  
Řádek 139: Řádek 166:
  
  
 +=== ESP8266, microPython a Mosquito přes SSL ===
  
- +Po dlouhém bádání jsem se dopracoval k tomu, že je potřeba certifikát binárním formátu DERNainstaloval jsem si mpfshell a nahrál do ESP8266 vygenerované certifikáty **cert.der** a **key.der**. Ještě je dobré si uvědomit, že by nemělo být ipojeno nic jiného k portu s ESP8266, jinak to nebude fungovat.
-==== Podrobnější logování Mosquitto  ==== +
-Do konfiguračního souboru lze [[https://iot.stackexchange.com/questions/956/how-to-enable-detailed-logging-of-mosquitto-broker-on-windows-7|dle zdroje]] idat tyto řádky:+
  
 <code bash> <code bash>
-# Types of messages to log. Use multiple log_type lines for logging +sudo pip3 install mpfshell 
-# multiple types of messages. +mpfshell -c "open ttyUSB0" 
-# Possible types are: debug, error, warning, notice, information,  +ls 
-# none, subscribe, unsubscribe, websockets, all+put cert.der 
-# Note that debug type messages are for decoding the incoming/outgoing +put key.der 
-# network packetsThey are not logged in "topics"+ls
-log_type error +
-log_type warning +
-log_type notice +
-log_type information+
 </code> </code>
 +
 +
 +Pak jsem musel upravid kód v microPythonu, aby načetl certifikáty a použil je při autentizaci.
 +
 +<code python>
 +with open("key.der", 'rb') as f:
 +            key = f.read()
 +            
 +with open("cert.der", 'rb') as f:
 +            cert = f.read()
 +
 +
 +ssl_params = dict()
 +ssl_params["cert"] = cert
 +ssl_params["key"] = key
 +
 +
 +mqttc = MQTTClient(CLIENT_NAME, BROKER_ADDR, 8883, USER, PASSWORD, ssl=True, ssl_params=ssl_params, keepalive=60)
 +    
 +</code>
 +
 +zdroje, ze kterých jsem čerpal:
 +
 +  * https://github.com/peterhinch/micropython-mqtt/issues/10
 +  * https://dev.to/bassparanoya/esp32-micropython-mqtt-tls-28fd
 +  * https://forum.micropython.org/viewtopic.php?f=18&t=11906#p65746
 +  * [[https://forum.pycom.io/topic/4775/solved-mqtt-and-tls|Solved mqtt and tls - ESP32]]
 +  * [[https://microcontrollerslab.com/esp32-esp8266-micropython-mqtt-publish-subscribe-ds18b20-readings/|ESP32 ESP8266 MicroPython MQTT Publish Subscribe DS18B20 Readings]]
 +  * [[https://randomnerdtutorials.com/micropython-mqtt-publish-ds18b10-esp32-esp8266/|MicroPython: MQTT – Publish DS18B20 Temperature Readings (ESP32/ESP8266)]]
 +
 +
 +
  • it/iot/mosquitto.1672864931.txt.gz
  • Poslední úprava: 2023/01/04 20:42
  • autor: Petr Nosek