This is an old revision of the document!
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 Pi broker SD card image
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.
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.