Sellel lehel selgitatakse, kuidas muuta oma Raspberry Pi 3/3+ vahendajaks koos WiFi pääsupunktiga. Kui Raspberry Pi töötab pääsupunktina, ei ole vaja täiendavat ruuterit.
Saate alla laadida korrektse konfiguratsiooniga AP ja MQTT vahendaja kettatõmmise siit:
Raspberry Pi broker SD card image
Juhend kuvatõmmise paigaldamiseks on siin. Kettatõmmis on tehtud 16 GB või suuremale micro-SD kaardile. Lihtsaim viis Linuxis on alla laadida zip-fail, pakkida see lahti ja Startu Disk Creator abil kirjutada see uuele SD-kaardile.
Kui olete kettatõmmise SD-kaardile kopeerinud, sisestage see oma Raspberry Pi-sse ja seejärel ühendage toitekaabel (micro USB). Wifi-AP ja MQTT teenused käivituvad automaatselt.
Teenuste töö kontrollimiseks ühendage Raspberry Pi arvuti ekraani ja klavitatuuriga või logige sisse teisest arvutist üle SSH.
Terminali kaudu saate kinnitada, kas MQTT vahendaja töötab. Selleks avage terminali aken ja sisestage
mosquitto_sub -t "mytopic"
Seejärel avage teine terminali aken ja sisestage
mosquitto_pub -t "mytopic" -m "This is my message"
Kui esimesse aknasse ilmus teie poolt sisestatud sõnum, siis MQTT vahendaja teenus töötab.
Kui see töötab, peaksite järgmisena proovima ühendada oma sülearvuti (või muu seadme) Raspberry'ga üle Wifi ja testida sõnumite avaldamist ja tellimist sellega. Kasutage mõnda MQTT kliendirakendust või brauseri laiendust. 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.
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
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.