This is an old revision of the document!


MQTT vahendaja

Sellel lehel selgitatakse, kuidas muuta oma Raspberry Pi 3 (töötab ka 3+) vahendajaks koos WiFi pääsupunktiga. Kui Raspberry Pi töötab pääsupunktina, ei ole vaja täiendavat ruuterit (NB! Me ei ole seda katsetanud suure koormuse all). Kui teil on vaba ruuter ja te ei soovi meie pilti installida, saate järgida juhiseid siin, kuidas muuta mis tahes Raspberry Pi vahendajaks.

Saate alla laadida pildifaili konfiguratsiooniga AP ja MQTT vahendajaga siit:

Raspberry broker

Ja leiate juhendi selle installimiseks siit. Teil on vaja 16GB (või suuremat) micro-SD kaarti, kuna algne pilt oli 16 GB kaardil. Lihtsaim viis Linuxis on alla laadida zip-fail, lahti pakkida ja Startu Disck creator abil kirjutada pilt uuele SD-kaardile.

Kui olete pildi SD-kaardile vilkunud, sisestage see oma Raspberrysse ja käivitage see. Wifi-AP teenus peaks aktiveeruma iseenesest. Kuid MQTT vahendaja käivitamiseks sisestage terminaliaknasse

mosquitto -d

(seda saate teha SSH või monitori ja klaviatuuriga). Terminali kaudu saate kinnitada, kas teie vahendaja töötab. Selleks avage terminaliaknas ja sisestage

mosquitto_sub -t "mytopic"

Seejärel avage teine terminali aken ja sisestage

mosquitto_pub -t "mytopic" -m "This is my message"

Kui see töötab, peaksite järgmisena proovima ühendada oma sülearvuti (või muu seadme) Raspberry'ga ja testida sõnumite avaldamist ja tellimist sellega. Hea programm silumiseks on MQTTBox. WiFi vaikimisi nimi ja parool on allpool.

NB!! Vältige Raspberry väljalülitamist toitejuhtme eemaldamise teel, kuna see võib põhjustada SD-kaardi rikkumise. Raspberry tuleks alati välja lülitada GUI kaudu või terminali kaudu kirjutades sudo shutdown now (kasutades ekraani ja klaviatuuri või SSH). Raspbiani uuendamine võib algse süsteemi töö lõpetada. Arvestage sellega uuendamisel ja hoidke koopiat olulistest konfiguratsioonifailidest või algsest süsteemist.

Paroolid ja muu teave Raspberry vahendaja jaoks

Raspberry Pi IP-aadress (vahendaja ja SSH jaoks):

192.168.4.1

Port MQTT vahendaja jaoks (ilma paroolita): 1883

Raspberry sisselogimine (SSH):

kasutajanimi: pi

parool: raspberry

Raspberry Wifi pääsupunkt:

ssid: raspberryIoT

parool: piIoT123

Testimine

Selleks, et testida, kas kõik töötab, kasutage IoT Basic komplekti.

Ühendage üks Kontrolleri moodul Nupu mooduliga ja laadige sellele moodulile üles järgmine testkood:

Raamatukogud platformio.ini-s

lib_deps = ITTIoT, blackketter/Switch

Lähtekood

#include <Arduino.h>
#include <ittiot.h>
#include <Switch.h>
 
#define MODULE_TOPIC "rgb"
const byte buttonPin = D3;
 
Switch button = Switch(buttonPin);
 
void iot_connected()
{
  iot.log("Button online!");
}
 
void setup()
{
  iot.setConfig("wname", "raspberryIoT");
  iot.setConfig("wpass", "piIoT123");
  iot.setConfig("msrv", "192.168.4.1");
  iot.setConfig("mport", "1883");
  iot.setup(); 
}
 
void loop()
{
  iot.handle(); 
  button.poll();
 
  if (button.released()) {
    iot.log("Released");
    iot.publishMsgTo(MODULE_TOPIC,"255;0;0",0);
  }
  if (button.pushed()) {
    iot.log("ButtonPushed");
    iot.publishMsgTo(MODULE_TOPIC,"0;255;0",0);
  }
 
  delay(3);
}

siis ühendage teine Kontrolleri moodul RGB mooduliga ja laadige üles järgmine kood:

Raamatukogud platformio.ini-s

lib_deps = ITTIoT, Adafruit NeoPixel

Lähtekood

#include <Arduino.h>
#include <ittiot.h>
#include <Adafruit_NeoPixel.h>
 
#define MODULE_TOPIC "rgb"
#define PIN            D2
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(1, PIN, NEO_GRB + NEO_KHZ800);
 
String getValue(String data, char separator, int index)
{
  int found = 0;
  int strIndex[] = {0, -1};
  int maxIndex = data.length()-1;
 
  for(int i=0; i<=maxIndex && found<=index; i++)
  {
    if(data.charAt(i)==separator || i==maxIndex)
    {
        found++;
        strIndex[0] = strIndex[1]+1;
        strIndex[1] = (i == maxIndex) ? i+1 : i;
    }
  }
  return found>index ? data.substring(strIndex[0], strIndex[1]) : "";
}
 
void iot_received(String topic, String msg)
{
  if(topic == MODULE_TOPIC)
  {
    String r = getValue(msg,';',0);
    String g = getValue(msg,';',1);
    String b = getValue(msg,';',2);
    pixels.setPixelColor(0, r.toInt(), g.toInt(), b.toInt()); 
    pixels.show(); 
  }
}
 
void iot_connected()
{
  iot.subscribe(MODULE_TOPIC);
  iot.log("IoT NeoPixel example!");
}
 
void setup()
{
  iot.setConfig("wname", "raspberryIoT");
  iot.setConfig("wpass", "piIoT123");
  iot.setConfig("msrv", "192.168.4.1");
 
  iot.setup();
 
  pixels.begin(); 
  pixels.setPixelColor(0, 255, 255, 255);
  pixels.show(); 
}
 
void loop()
{
  iot.handle(); 
  delay(200); 
}

Käivitage Raspberry Pi ja mõlemad moodulid. Oodake, kuni RGB süttib, ja proovige siis vajutada Nupu moodulil nuppu. RGB mooduli värv peaks muutuma roheliseks. Kui see juhtub, on kõik õigesti seadistatud. Raspberry Pi teenindab wifi ja MQTT vahendaja teenust antud parameetritega.

et/iot/examples/setup/broker.1720095302.txt.gz · Last modified: 2024/07/04 12:15 by rojarl
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0