Мазмуну:

Узун диапазондогу зымсыз температура жана дирилдөө сенсорлору менен иштөөнү баштоо: 7 кадам
Узун диапазондогу зымсыз температура жана дирилдөө сенсорлору менен иштөөнү баштоо: 7 кадам

Video: Узун диапазондогу зымсыз температура жана дирилдөө сенсорлору менен иштөөнү баштоо: 7 кадам

Video: Узун диапазондогу зымсыз температура жана дирилдөө сенсорлору менен иштөөнү баштоо: 7 кадам
Video: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, Июль
Anonim
Узун диапазондогу зымсыз температура жана дирилдөө сенсорлору менен баштоо
Узун диапазондогу зымсыз температура жана дирилдөө сенсорлору менен баштоо

Кээде дирилдөө көптөгөн колдонмолордо олуттуу көйгөйлөрдүн себеби болуп саналат. Машина шахталары менен подшипниктерден баштап катуу дисктин иштешине чейин, вибрация машинанын бузулушуна, эрте алмаштырууга, начар иштөөгө алып келет жана тактыкка чоң сокку урат. Мониторинг жана машинанын титирөөсүнүн маал -маалы менен анализделиши машинанын бөлүгүнүн эрте бузулушу жана эскирүү көйгөйүн чече алат.

Бул көрсөтмөдө биз IoT аралыкка зымсыз титирөө жана температура сенсорлорунун үстүндө иштейбиз. Булар көптөгөн кеңири таралган тиркемелери бар өнөр жай класстагы сенсорлор.

  • Металл иштетүү
  • Электр энергиясын өндүрүү
  • Mining
  • Тамак -аш жана суусундук

Ошентип, бул Нускамада биз төмөнкүлөрдү баштан өткөрөбүз:

  • XCTU жана Labview UI аркылуу зымсыз сенсорлорду конфигурациялоо.
  • Сенсордон вибрация баалуулуктарын алуу.
  • Xbee аппаратынын жана xbee протоколунун иштешин түшүнүү.
  • Түз тутум порталын колдонуу менен WiFi ишеним грамоталарын жана IP конфигурациясын конфигурациялоо

1 -кадам: Аппараттык жана программалык камсыздоонун өзгөчөлүгү

Аппараттык жана программалык камсыздоонун спецификасы
Аппараттык жана программалык камсыздоонун спецификасы
Аппараттык жана программалык камсыздоонун спецификасы
Аппараттык жана программалык камсыздоонун спецификасы
Аппараттык жана программалык камсыздоонун спецификасы
Аппараттык жана программалык камсыздоонун спецификасы

Аппараттык мүнөздөмө

  • Зымсыз титирөө жана температура сенсорлору
  • Zigmo алуучу
  • ESP32 BLE/ WiFi түзмөгү

Программалык камсыздоонун өзгөчөлүгү

  • Arduino IDE
  • LabView Utility

2 -кадам: XCTU аркылуу зымсыз сенсорду жана зигмо алуучуну конфигурациялоо

XCTU аркылуу зымсыз сенсорду жана зигмо алуучуну конфигурациялоо
XCTU аркылуу зымсыз сенсорду жана зигмо алуучуну конфигурациялоо
XCTU аркылуу зымсыз сенсорду жана зигмо алуучуну конфигурациялоо
XCTU аркылуу зымсыз сенсорду жана зигмо алуучуну конфигурациялоо

Ар бир IoT түзмөгүнө булутту орнотуу жана ар кандай түзмөктөрдүн ортосунда зымсыз интерфейсти орнотуу үчүн байланыш протоколу керек.

Бул жерде Wireless Sensors жана Zigmo Receiver аз кубаттуулукту жана XBee узак аралыкка чечүүнү колдонушат. XBee 902ден 928 МГцке чейинки ISM диапазондорунда иштөөнү көрсөткөн ZigBee протоколун колдонот.

Xbee XCTU программасын колдонуу менен конфигурацияланышы мүмкүн

  1. Xbee түзмөгүн издеңиз же сол жактын жогорку сөлөкөтүн чыкылдатуу менен жаңы Xbee түзмөгүн кошуңуз.
  2. Түзмөк сол жактагы панелде көрсөтүлгөн болот.
  3. орнотууларды көрүү үчүн түзмөктү эки жолу чыкылдатыңыз.
  4. Эми жогорку оң бурчтагы консолдун сүрөтчөсүн чыкылдатыңыз
  5. Консоль чыгуусунда келе жаткан маанини көрө аласыз
  6. Бул жерде узундугу 54 байт болгон кадрды алып жатабыз
  7. бул байттар реалдуу баалуулуктарды алуу үчүн дагы иштетилмек. чыныгы температураны жана титирөө баалуулуктарын алуу тартиби алдыдагы кадамдарда айтылган.

3 -кадам: Labview Utility колдонуп Wireless Temperature and Vibration Values Analysis

Зымсыз температура жана дирилдөө баалуулуктарын анализдөө Labview Utility
Зымсыз температура жана дирилдөө баалуулуктарын анализдөө Labview Utility
Зымсыз температура жана дирилдөө баалуулуктарын анализдөө Labview Utility
Зымсыз температура жана дирилдөө баалуулуктарын анализдөө Labview Utility

Сенсор эки режимде иштейт

  • Конфигурация режими: Пан IDнин, конфигурациянын, кайталоолордун санын конфигурациялоо ж.
  • Иштөө режими: Биз аппаратты Run режиминде иштетип жатабыз. Жана бул баалуулукту талдоо үчүн биз Labview Utility колдонуп жатабыз

Бул Labview UI жакшы графиктердеги баалуулуктарды көрсөтөт. Бул учурдагы жана мурунку баалуулуктарды көрсөтөт. Labview UI жүктөө үчүн бул шилтемеге кире аласыз.

иштетүү режимине өтүү үчүн конуу баракчасынын менюсунан Чуркоо сүрөтчөсүн басыңыз.

4 -кадам: Captive Portal колдонуп DHCP/статикалык IP орнотууларын конфигурациялоо

Captive Portal аркылуу DHCP/Static IP орнотууларын конфигурациялоо
Captive Portal аркылуу DHCP/Static IP орнотууларын конфигурациялоо
Captive Portal аркылуу DHCP/Static IP орнотууларын конфигурациялоо
Captive Portal аркылуу DHCP/Static IP орнотууларын конфигурациялоо
Captive Portal аркылуу DHCP/Static IP орнотууларын конфигурациялоо
Captive Portal аркылуу DHCP/Static IP орнотууларын конфигурациялоо

Биз туткун порталын WiFi ишеним грамоталарын сактоо жана IP жөндөөлөрү аркылуу сүзүү үчүн колдонобуз. Туткун порталына толук киришүү үчүн, сиз төмөндөгү көрсөтмөлөрдөн өтсөңүз болот.

Туткун порталы бизге Статикалык жана DHCP орнотууларын тандоо мүмкүнчүлүгүн берет. Жөн гана Статикалык IP, Subnet Mask, шлюз жана Wireless Sensor Gateway сыяктуу грамоталарды киргизиңиз, ошол IPде конфигурацияланат.

5 -кадам: Туткун порталын колдонуу менен WiFi орнотууларын сактоо

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

Веб -баракча жайгаштырылган, анда жеткиликтүү WiFi тармактары жана RSSI көрсөтүлгөн тизме бар. WiFi тармагын жана сырсөздү тандап, тапшырууну киргизиңиз. Ишеним грамоталары EEPROMда жана IP жөндөөсү SPIFFSте сакталат. Бул тууралуу көбүрөөк маалыматты бул нускамадан табууга болот.

6 -кадам: UbiDotsко сенсордук окууларды жарыялоо

Бул жерде биз температура жана нымдуулук маалыматын алуу үчүн ESP 32 шлюз ресивери менен зымсыз температура жана дирилдөө сенсорлорун колдонуп жатабыз. Биз маалыматты UbiDotsко MQTT протоколу аркылуу жөнөтүп жатабыз. MQTT жарыялоо жана жазылуу механизмине эмес, суроо -талапка жана жоопко ылайык. Бул HTTPге караганда ылдам жана ишенимдүү. Бул төмөнкүдөй иштейт.

Зымсыз сенсордун маалыматтарын окуу

Биз Зымсыз Температура жана Дирилдөө Сенсорлорунан 29 байттык кадр алып жатабыз. Бул кадр чыныгы температураны жана дирилдөө маалыматын алуу үчүн башкарылган

if (Serial2.available ()) {data [0] = Serial2.read (); кечигүү (k); if (data [0] == 0x7E) {Serial.println ("Got Packet"); while (! Serial2.available ()); for (i = 1; i <55; i ++) {data = Serial2.read (); кечигүү (1); } if (data [15] == 0x7F) /////// resive data туура экендигин текшерүү үчүн {if (data [22] == 0x08) //////// сенсордун түрүн текшериңиз туура {rms_x = ((uint16_t) (((маалыматтар [24]) << 16) + ((маалыматтар [25]) << 8) + (маалыматтар [26]))/100); rms_y = ((uint16_t) (((маалыматтар [27]) << 16) + ((маалыматтар [28]) << 8) + (маалыматтар [29]))/100); rms_z = ((uint16_t) (((маалыматтар [30]) << 16) + ((маалыматтар [31]) << 8) + (маалыматтар [32]))/100); max_x = ((uint16_t) (((маалыматтар [33]) << 16) + ((маалыматтар [34]) << 8) + (маалыматтар [35]))/100); max_y = ((uint16_t) ((((маалыматтар [36]) << 16) + ((маалыматтар [37]) << 8) + (маалыматтар [38]))/100); max_z = ((uint16_t) ((((маалыматтар [39]) << 16) + ((маалыматтар [40]) << 8) + (маалыматтар [41]))/100);

min_x = ((uint16_t) (((маалымат [42]) << 16) + ((маалымат [43]) << 8) + (маалымат [44]))/100); min_y = ((uint16_t) ((((маалыматтар [45]) << 16) + ((маалыматтар [46]) << 8) + (маалыматтар [47]))/100); min_z = ((uint16_t) ((((маалыматтар [48]) << 16) + ((маалыматтар [49]) << 8) + (маалыматтар [50]))/100);

cTemp = (((((маалыматтар [51]) * 256) + маалыматтар [52])); калкыма батарея = ((маалымат [18] * 256) + маалымат [19]); калкып чыңалуу = 0.00322 * батарея; Serial.print ("Сенсордун номери"); Serial.println (маалыматтар [16]); Serial.print ("Сенсор түрү"); Serial.println (маалыматтар [22]); Serial.print ("Камтылган программанын версиясы"); Serial.println (маалыматтар [17]); Serial.print ("Цельсий боюнча температура:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("X огунда RMS термелүүсү:"); Serial.print (rms_x); Serial.println ("мг"); Serial.print ("Y огунда RMS термелүүсү:"); Serial.print (rms_y); Serial.println ("мг"); Serial.print ("Z огунда RMS термелүүсү:"); Serial.print (rms_z); Serial.println ("мг");

Serial.print ("X огунда мини вибрация:");

Serial.print (min_x); Serial.println ("мг"); Serial.print ("Y огунда мин титирөө:"); Serial.print (min_y); Serial.println ("мг"); Serial.print ("Z огунда мин титирөө:"); Serial.print (min_z); Serial.println ("мг");

Serial.print ("ADC мааниси:");

Serial.println (батарея); Serial.print ("Батарея чыңалуусу:"); Serial.print (чыңалуу); Serial.println ("\ n"); if (чыңалуу <1) {Serial.println ("Батареяны алмаштыруу убактысы"); }}} else {for (i = 0; i <54; i ++) {Serial.print (data ); Serial.print (","); кечигүү (1); }}}}

UbiDots MQTT API'ге туташууда

MQTT процесси үчүн аталыш файлын кошуңуз

#"PubSubClient.h" кошуу

кардардын аты, брокердин дареги, токен идентификатору сыяктуу MQTT үчүн башка өзгөрмөлөрдү аныктаңыз (Биз токен идентификаторун EEPROMдан алып жатабыз)

#define MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"; жүк жүктөмү [100]; char темасы [150]; // токен ID String tokenId сактоо үчүн өзгөрмө түзүү;

Ар кандай сенсордук маалыматтарды сактоо үчүн өзгөрмөлөрдү түзүңүз жана теманы сактоо үчүн char өзгөрмөсүн түзүңүз

#define VARIABLE_LABEL_TEMPF "tempF" // Өзгөрмө энбелгиси #аныктоо VARIABLE_LABEL_TEMPC "tempC" // Degine VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid" // Assing

char topic1 [100];

char topic2 [100]; char topic3 [100];

маалыматтарды MQTT темасына жарыялоо, жүктөм {"tempc": {value: "tempData"}} окшойт

sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (пайдалуу жүк, "%s", "");

// Пайдалуу жүктү sprintf тазалайт (пайдалуу жүк, "{"%s / ":", VARIABLE_LABEL_TEMPC);

// sprintf маанисин кошот (пайдалуу жүк, "%s {" мааниси / ":%s}", пайдалуу жүк, str_cTemp);

// sprintf маанисин кошот (пайдалуу жүк, "%s}", пайдалуу жүк);

// Serial.println (пайдалуу жүк) сөздүктүн кашаасын жабат;

Serial.println (client.publish (topic1, payload)? "Published": "жарыяланбаган");

// Башка темада да ушундай кылыңыз

client.publish () маалыматтарды UbiDotsко жарыялайт

7 -кадам: маалыматтарды визуалдаштыруу

Берилиштерди визуалдаштыруу
Берилиштерди визуалдаштыруу
  • Ubidotsко барып, каттоо эсебиңизге кириңиз.
  • Жогорку панелдеги Маалыматтар өтмөгүнөн Башкаруу тактасына өтүңүз.
  • Эми жаңы виджеттерди кошуу үчүн "+" белгисин басыңыз.
  • Тизмеден виджет тандап, өзгөрмөнү жана түзмөктөрдү кошуңуз.
  • Сенсордун маалыматтары ар кандай виджеттерди колдонуу менен панелде чагылдырылышы мүмкүн.

Жалпы код

HTML жана ESP32 үчүн Over кодун бул GitHub репозиторийинен тапса болот.

  1. ncd ESP32 сынык тактасы.
  2. ncd Зымсыз температура жана нымдуулук сенсорлору.
  3. pubsubclient
  4. UbiDots

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