Мазмуну:
- 1 -кадам: ESP32 Pinout
- 2 -кадам: NodeMCU Pinout
- 3 -кадам: MQTT
- 4 -кадам: Ассамблея
- 5 -кадам: Диаграмма
- 6 -кадам: Китепканалар
- 7 -кадам: Температура жана нымдуулук окуу китепканасы
- 8 -кадам: MQTT китепканасы
- 9 -кадам: MQTT.ino
- 10 -кадам: Графикалык
- 11 -кадам: Файлдар
Video: IBM Watson ESP32 менен Endpoint катары: 11 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Мен бүгүн бул жерде ESP32 менен Endpoint түзмөгүн кантип орнотуу, андан кийин булут кызматына жөнөтүү боюнча сериянын биринчи видеосун жайгаштырып жатам. Бул конкреттүү эпизоддо мен сизге IBM Watson үчүн MQTT протоколун колдонуп DHT22 сенсорунан маалыматты кантип жөнөтүүнү көрсөтөм.
Биз адегенде MQTTти киргизебиз, бул IoTде (Интернет нерселеринде) колдонулган машинадан машинага протокол. Биз ошондой эле бул протоколду колдонуп, температура жана нымдуулук сенсорунан маалыматтарды жөнөтөбүз, андан кийин веб -беттеги бул маалыматтар менен графикти текшеребиз.
1 -кадам: ESP32 Pinout
Мен бул жерде биздин мисалда колдонгон ESP32 Pinoutун койдум. Бирок, мен долбоордун ESP8266 менен, ал тургай, ошол эле код менен иштээрин ачык айткым келет.
2 -кадам: NodeMCU Pinout
3 -кадам: 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 китепканасы
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 -кадам: Файлдар
Файлдарды жүктөп алыңыз:
МЕН ЖОК
Сунушталууда:
ELEGOO Kit Lab же кантип иштеп чыгуучу катары жашоомду жеңилдетүү үчүн: 5 кадам (сүрөттөр менен)
ELEGOO Kit Lab же кантип иштеп чыгуучу катары менин жашоомду жеңилдетүү керек: Долбоордун максаттары Көптөрүбүз БУУнун контроллерлеринин айланасындагы макет менен көйгөйлөрүбүз бар. Көп учурда компоненттердин зымдары көптөгөн компоненттер менен кыйын болуп калат. Башка жагынан алганда, Arduino астындагы программалоо татаал болушу мүмкүн жана көптөгөн л
Ардуино ISP катары -- AVRде Hex файлын жазуу -- AVRдеги сактандыруучу -- Ардуино программист катары: 10 кадам
Ардуино ISP катары || AVRде Hex файлын жазуу || AVRдеги сактандыруучу || Ардуино программист катары: ……………………… Сураныч, дагы видеолор үчүн менин YouTube каналыма ЖАЗЫЛЫҢЫЗ …….. Бул макала isp сыяктуу ардуино жөнүндө. Эгерде сиз он алтылык файлды жүктөгүңүз келсе же AVRде сактандыргычты орноткуңуз келсе, анда программистти сатып алуунун кажети жок, сиз жасай аласыз
Stepper мотору менен башкарылуучу локомотив модели - Ротари Encoder катары Step Motor: 11 кадам (Сүрөттөр менен)
Stepper мотору менен башкарылуучу локомотив модели | Stepper мотору ротациялык кодер катары: Мурунку көрсөтмөлөрдүн биринде, биз тепкичтүү моторду айлануучу коддогуч катары кантип колдонууну үйрөндүк. Бул долбоордо биз азыр Arduino микроконтроллерин колдонуп, тепловоздун моделин башкаруу үчүн ошол тепкичтүү мотор айлануучу коддогучту колдонобуз. Ошентип, фу жок
PSPди компьютердик джойстик катары колдонуу жана компьютериңизди PSP менен башкаруу: 5 кадам (сүрөттөр менен)
PSPди компьютердик джойстик катары колдонуу жана андан кийин компьютериңизди PSP менен башкаруу: Сиз PSP homebrew менен көптөгөн сонун нерселерди жасай аласыз, жана бул нускамада мен сизге PSPти оюндарды ойноо үчүн джойстик катары кантип колдонууну үйрөтөм. джойстикти чычкан катары колдонууга мүмкүнчүлүк берген программа. Мына апа
Шамдарды сенсор катары колдонуп, Wiimoteту компьютердик чычкан катары кантип колдонуу керек?: 3 кадам
Шамдарды сенсор катары колдонуп, Wiimoteту компьютердик чычкан катары кантип колдонуу керек !!: Бул колдонмо Wii Remote (Wiimote) компьютериңизге кантип туташтырып, чычкан катары колдонууну көрсөтөт