Мазмұны:

IBM Watson ESP32 соңғы нүктесі ретінде: 11 қадам
IBM Watson ESP32 соңғы нүктесі ретінде: 11 қадам

Бейне: IBM Watson ESP32 соңғы нүктесі ретінде: 11 қадам

Бейне: IBM Watson ESP32 соңғы нүктесі ретінде: 11 қадам
Бейне: IoT Project - Sending Sensor Readings from ESP32 to IBM Cloud/Watson 2024, Қараша
Anonim
Image
Image
ESP32 түйреуіші
ESP32 түйреуіші

Мен бүгін мұнда Endpoint құрылғысын ESP32 көмегімен қалай орнату керек, содан кейін бұлтты қызметке жіберу туралы серияның бірінші бейнесін жариялап отырмын. Бұл нақты эпизодта мен сізге IBT Watson үшін MQTT протоколы арқылы DHT22 сенсорынан ақпаратты қалай жіберу керектігін көрсетемін.

Біз алдымен MQTT-ті енгіземіз, бұл IoT (Интернет заттары) ішінде қолданылатын машинадан машинаға хаттама. Біз сондай -ақ температура мен ылғалдылық сенсорынан деректерді осы хаттаманың көмегімен жібереміз, содан кейін веб -бетте осы деректермен графикті тексереміз.

1 -қадам: ESP32 түйреуіші

Мен мұнда біздің мысалда қолданатын ESP32 түйінін қойдым. Дегенмен, мен жобаның ESP8266 -мен, тіпті сол бастапқы кодпен де жұмыс істейтінін түсіндіргім келеді.

2 -қадам: NodeMCU түйреуіші

NodeMCU түйреуіші
NodeMCU түйреуіші

3 -қадам: MQTT

MQTT
MQTT

MQTT-бұл IoT-те қолданылатын машинадан машинаға хаттама. Ол жеңіл және жылдам болуға арналған. Ол жазылу/жариялау жүйесін қолданады, онда құрылғы сізді қызықтыратын нақты ақпарат бар тақырыпқа «жазылады», содан кейін құрылғы осы тақырыпқа қатысты ақпаратты жариялаған сайын ақпаратты алады.

Серверлік бағдарлама сияқты MQTT -ке де бағдарламалық қамтамасыз ету қажет. Бұл делдал деп аталады. Бұл жағдайда біз IBM Bluemix IoT қызметін қолданамыз. Бұл қызмет соңғы нүктені тестілеу үшін ақысыз.

Әрі қарай, бізде қолданба жағы бар ұялы телефон немесе планшет болуы керек, яғни MQTT клиенті ретінде. Бізде сонымен қатар Құрылғы жағы бар, ол термометрі бар ESP жағы. Бұл температура мен ылғалдылық туралы ақпаратты Bluemix -ке жібереді, содан кейін бұл ақпаратты Қолдану жағына жібереді.

4 -қадам: құрастыру

Ассамблея
Ассамблея

Біздің схема 3.3v мен деректер түйреуішінің арасындағы 4.7k Ом резисторынан тұрады, сонымен қатар ESP32 немесе NodeMCU GPIO4 қосылған DHT22. Осылайша, бұл біздің соңғы нүктеміз.

5 -қадам: Диаграмма

Диаграмма
Диаграмма
Диаграмма
Диаграмма

Мен мұнда MQTT жергілікті брокермен жұмыс істеудің бірнеше әдістерін көрсетемін. Мен диаграмманың екі моделін қойдым. Бейнеде мен, мысалы, қақпаны ашу үшін Raspberry Pi қолданатын жағдай туралы айтамын.

Жоғарыдағы суретте бізде жергілікті брокерді табандылықпен қолданатын бірінші архитектура, ал төмендегі брокермен тек бұлтта байланысатын екінші архитектура бар.

Диаграммада көрсетілгендей, біздің сенсор температура мен ылғалдылық туралы деректерді IBM Watson компаниясына жібереді. Бұл жағдайда IBM Watson деректерді жазбайтынына назар аудару қажет, себебі ол тек графиктерде көрсетіледі. Себебі, біз бүгінгі мысалда дерекқордың кез келген операциясын қарастырмаймыз, тек соңғы нүктенің күйін көрсететін Quickstart (https://quickstart.internetofthings.ibmcloud.com/) бетіне кіруді көрсетеміз. Схема қарапайым және деректерді жіберу үшін WiFi қолданады.

6 -қадам: Кітапханалар

Arduino IDE -де эскиз мәзіріне өтіңіз -> кітапхананы қосу -> кітапханаларды басқару …

Ашылған экранда «DHT» іздеуін енгізіңіз және «DHT сенсорлық кітапханасы» либін орнатыңыз.

Содан кейін, «PubSubClient» деп теріп, «PubSubClient» lib орнатыңыз.

7 -қадам: Температура мен ылғалдылықты оқу кітапханасы

Температура мен ылғалдылық оқу кітапханасы
Температура мен ылғалдылық оқу кітапханасы

8 -қадам: MQTT кітапханасы

MQTT кітапханасы
MQTT кітапханасы

9 -қадам: MQTT.ino

Біз бастапқы кодты ESP қолданылып жатқанын тексеруден және сәйкес кітапхана мен WiFi импорттау арқылы бастаймыз. Бізде әлі де MQTT Libs және температура мен ылғалдылық сенсоры бар.

// Verifica qual ESP está sendo utilizado // e importa a lib e wifi корреспонденті #егер анықталса (ESP8266) #қосу #басқа #қосу #endif // Lib de MQTT #қосу // сенсорлы температураның сенсоры #қосу

Содан кейін біз мыналарды анықтаймыз: деректерді жіберу арасындағы интервал, қолданылатын MQTT сервері, диаграммадағы баспа ақпараты және идентификатор. Біз сондай -ақ QUICK_START жолы қалай болуы керектігін көрсеттік.

// Intervalo entre os envios #INTERVAL 1000 анықтаңыз // SSID орнын ауыстырыңыз #SSEESE «TesteESP» анықтаңыз // «87654321» құпия сөзін анықтаңыз // MQTT серверінің анықтамасы #MQTst_SERVER жылдам анықтау.messaging.internetofthings.ibmcloud.com «// Тапсырмалар мен тапсырмалар // парақшалардың тізімі #define TOPIC_NAME» iot-2/evt/status/fmt/json «// Идентификаторлар // QUICK_START әзірлеуші тұрақты жұмыс String QUICK_START = «d: quickstart: arduino:»;

Бұл қадамда біз бірегей идентификаторды анықтаймыз. Бұл мысалда біз қолданатын құрылғының MAC мекенжайын қолданамыз. Бұл QuickStart сайтында сәйкестендіру ретінде қызмет етеді. Мұнда біз Quickstart идентификаторын құрылғымыздың идентификаторымен байланыстырамыз.

// DEVICE_ID жоқ - бұл MAC -мекен -жайдың қауіпсіздігі. = «240ac40e3fd0»; // Нысанның жылдам қосылуының сәйкестендірулері // диспозитивті стринг CLIENT_ID = QUICK_START + DEVICE_ID;

Содан кейін біз MQTT мен WiFi -ді, сондай -ақ температура мен ылғалдылық мәндеріне қатысты объектілер мен айнымалыларды конфигурациялаймыз.

// WifiClientWiFiClient арқылы MQTT қолданатын WiFi клиенттері; // Cliente MQTT, URL мекен -жайының сервері, портал // WiFi PubSubClient клиенті (MQTT_SERVER, 1883, wifiClient); // Уақыт өте келе ұзақ lastPublishTime = 0; // DHT dht (4, DHT22) температурасы мен температурасы өзгереді; // Ауытқу температурасының өзгермелі мәні = 0; // Өзгермелі өзгермелі ылғалдылық = 0;

MQTT.ino - орнату

Орнатуда біз DHT инициализациялаймыз, WiFi желісіне және MQTT серверіне қосыламыз.

void setup () {Serial.begin (115200); // Incializamos o dht dht.begin (); // WiFi орнатуWiFi () байланысын өзгерту; // MQTT connectMQTTServer сервері (Conectamos) немесе сервер; }

MQTT.ino - цикл

Циклде біз IBM Watson графикті шығаруды күтетін тақырыпта жарияланатын Json құру үшін сенсорлық деректерді жинаймыз.

void loop () {// Tempos agora em milisegundos long = millis (); // Егер сіз қазір (соңғы - соңғыPublishTime> INTERVAL) жылдамдықтың ең жоғары жылдамдығын анықтайтын болсаңыз, {// Atualizamos o tempo em que ocorreu o ultimo envio lastPublishTime = now; // Fazemos a leitura және temperatura e umidade readSensor (); Serial.print («Хабарды жариялау:»); // Сервер mqtt String msg = createJsonString (); Serial.println (msg); // Жалпыға қол жетімді емес сервистік қызметтер // клиент.publish (TOPIC_NAME, msg.c_str ()); }}

MQTT.ino - Wi -Fi орнату

Мұнда бізде WiFi желісіне қосылу үшін жауап беретін функция бар.

// WiFivoid setupWiFi () {Serial.println (); Serial.print («Қосылу»); Serial.print (SSID); // Mate o esp se conectar à rede através // do ssid e senha WiFi.begin (SSID, PASSWORD); // Espera até que a conexão com will be a seteecidecida while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print («.»); } // Serial.println («») сілтемесін таңдаңыз; Serial.println («WiFi қосылған»); }

MQTT.ino - connectMQTTServer

Бұл қадамда біз MQTT серверіне қосылуға жауапты функцияны қолданамыз.

// MQTTvoidMMTTVeroid () {Serial.println («MQTT серверіне қосылу …») сервері арқылы жауап беру. // Егер (client.connect (CLIENT_ID.c_str ()))) {/conecta ao id que definimos if (client.connect (CLIENT_ID.c_str ()))) {// Сериялық.println («қосылған») байланысы бар болса; } else {// Serial.print («қате =»); Serial.println (client.state ()); }}

MQTT.ino - readSensor

Температура мен ылғалдылық көрсеткіштерін оқу осы функцияда анықталады.

// FunSãoo жауап беру үшін жауап беру // readSensor () {өзгермелі мәні; // Температураның мәні = dht.readTemperature (); // Se o valor lido é válido if (! Isnan (value)) {// Armazena o novo valor da temperatura температура = мән; } // Faz a leitura және umidade value = dht.readHumidity (); // Se o valor for válido if (! Isnan (value)) {// Armazena o novo valor da umidade ылғалдылық = мән; }}

MQTT.ino - createJsonString

Мұнда бізде деректер оқылатын Json құруға жауапты функция бар.

// Функциялардың жауаптары // сіз JSO -ды құрасыз String createJsonString () {String data = «{»; деректер+= «\» d / «: {»; деректер+= «\» температурасы / «:»; деректер+= Жол (температура); деректер+= «,»; деректер+= «\» ылғалдылық / «:»; деректер+= Жол (ылғалдылық); деректер+= «}»; деректер+= «}»; деректерді қайтару; }

10 -қадам: Графикалық

Графикалық
Графикалық
Графикалық
Графикалық

Сенсор графигін көру үшін өтіңіз

quickstart.internetofthings.ibmcloud.com сайтына

Device ID өрісіне кодта анықталған DEVICE_ID енгізіңіз.

- Бұл құрылғы идентификаторын басқа адам жіберген деректермен қайшылықты болдырмау үшін қолданылатын бірегей идентификаторға өзгерту маңызды.

Соңында, шарттарды қабылдап, Өту түймесін басыңыз.

Бұл жобада біз IBM Watson серверінде соңғы нүктемізді тексердік. Бұл біздің Arduino бағдарламасының платформамен дұрыс байланыста болуын қамтамасыз етеді және егер біз тіркелгі жасасақ, біз жіберетін деректерді бұлт қызметі біркелкі қабылдайды.

Бұл сериядағы алдағы видеода мен сізге IBM Watson -ге қалай кіру керектігін көрсетемін, сонымен қатар Google, Amazon сияқты осы немесе басқа бұлтты қызметтің мәліметтер банкінде жазамын.

11 -қадам: файлдар

Файлдарды жүктеңіз:

PDF

МЕН ЖОҚ

Ұсынылған: