Мазмұны:
- 1 -қадам: ESP32 түйреуіші
- 2 -қадам: NodeMCU түйреуіші
- 3 -қадам: MQTT
- 4 -қадам: құрастыру
- 5 -қадам: Диаграмма
- 6 -қадам: Кітапханалар
- 7 -қадам: Температура мен ылғалдылықты оқу кітапханасы
- 8 -қадам: MQTT кітапханасы
- 9 -қадам: MQTT.ino
- 10 -қадам: Графикалық
- 11 -қадам: файлдар
Бейне: IBM Watson ESP32 соңғы нүктесі ретінде: 11 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Мен бүгін мұнда Endpoint құрылғысын ESP32 көмегімен қалай орнату керек, содан кейін бұлтты қызметке жіберу туралы серияның бірінші бейнесін жариялап отырмын. Бұл нақты эпизодта мен сізге IBT Watson үшін MQTT протоколы арқылы DHT22 сенсорынан ақпаратты қалай жіберу керектігін көрсетемін.
Біз алдымен MQTT-ті енгіземіз, бұл IoT (Интернет заттары) ішінде қолданылатын машинадан машинаға хаттама. Біз сондай -ақ температура мен ылғалдылық сенсорынан деректерді осы хаттаманың көмегімен жібереміз, содан кейін веб -бетте осы деректермен графикті тексереміз.
1 -қадам: ESP32 түйреуіші
Мен мұнда біздің мысалда қолданатын ESP32 түйінін қойдым. Дегенмен, мен жобаның ESP8266 -мен, тіпті сол бастапқы кодпен де жұмыс істейтінін түсіндіргім келеді.
2 -қадам: NodeMCU түйреуіші
3 -қадам: 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 кітапханасы
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 -қадам: файлдар
Файлдарды жүктеңіз:
МЕН ЖОҚ
Ұсынылған:
Төрт робот тәрізді DIY нүктесі (V2 журналы): 9 қадам
DIY нүктесі төртбұрышты робот тәрізді (V2 журналы): Бұл https://www.instructables.com/DIY-Spot-Like-Quadru…robot dog v2. қосымша ақпарат алу үшін сайт. https://www.youtube.com/robolab19Бұл менің алғашқы роботым, менде
Темір жол үлгісінің қарапайым автоматтандырылған нүктесі: 10 қадам (суреттермен)
Қарапайым автоматтандырылған нүкте -теміржол үлгісі: Arduino микроконтроллері теміржол модельдерінің макетін автоматтандыру үшін тамаша. Орналасуды автоматтандыру көптеген мақсаттар үшін пайдалы, мысалы, орналасуды дисплейге қою, онда орналасу әрекетін пойыздарды автоматтандырылған жүйемен жүргізуге бағдарламалауға болады. Л
Ардуино провайдер ретінде -- Он алтылық файлды AVR -де жазу -- AVR сақтандырғышы -- Ардуино бағдарламашы ретінде: 10 қадам
Ардуино провайдер ретінде || Он алтылық файлды AVR -де жазу || AVR сақтандырғышы || Ардуино бағдарламашы ретінде: ……………………… Басқа бейнелер үшін менің YouTube каналыма ТІРКЕЛІҢІЗ …….. Бұл мақала бұл isp сияқты arduino туралы. Егер сіз он алтылық файлды жүктегіңіз келсе немесе сақтандырғышты AVR -ге орнатқыңыз келсе, сізге бағдарламашы сатып алудың қажеті жоқ, сіз жасай аласыз
IoT Hydroponics - PH мен EC өлшеу үшін IBM's Watson пайдалану: 7 қадам (суреттермен)
IoT Hydroponics - PH мен EC өлшеу үшін IBM's Watson қолдану: Бұл нұсқаулық гидропоника қондырғысының EC, pH және температурасын бақылауды және деректерді IBM's Watson қызметіне жүктеуді көрсетеді. Уотсон жұмысты бастау үшін тегін. Ақылы жоспарлар бар, бірақ бұл жоспар үшін ақысыз жоспар жеткілікті
Шамдарды сенсор ретінде қолданатын компьютерлік тінтуір ретінде Wiimote қалай қолдануға болады!: 3 қадам
Шамдарды сенсор ретінде пайдаланатын компьютерлік тінтуір ретінде Wiimote қалай қолдануға болады !!: Бұл нұсқаулықта Wii қашықтан басқару құралын (Wiimote) компьютерге қалай қосуға және оны тінтуір ретінде пайдалануға болатынын көрсетеді