Мазмуну:

Башка IoT Weather Station: 8 кадам
Башка IoT Weather Station: 8 кадам

Video: Башка IoT Weather Station: 8 кадам

Video: Башка IoT Weather Station: 8 кадам
Video: 10 САМЫХ БОЛЬШИХ МАШИН И МЕХАНИЗМОВ В МИРЕ 2024, Ноябрь
Anonim
Башка IoT аба ырайы станциясы
Башка IoT аба ырайы станциясы
Башка IoT аба ырайы станциясы
Башка IoT аба ырайы станциясы
Башка IoT аба ырайы станциясы
Башка IoT аба ырайы станциясы
Башка IoT аба ырайы станциясы
Башка IoT аба ырайы станциясы

Төмөндө атамдын туулган күнүнө белек болду; Мен көргөн башка Instructableдан шыктанган жана алгач ага өзүн өзү куруучу комплект катары далилдөөгө ниеттенип жүргөн. Бирок, мен аны менен бул долбоордун үстүндө иштей баштаганда, мен белекке шыктандырган алгачкы окуу куралы эскирип калганын жана башка онлайн сабактарынын көбүндө түшүндүрмөлөрүндө олуттуу боштуктар бар экенин тез түшүндүм. Мен дагы бир IoT аба ырайынын станциясын жарыялоону чечтим, аны аягына чейин баштоо оңой болот.

Андан тышкары, бул көрсөтмө сенсордун окуусун көзөмөлдөө жана жаздыруу үчүн Blynk, Google Sheets же экөөнү кантип колдонууну көрсөтөт. Мындан тышкары, Google Барактарынын жазуулары баракка түздөн -түз жазылат (үчүнчү жактын кызматынан өтпөстөн).

Стивенсон экранына келсек, Интернетте 3D басып чыгарууга мүмкүн болгон көптөгөн нерселер бар. https://www.thingiverse.com/thing:1718334. Мен бул Нускамалык үчүн ушул нерсеге негизделем.

Стивенсон экраны - бул "инструменттердин баш калкалоочу жайы - бул аба ырайынын тышкы булактардан жаан -чачынга жана түздөн -түз жылуулук нурлануусуна каршы метеорологиялык инструменттердин баш калкалоочу жайы же корпусу, ошол эле учурда алардын айланасында абанын эркин айланышына мүмкүнчүлүк берет". (Wikipedia).

Бөлүктөр

  • Wemos LolIn - NodeMCU v3 (USD 1.43)
  • BME280 (Температура, басым жана нымдуулук сенсору) (USD 2.40)
  • 6V 1000mA Solar Panel (USD 9.96)
  • 5V 1A Micro USB 18650 Lithium Battery Charging Board Charger Module+Protection Dual Functions TP4056 (USD 0.99)
  • 4x 1.2V NiMH кайра заряддалуучу батареялары
  • Батарея кармагыч (4x AA, жанаша жана башынан аягына чейин)
  • Микро USB Эркек туташтыргычы
  • Кабелдик байланыштар
  • 3x Wing Nuts
  • Таяк же шыпыргы таягы
  • Эпоксид жана/же супер клей (артка кылчайганда, кремний жакшыраак иштесе болмок)

Программалык камсыздоо

  • Blynk App
  • Google Барактар (эгер сиз тарыхый маалыматтарга жеткиңиз келсе)
  • EasyEDA (схеманы чийүү үчүн)
  • Arduino IDE

Куралдар

  • Кандооч
  • Solder
  • Жылуулукту кыскартуучу түтүктөр
  • 3D принтер
  • Глей тапанчасы

1 -кадам: 3D басып чыгаруу - Стивенсон экраны

3D басып чыгаруу - Стивенсон экраны
3D басып чыгаруу - Стивенсон экраны
3D басып чыгаруу - Стивенсон экраны
3D басып чыгаруу - Стивенсон экраны
3D басып чыгаруу - Стивенсон экраны
3D басып чыгаруу - Стивенсон экраны

Жогоруда айтылгандай, файлдарды https://www.thingiverse.com/thing:1718334 сайтынан жүктөп алып, керектүү биттерди басып чыгарыңыз. Чогултуу көрсөтмөлөрү дагы жогорудагы шилтемеде. Мен кээ бир өзгөртүүлөрдү киргиздим (төмөндөгү эскертүүлөрдү караңыз).

Басылган бөлүктөрү:

  • Top_Cover_for_m3_tapping.stl
  • Middle_Ring.stl (x5)
  • Middle_Ring_bottom.stl (x1, STL жогоруда тиркелген)
  • Solid_Plate.stl (x1)
  • Solid_Plate_Base.stl (x1)
  • Pole_Mount_1in_Round.stl
  • Sensor_Grid.stl
  • Electronics_Mount.stl
  • My_Solar_Cell_Mount.stl (x2, STL жогоруда тиркелген)

Чогултуу тартиби мындай:

  • Тешиктерди сайыңыз
  • M3 тилкелерин оюкчалуу розеткага сайыңыз
  • Top_Cover
  • Solid_Plate
  • Middle_Rings
  • Sensor_Gridге жылдырыңыз
  • Electronics_Mount
  • Solid_Plate_Bottom
  • Pole_Mount
  • My_Solar_Cell_Mounts Top_Cover чокусуна эпоксидделген

Мен Күн тактасынан заряддоо кабелин заряддагычка туташтыруу үчүн Solid плиталарында тешиктерди бурдум, андан кийин кабелди контроллерден Sensor_Gridдеги сенсорго иштетүүгө уруксат берүү үчүн.

Аяктагандан кийин, сенсор ар бир 60 мүнөттө төмөнкү көрсөткүчтөрдү алуу үчүн программаланган:

  • Температура
  • Нымдуулук
  • Басым

Эскертүүлөр

  • Мен күн батареясын орнотууга ылайыкташтырып, күн батареясын кармап турууга ылайыкташтырдым.
  • Мен электрониканы Pole_Mount менен Solid_Plate ортосунда орноттум. Бул электроника үчүн жакшы коргоону камсыз кылгандай көрүнгөн жок. Мен ошондуктан Solid_Plate'те юбка болгондой кылып өзгөртүп койдум, ал боштукту жабат жана ошону менен электрониканы жакшыраак коргойт. Жогорудагы сүрөттөрдүн айрымдары мен бул өзгөртүүнү киргизгенге чейин тартылган.
  • Менин эпоксидим күн панелин кармабай туруп калды, мен аны супер клей менен кайра туташтырдым. Мен кремнийди колдонууга туура келет деп ойлойм.

2 -кадам: Circuit

Circuit
Circuit
Circuit
Circuit

Схемада көрсөтүлгөндөй схеманы туташтырыңыз, LoLin менен BME280ди сүрөттө көрсөтүлгөндөй 3D-сеткага орнотуңуз.

BME280 -> LiLon

  • VCC -> 3.3V
  • GND -> GND
  • SCL -> D1
  • SDA -> D2

LiLon -> LiLon

D0 -> RST (бул контроллерди терең уйкудан ойготуу үчүн керек, бирок код контролерге жүктөлгөндөн кийин гана туташышы керек)

ЭСКЕРТҮҮ

Тиешелүү LiLon батареясын алууда кыйынчылыктар болду. Ошондой эле кандайдыр бир себептерден улам VIN аркылуу иштөө ийгиликке жеткен жок. Ошентип, мен төмөнкүдөй күч бердим:

  • TP4056дан чыгаруу Эркек USB туташтыргычына туташтырылган, андан кийин аны иштетүү үчүн тактанын USB розеткасына туташтырылган.
  • TP4056дагы B- жана B+ NiMH батареяларын кармаган AA батарея кармагычка туташкан.

3 -кадам: IoT - Blynk

IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk

"Blynk-бул ыңгайлаштырылган мобилдик тиркемелери, жеке булуту, эрежелер кыймылдаткычы жана түзмөктү башкаруунун аналитика тактасы менен жабдык-агностикалык IoT платформасы". Негизинен бул Интернет аркылуу дүйнөнүн каалаган жеринен алыскы сенсорлорду коопсуз башкарууга жана көзөмөлдөөгө мүмкүндүк берет. Коммерциялык кызмат болгондо, ар бир эсеп 2000 бекер кредит менен келет. Кредиттер ар кандай өлчөгүчтөрдү, дисплейлерди, билдирүүлөрдү ж.б сенсор же сенсорлор менен байланыштырууга мүмкүндүк берет. Жазылуу баасы хоббисттин бюджетинин чегинен чыкпаса да, бекер кредиттер ушул сыяктуу жөнөкөй долбоор үчүн жетиштүү.

Кызматты колдонууну баштоо үчүн адегенде Blynk тиркемесин телефонуңузга/түзмөгүңүзгө жүктөп алышыңыз керек, түзүү жана эсепке алуу (же учурдагы каттоо эсеби менен кирүү) жана андан кийин төмөнкүдөй жаңы долбоорду түзүү керек:

  • Аппаратты тандаңыз
  • Долбооруңузга ат бериңиз (бул учурда мен "Weather Station" колдондум.
  • "Түзүү" баскычын чыкылдатыңыз
  • Сиз менен электрондук почта аркылуу Аутентификация кодун аласыз.

Керектүү виджеттерди кошуунун кажети жок. Менин 2000 бекер кредитим менен мен төмөнкүлөрдү коштум:

  • 3 ченегичтер
  • 1 Супер диаграмма

Өлчөгүчтөр жана диаграммалар тиркелген сүрөттөргө ылайык орнотулган, алардын ар бирине коддо колдонула турган өзүнүн виртуалдык пини бекитилген.

Орнотуулар аяктагандан кийин, датаны чогултууну баштоо үчүн жогорку оң жактагы ойнотуу баскычын басууга болот.

Көбүрөөк маалымат алуу үчүн караңыз

docs.blynk.cc/#getting-started.

4 -кадам: Код - Arduino IDEди даярдоо

Бул долбоорду аяктоо үчүн Arduino IDEге төмөнкү китепканаларды кошуу керек:

  • https://github.com/adafruit/Adafruit_BME280_Library (температура, басым жана нымдуулук сенсоруна муктаждык)
  • https://github.com/adafruit/Adafruit_Sensor
  • https://github.com/esp8266/Arduino (бул сизге ESP8266 тактасына кирүүгө мүмкүнчүлүк берет)
  • https://github.com/blynkkk/blynk-library/releases/tag/v0.6.1 (Blynk китепканасы)
  • https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect (Google Барактарына туташуу үчүн HTTPSRedicect керек)

Arduino IDE үчүн китепканаларды орнотуу боюнча нускамаларды алуу үчүн https://www.arduino.cc/en/guide/libraries дарегине баш багыңыз.

Менин аппараттык жөндөөлөрүм төмөнкүдөй:

  • Такта: NodeMCU 1.0 (ESP-12E Module)
  • Жүктөө ылдамдыгы: 115200

Тиркелген кодду кийинки кадамдарда колдонуп жатканда, төмөнкүлөрдү кошууга байланыштуу коддогу комментарийлерге кайрылыңыз:

  • Wifi SID
  • Wifi сырсөзү
  • Blynk авторизация ачкычы
  • Google Script ID
  • Google Sheet бөлүшүү ачкычы

5 -кадам: Код - Blynk

Мен BME280 сенсорумдун иштеши үчүн төмөнкү линияны камтыган мисалды тапканга чейин кылымдар бою күрөштүм.

абал = bme.begin (0x76); // Мен колдонгон сенсордун I2C дареги 0x76

Мен сенсордун дарегин коюшум керек окшойт. Мен муну кылгандан кийин баары жакшы иштеди.

Blynk чынында эле сонун мобилдик колдонуучу интерфейсине ээ, бирок ал төмөнкү чектөөлөргө ээ:

  • Болгону 2000 бекер кредит, андан да көптү талап кылган долбоорлор кымбат баалуу жазылууну талап кылат (эгерде сиз өзүңүздүн Blynk сервериңизди кармап турбасаңыз).
  • Эгер сиз өзүңүздүн Blynk серверин өткөрбөсөңүз, тарыхый маалыматтарды экспорттой албайсыз.

Жогорудагы себептерден улам, мен Google Sheetке маалыматтарды чогултуу процессин кантип бириктире алам деп карадым. Бул кийинки бөлүмдө камтылган.

6 -кадам: Код - Google Барактар

Код - Google Барактар
Код - Google Барактар
Код - Google Барактар
Код - Google Барактар
Код - Google Барактар
Код - Google Барактар

Тарыхый маалыматтарды кийинчерээк талдай ала тургандай окууңузду жазуу үчүн, аны кандайдыр бир маалымат базасына жазышыңыз керек. HTTPSRedirect китепканасы бизге маалыматтарыбызды Google баракчасына жазуу менен ушундай кылууга мүмкүндүк берет.

Бул ыкма менен негизги чектөөлөр болуп төмөнкүлөр саналат:

  • Жакшы мобилдик колдонуучу интерфейси жок
  • Google Барагында 400 000 уяча болушу мүмкүн. Бул долбоор үчүн бул чоң маселе эмес, анткени бул чекке жеткенге 11 жыл гана убакыт керек.

Google Барагы төмөнкүдөй орнотулган.

Эки барактан турган Google Барагын түзүңүз.

1 -барак: маалыматтар

Маалымат баракчасына 4 мамыча керек, башкача айтканда Дата/Убакыт, Температура, Нымдуулук, Басым (мамычалар Адан Dга чейин). Мамычаларды тиешелүү түрдө форматтаңыз, мис. Күнү жана убактысы уячаларда көрсөтүлүшү үчүн А тилкеси "Күндүн убактысы" болот.

2 -барак: Куралдар тактасы

Төмөндө көрсөтүлгөн формулаларды киргизип, тиркелген сүрөттөргө ылайык панель баракчасын түзүңүз:

  • B2: = counta (Маалымат! B: B) -1
  • B3: = B1+УБАКЫТ (CONCATENATE ("00:", Текст (G7, "0")))
  • B6: = суроо (Берилиштер! A2: D, "В тартибин A түшүү чеги менен тандоо 1")
  • C6: = суроо (Маалыматтар! A2: D, "C заказын A чек чеги менен тандоо 1")
  • D6: = суроо (Берилиштер! A2: D, "D тартибин A түшүү чеги менен тандоо 1")
  • B8: = суроо (Берилиштер! A2: D, "В заказды В түшүрүү чеги 1 боюнча тандоо")
  • C8: = query (Data! A2: D, "C order lim 1 менен заказды тандоо")
  • D8: = query (Маалымат! A2: D, "D разряд 1 боюнча буйрутманы тандоо")
  • B9: = суроо (Берилиштер! A2: D, "B тартибин B түшүрүү чеги 1 боюнча тандоо")
  • C9: = суроо (Маалымат! A2: D, "C заказын C түшүү чеги 1 боюнча тандоо")
  • D9: = суроо (Маалымат! A2: D, "D тартибин D түшүрүү чеги 1 боюнча тандоо")
  • B11: = суроо (Берилиштер! A2: D, "В тандап алгыла, анда В нөлдүк тартип эмес, В аск чеги 1)"
  • C11: = суроо (Маалыматтар! A2: D, "А танда, анда C нөлдүк тартип эмес, C аск чеги 1")
  • D11: = query (Маалымат! A2: D, "D'ди D аск чеги 1 боюнча нөлдүк тартип эмес, А танда")
  • B12: = суроо (Берилиштер! A2: D, "В танда, анда В нөлдүк тартип эмес, В аск чеги 1")
  • C12: = суроо (Маалымат! A2: D, "C танда, анда C нөлдүк тартип эмес, C аск чеги 1")
  • D12: = суроо (Маалымат! A2: D, "D танда, анда D нөлдүк тартипте D аск чеги 1 эмес)"
  • G3: = 4+B2*4+29+17
  • G4: = (G2-G3)/G2
  • G6: = G2/4 G8: = G7*G6
  • G9: = (G8/60)/24
  • G10: = G9/365
  • G11: = ((((((G2-G3)/4)*G7)/60)/24/365)

Google Барактарынын максимум 400 000 уячасы болушу мүмкүн. Бул ар бир окуу 4 уячаны колдонгону менен бирге, канча боштук калганын жана качан түгөнөрүн эсептөө үчүн колдонулат.

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

"Диаграмма редактору" скриншоту Температура графигинин негизги орнотулушун көрсөтөт. Ошол эле орнотууну колдонуу менен түзүлгөн башка графиктер. Графиктердин ортосундагы гана айырмачылык минималдуу вертикалдуу огунун мааниси болгон (ыңгайлаштыруу өтмөгүнүн астында жайгашкан). Ыңгайлаштыруу өтмөгүндө ошондой эле кирүү аттары, график аталыштары ж.

Бизге азыр URL дарегин чалуу аркылуу маалыматтарды жазууга мүмкүндүк бере турган Google Script керек.

Сценарий түзүлүүдө

Google Sheet URL'де "d /" менен " / edit" ортосундагы ачкычты белгилеңиз. Бул сиздин -Youogle-Sheet-Sharing-Key- жана төмөнкү коддо керек болот.

Кийинки Куралдар> Скрипт редакторуна барып, тиркелген GS файлына кодду чаптап, Google App Script түзүңүз. Var ss = SpreadsheetApp.openByUrl ("https://docs.google.com/spreadsheets/d/-Your-Google-Sheet-Sharing-Key–/edit") жаңыртуу; бөлүшүү ачкычын чагылдыруу үчүн.

Эми скриптти Жарыялоо> Желе Колдонмосу катары жайгаштыруу аркылуу жарыялаңыз.

Учурдагы веб-колдонмонун URL'ин көчүрүп, GScriptID (-Your-Google-Script-ID–) алуу үчүн керек болгон жерге сактап коюңуз. GScriptID - "s /" менен " / exec?" Ортосундагы сап. "Баары, атүгүл анонимдүү" колдонмого кире алаарын текшериңиз. Бул процесс учурунда сизден кээ бир уруксаттарды берүү талап кылынат. Буларга уруксат берүү маанилүү.

Эскертүү: Сиз кодуңузду өзгөрткөн сайын, сиз "Жаңы" долбоордун версиясын түзүп, аны жарыялашыңыз керек, антпесе дагы эле эски кодду уруп кете бересиз.

Эми сиз скриптти https://script.google.com/macros/s/-Your-Google-Script-ID–/exec?Temperature=10&Humidity=11&Pressure=12 дарегине өтүп текшере аласыз. Бул шилтемени жаңырткан сайын, Google Sheetке жаңы жазуу кошулушу керек.

Бул жогоруда төмөнкү окуу куралынан алынды: https://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/. Бул окуу куралы эскирип калгандыктан, кийинки бөлүмдөгү Arduino менен байланышкан код акыркы HTTPSRedirect китепканаларын жайгаштыруу үчүн өзгөртүлдү.

Arduino коду

Тиркелген кодду караңыз.

7 -кадам: Код - Blynk & Google Sheets

Эки дүйнөдөн эң жакшы нерселерди алуу үчүн, Blynk жана Google Sheets үчүн кодду бириктирсе болот.

Тиркелген кодду караңыз.

8 -кадам: Акыркы комментарийлер

Final Comments
Final Comments
Final Comments
Final Comments

Жогоруда айтылгандардын эч кимиси менин идеяларым эмес, тескерисинче бул башкалардын идеяларына жана эмгектерине негизделген долбоор. Мен аны бир жерге чогулткандан ырахат алдым. кызыктуу жана практикалык долбоор үчүн ар кандай технологияларды жана куралдарды колдонуу. Окугандарымды Google Барагында кантип сактоону үйрөнүү мага өзгөчө жакты. Бул үчүн мен ElectronicsGuy компаниясына (Sujay Phadke) ыраазычылык билдиргим келет.

Жаңыртуу

Бул долбоорду аяктагандан кийин зымсыз жөндөөлөрүмдү өзгөртүү керек болчу. Мен азыр башка компьютерде иштеп жаткам. Өзгөртүүлөрдү жүктөгөндөн кийин, долбоор иштебей калды. Кээ бир көйгөйлөрдү чечкенден кийин, терең уйку функциясы иштебей жатат деген жыйынтыкка келдим. Мен долбоорду үйгө алып барып, ошол жерге жүктөдүм (ошол эле кодду колдонуп) жана ал иштеди. Ошентип, мен кошумчалаган китепканаларда бир нерсе өзгөрдү деген жыйынтыкка келдим. Мен бул бөлүмгө менин үй компьютеримде турган китепканаларды тиркеп койдум; жөн эле башка бирөө бул маселеге туш болсо.

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