Мазмуну:

IBM Watson ESP32 менен Endpoint катары: 11 кадам
IBM Watson ESP32 менен Endpoint катары: 11 кадам

Video: IBM Watson ESP32 менен Endpoint катары: 11 кадам

Video: IBM Watson ESP32 менен Endpoint катары: 11 кадам
Video: IoT Project - Sending Sensor Readings from ESP32 to IBM Cloud/Watson 2024, Ноябрь
Anonim
Image
Image
ESP32 Pinout
ESP32 Pinout

Мен бүгүн бул жерде ESP32 менен Endpoint түзмөгүн кантип орнотуу, андан кийин булут кызматына жөнөтүү боюнча сериянын биринчи видеосун жайгаштырып жатам. Бул конкреттүү эпизоддо мен сизге IBM Watson үчүн MQTT протоколун колдонуп DHT22 сенсорунан маалыматты кантип жөнөтүүнү көрсөтөм.

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

1 -кадам: ESP32 Pinout

Мен бул жерде биздин мисалда колдонгон ESP32 Pinoutун койдум. Бирок, мен долбоордун ESP8266 менен, ал тургай, ошол эле код менен иштээрин ачык айткым келет.

2 -кадам: NodeMCU Pinout

NodeMCU Pinout
NodeMCU Pinout

3 -кадам: MQTT

MQTT
MQTT

MQTT-IoTде колдонулган машинадан машинага протокол. Бул жеңил жана тез болушу үчүн иштелип чыккан. Бул жазылуу/жарыялоо системасын колдонот, мында түзмөк сизди кызыктырган конкреттүү маалыматка ээ болгон темага "жазылат", андан кийин түзмөк бул темага байланыштуу маалыматтарды жарыялаганда маалыматты алат.

Сервердик программа сыяктуу эле, MQTT программалык камсыздоого муктаж. Бул Брокер деп аталат. Бул учурда, биз IBMдин Bluemix IoT кызматын колдонобуз. Бул кызмат чекитти текшерүү үчүн бекер.

Андан кийин, бизде мобилдик телефон же планшет болушу керек, башкача айтканда, MQTT кардары катары. Бизде ошондой эле Түзмөк тарабы бар, бул термометр менен ESP тарабы. Бул температура жана нымдуулук маалыматтарын Bluemixке жөнөтөт, андан кийин бул маалыматты Application Sideге жөнөтөт.

4 -кадам: Ассамблея

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

Биздин схема 3.3v менен маалымат түйүнүнүн ортосундагы 4.7k Ohms резисторунан, ошондой эле ESP32 же NodeMCUнун GPIO4 менен туташкан DHT22ден турат. Ошентип, бул биздин акыркы чекит.

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

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

Мен бул жерде MQTT Жергиликтүү Брокери менен иштөөнүн бир нече жолдорун көрсөтөм. Мен диаграмманын эки моделин койдум. Видеодо мен, мисалы, дарбазаны ачуу үчүн Raspberry Pi колдонуп жаткан кырдаал жөнүндө сүйлөшөм.

Жогорудагы сүрөттө бизде жергиликтүү брокерди туруктуулук менен колдонгон биринчи архитектура, ал эми экинчи булутта брокер менен байланышкан экинчи архитектура бар.

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

6 -кадам: Китепканалар

Arduino IDEде, эскиз менюсуна өтүңүз -> Китепкананы кошуу -> Китепканаларды башкаруу…

Ачылган экранда "DHT" издөөнү киргизип, "DHT сенсор китепканасы" либин орнотуңуз.

Андан кийин, "PubSubClient" терип, "PubSubClient" либин орнотуңуз.

7 -кадам: Температура жана нымдуулук окуу китепканасы

Температура жана нымдуулук окуу китепканасы
Температура жана нымдуулук окуу китепканасы

8 -кадам: MQTT китепканасы

MQTT китепканасы
MQTT китепканасы

9 -кадам: MQTT.ino

Биз баштапкы кодду кайсы ESP колдонулуп жатканын текшерүүдөн жана тиешелүү китепкананы жана WiFi импорттоодон баштайбыз. Биз дагы эле MQTT Libs жана Температура жана Нымдуулук Сенсорун камтыйбыз.

// Verifica qual ESP está sendo utilizado // e importa a lib e wifi корреспонденти #if defined (ESP8266) #include #elsese #include #endif // Lib de MQTT #include // Lib do sensor de temperatura e umidade #include

Андан кийин, биз төмөнкүлөрдү аныктайбыз: маалыматтарды тапшыруунун ортосундагы аралык, колдонула турган MQTT сервери, диаграммадагы маалымат жана ID. Биз ошондой эле QUICK_START сабы кандай болушу керек экенин көрсөттүк.

// Intervalo entre os envios #INTERVAL 1000ди аныктоо // SSIDдин ордун алмаштыруу #SSE "TesteESP" дегенди аныктоо // Алмаштыруу папкасын "87654321" аныктоо // Server MQTT que iremos utlizar #define MQTst_SERVER ".messaging.internetofthings.ibmcloud.com "// Төмөнкү бөлүмдөрдүн бири да иштебейт // паракорчулуктун жардамы менен #define TOPIC_NAME" iot-2/evt/status/fmt/json "// ID que usaremos para conectar // QUICK_START структурасы туруктуу иштейт String QUICK_START = "d: quickstart: arduino:";

Бул кадамда биз уникалдуу идентификаторду аныктайбыз. Бул мисалда биз колдонгон түзмөктүн MAC дарегин колдонобуз. Бул QuickStart сайтында идентификация катары кызмат кылат. Бул жерде биз дагы Quickstart ID'син түзмөгүбүздүн идентификатору менен байланыштырабыз.

// DEVICE_ID жок, бирок бул жерде MAC дареги жок. = "240ac40e3fd0"; // Ыкчам түзмөктөр же тез баштоо жазуулары // диспозитив стр String CLIENT_ID = QUICK_START + DEVICE_ID;

Андан кийин MQTT жана WiFi, ошондой эле температура жана нымдуулуктун маанилери менен байланышкан объекттерди жана өзгөрмөлөрдү конфигурациялайбыз.

// Wi -Fi кардарлары Wi -Fi менен камсыз кылуу үчүн MQTT колдонушат; // Cliente MQTT, passamos a url do server, a porta // e o cliente 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 (); // Conectamos à rede WiFi setupWiFi (); // MQTT connectMQTTServer серверинин (Conectamos) сервери (); }

MQTT.ino - цикл

Loopто биз IBM Watson графикти түзүүнү күткөн темада жарыялануучу Jsonду түзүү үчүн сенсордук маалыматтарды чогултабыз.

void loop () {// Tempos agora em milisegundos көптөн бери = миллис (); // Мезгил -мезгили менен иштөө, эгерде (азыр - lastPublishTime> INTERVAL) {// Atualizamos o tempo em que ocorreu oútimo envio lastPublishTime = now; // Fazemos a leitura жана temperatura readSensor (); Serial.print ("Билдирүүнү жарыялоо:"); // Criamos o json que enviaremos server mqtt String msg = createJsonString (); Serial.println (msg); // Жалпыга маалымдоо каражаттары үчүн эч кандай чечим жок // client.publish (TOPIC_NAME, msg.c_str ()); }}

MQTT.ino - setupWiFi

Бул жерде биз WiFi тармагына туташуу үчүн жооптуу функцияга ээбиз.

// WiFivoid setupWiFi () {Serial.println (); Serial.print ("Туташууда"); Serial.print (SSID); // Кандай гана болбосун WiFi.begin (SSID, PASSWORD); // Espera até que a conexão com a make a seteecida while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } // Serial.println ("") акционердик коому; Serial.println ("WiFi туташты"); }

MQTT.ino - connectMQTTServer

Бул кадамда биз MQTT серверине туташуу үчүн жооптуу функцияны колдонобуз.

// MQTTvoid connectMQTTServer () {Serial.println ("MQTT Serverге туташууда …") сервердин жооптуу болушу. // Белгиленген болсо, анда (client.connect (CLIENT_ID.c_str ()))) {// Serial.println ("туташкан") менен байланышыңыз; } else {// Serial.print ("ката =") жаңылыштыгы; Serial.println (client.state ()); }}

MQTT.ino - readSensor

Бул функцияда температура жана нымдуулук маалыматтарынын окулушу аныкталат.

// FunSão жоопторду ишке ашыруу үчүн жооп берүү // readSensor () {өзгөрүлмө мааниси; // Температуранын мааниси = dht.readTemperature (); // Se o valor lido é válido if (! Isnan (value)) {// Armazena o novo valor da temperatura температура = балл; } // Негизги мааниси = dht.readHumidity (); // Se o valor for válido if (! Isnan (value)) {// Armazena o novo valor da umidade nem = value; }}

MQTT.ino - createJsonString

Бул жерде бизде маалыматтар окулган Json түзүү үчүн жооптуу функция бар.

// Функция жооптору боюнча // жооп Json com os dados lidos String createJsonString () {String data = "{"; маалыматтар+= "\" d / ": {"; data+= "\" температурасы / ":"; маалыматтар+= Сап (температура); маалыматтар+= ","; маалымат+= "\" нымдуулук / ":"; маалыматтар+= Стринг (нымдуулук); маалыматтар+= "}"; маалыматтар+= "}"; маалыматтарды кайтаруу; }

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

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

Сенсордун графигин көрүү үчүн, өтүңүз

quickstart.internetofthings.ibmcloud.com

Түзмөк ID талаасында, сиз коддо аныктаган DEVICE_IDди киргизиңиз.

- Бул Түзмөктүн идентификаторун башка адам жиберген маалыматтар менен карама -каршылыкты болтурбоо үчүн колдонулган уникалдуу идентификаторго өзгөртүү маанилүү.

Акыр -аягы, шарттарды кабыл алып, чыкылдатыңыз.

Бул долбоордо биз IBM Watson серверинде Endpoint'ибизди сынап көрдүк. Бул биздин Arduino программабыз платформа менен туура байланышта болушун камсыздайт жана биз жөнөткөн маалыматтар, эгерде биз каттоо эсебин түзсөк, булут кызматы тарабынан оңой кабыл алынат.

Бул сериядагы келе жаткан видеодо мен сизге IBM Watsonго кантип кирүү керектигин көрсөтөм, ошондой эле Google, Amazon сыяктуу тигил же булут сервисинин маалымат банкына жазам.

11 -кадам: Файлдар

Файлдарды жүктөп алыңыз:

PDF

МЕН ЖОК

Сунушталууда: