Мазмұны:

Басқа IoT метеостанциясы: 8 қадам
Басқа IoT метеостанциясы: 8 қадам

Бейне: Басқа IoT метеостанциясы: 8 қадам

Бейне: Басқа IoT метеостанциясы: 8 қадам
Бейне: Төсекте дауыс шығару. Сексолог Нуржаубаева Анель 2024, Шілде
Anonim
Басқа IoT метеостанциясы
Басқа IoT метеостанциясы
Басқа IoT метеостанциясы
Басқа IoT метеостанциясы
Басқа IoT метеостанциясы
Басқа IoT метеостанциясы
Басқа IoT метеостанциясы
Басқа IoT метеостанциясы

Төменде әкемнің туған күніне сыйлық болды; Мен көрген басқа нұсқаулықтан шабыттанып, бастапқыда оған өзін-өзі құрастыру жиынтығы ретінде дәлелдеуге ниет білдірдім. Бірақ мен онымен осы жобада жұмыс істей бастағанда, мен сыйлыққа шабыт берген алғашқы оқулықтың ескіргенін және басқа көптеген онлайн оқулықтарда түсініктемелерде айтарлықтай олқылықтар бар екенін тез түсіндім. Сондықтан мен басқа IoT метеостанциясын шығаруды шештім, оны басынан аяғына дейін орындауға болады деп үміттенемін.

Бұдан әрі бұл нұсқаулық сенсордың көрсеткіштерін бақылау және жазу үшін Blynk, Google Sheets немесе екеуін де қалай қолдану керектігін көрсетеді. Сонымен қатар, Google Sheets жазбалары тікелей параққа жазылады (үшінші тарап қызметін пайдаланбай).

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

Стивенсон экраны - бұл «аспаптар үшін баспана - бұл метеорологиялық құралдардың жауын -шашын мен сыртқы көздерден келетін тікелей жылу сәулелеріне қарсы қорғанысы, сонымен қатар олардың айналасында ауаның еркін айналуына мүмкіндік береді». (Википедия).

Бөлшектер

  • Wemos LolIn - NodeMCU v3 (USD 1.43)
  • BME280 (температура, қысым және ылғалдылық сенсоры) (USD 2.40)
  • 6V 1000mA күн панелі (USD 9.96)
  • 5V 1A Micro USB 18650 литий батареясын зарядтау тақтасының модулі+қос функциялы қорғау TP4056 (USD 0.99)
  • 4х 1,2 В NiMH қайта зарядталатын батареялар
  • Батарея ұстағыш (4x АА, қатар және соңынан соң)
  • Micro USB Еркек қосқыш штепсель
  • Кабель байланыстары
  • 3x қанатты жаңғақтар
  • Таяқ немесе сыпырғыш таяқша
  • Эпоксидті және/немесе супер-желім (ойласаңыз, кремний жақсы жұмыс істеген болар еді)

Бағдарламалық қамтамасыз ету

  • Blynk қосымшасы
  • Google Sheets (егер сіз тарихи деректерге қол жеткізгіңіз келсе)
  • EasyEDA (сызба сызу үшін)
  • Arduino IDE

Құралдар

  • Пісіру темірі
  • Дәнекер
  • Шөгілетін құбырлар
  • 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 жоғарғы_қаптың жоғарғы жағына эпоксидтендірілген

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

Аяқталғаннан кейін сенсор әр 60 минут сайын келесі көрсеткіштерді алуға бағдарламаланған:

  • Температура
  • Ылғалдылық
  • Қысым

Ескертулер

  • Мен күн батареясының қондырғыларын күн батареясын ұстауға ыңғайлы етіп баптадым.
  • Мен электрониканы Pole_Mount пен Solid_Plate арасына орнаттым. Бұл электрониканы жақсы қорғауды қамтамасыз етпейтін сияқты. Мен Solid_Plate -те юбка болатындай етіп өзгерттім, ол саңылауды жабады, осылайша электрониканы жақсы қорғайды. Жоғарыда келтірілген фотосуреттердің кейбірі мен бұл өзгерісті жасамас бұрын түсірілген.
  • Менің эпоксидім күн батареясын ұстамай тұрып қалды, мен оны супер желіммен қайта жаптым. Менің ойымша, кремнийді қолдануға тура келеді.

2 -қадам: Цикл

Цикл
Цикл
Цикл
Цикл

Схемада көрсетілгендей, LoLin мен BME280 фотосуретте көрсетілгендей 3D басып шығарылған торға орнатып схемада көрсетілгендей қосыңыз.

BME280 -> LiLon

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

LiLon -> LiLon

D0 -> RST (бұл контроллерді ұйқыдан ояту үшін қажет, бірақ код контроллерге жүктелгеннен кейін ғана қосылуы керек)

ЕСКЕРТУ

ЛиЛон батареясын алу қиын болды. Сондай -ақ, қандай да бір себептермен 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 қосымшасын жүктеп алу керек, тіркелгіні құру керек (немесе бар есептік жазбамен кіру), содан кейін келесідей жаңа жоба құру керек:

  • Жабдықты таңдаңыз
  • Жобаңызға атау беріңіз (бұл жағдайда мен «Метеостанцияны» қолдандым.
  • «Жасау» түймесін басыңыз
  • Содан кейін сізге электрондық пошта арқылы авторизация кодын аласыз.

Қажетті виджеттерді қосудың қажеті жоқ. 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 Sheets -ке қосылу үшін HTTPSRedicect қажет)

Arduino IDE кітапханаларын орнату бойынша нұсқауларды алу үшін https://www.arduino.cc/en/guide/libraries сайтына кіріңіз.

Менің аппараттық қондырғыларым келесідей:

  • Тақта: NodeMCU 1.0 (ESP-12E модулі)
  • Жүктеу жылдамдығы: 115200

Қосылған кодты келесі қадамдарда қолданғанда, келесілерді қосуға қатысты кодтағы түсініктемелерге жүгініңіз:

  • Wi -Fi SID
  • Wifi құпия сөзі
  • Blynk авторизация кілті
  • Google Script идентификаторы
  • Google парағын бөлісу кілті

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

Мен BME280 сенсорының жұмыс істеуі үшін мен келесі жолды қамтитын мысалды тапқанша бірнеше жылдар бойы күрестім.

күй = bme.begin (0x76); // Мен қолданатын сенсордың I2C мекенжайы 0x76

Сенсордың мекенжайын орнату керек сияқты. Мен мұны жасағаннан кейін бәрі жақсы жұмыс істеді.

Blynk-те өте жақсы мобильді пайдаланушы интерфейсі бар, бірақ келесі шектеулер бар:

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

Жоғарыда аталған себептерге байланысты мен деректерді жинау процесін Google парағына қалай біріктіру керектігін қарастырдым. Бұл келесі бөлімде қарастырылады.

6 -қадам: Google Sheets коды

Код - Google Sheets
Код - Google Sheets
Код - Google Sheets
Код - Google Sheets
Код - Google Sheets
Код - Google Sheets

Тарихи деректерді кейінірек талдау үшін оқуларыңызды жазу үшін оны қандай да бір мәліметтер базасына жазу керек. HTTPSRedirect кітапханасы бұл деректерді Google парағына жазу арқылы жасауға мүмкіндік береді.

Бұл әдістің негізгі шектеулері келесідей:

  • Жақсы мобильді пайдаланушы интерфейсі жоқ
  • Google парағында ең көбі 400 000 ұяшық болуы мүмкін. Бұл жоба үшін бұл үлкен мәселе емес, өйткені бұл шекке жеткенше 11 жыл ғана уақыт кетеді.

Google парағы келесідей орнатылады.

Google парағын екі парақтан жасаңыз.

1 -парақ: Деректер

Деректер парағына 4 баған қажет: Күн/Уақыт, Температура, Ылғалдылық, Қысым (А -дан D бағандары). Бағандарды тиісті түрде пішімдеңіз, мысалы: Ұяшықтарда күн мен уақыт көрсетілуі үшін А бағанының «Күн уақыты» болуы керек.

2 -парақ: бақылау тақтасы

Қосылған фотосуреттер бойынша бақылау тақтасын жасаңыз, формулаларды төменде келтіріңіз:

  • B2: = санау (Деректер! B: B) -1
  • B3: = B1+УАҚЫТТЫЛЫҚ (КОНКАТЕНТ («00:», Мәтін (G7, «0»)))
  • B6: = сұрау (Деректер! A2: D, «В разрядын 1 шегерім шегімен таңдау»)
  • C6: = сұрау (Деректер! A2: D, «C тәртібін A түсу шегі бойынша 1 таңдаңыз»)
  • D6: = сұрау (Деректер! A2: D, «D тәртібін A түсу шегі 1 бойынша таңдау»)
  • B8: = сұрау (Деректер! A2: D, «В разряд 1 бойынша тапсырысты таңдау»)
  • C8: = сұрау (Деректер! A2: D, «C разряд 1 бойынша тапсырысты таңдау»)
  • D8: = сұрау (Деректер! 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, «В таңдалады, онда B нөлдік тәртіппен B асу шегі 1 бойынша емес»)
  • C11: = сұрау (Деректер! A2: D, «А параметрін таңдаңыз, мұнда C нөлдік тәртіп бойынша 1 -ші шегіне сәйкес емес»)
  • D11: = сұрау (Деректер! A2: D, «D таңдалады, онда D нөлдік тәртіппен D аск шегі бойынша 1 емес)»)
  • B12: = сұрау (Деректер! A2: D, «B таңдалсын, онда B нөлдік ретті емес, B асу шегі 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 парағының URL мекенжайында «d /» мен « / edit» арасындағы пернеге назар аударыңыз. Бұл сіздің-Google-парағыңыздың ортақ кілті және төмендегі кодта қажет болады.

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

Енді сценарийді жариялау> Интернет қолданбасы ретінде орналастыру тармағына өтіңіз.

Ағымдағы веб-қосымшаның URL мекенжайын көшіріп, GScriptID (-You-Google-Script-ID–) шығару үшін қажет жерде сақтаңыз. GScriptID - «s /» және « / exec?» Арасындағы жол. «Кез келген, тіпті анонимді» қолданбаға кіре алатынына көз жеткізіңіз. Бұл процесс кезінде сізден кейбір рұқсаттарды беру сұралады. Сіз бұларды беруіңіз маңызды.

Ескерту: Сіз кодты өзгерткен сайын, сіз жобаның «жаңа» нұсқасын жасап, оны жариялауыңыз керек, әйтпесе сіз бұрынғы ескі кодқа соғыласыз.

Сіз енді сценарийді https://script.google.com/macros/s/-Your-Google-Script-ID–/exec?Temperature=10&Humidity=11&Pressure=12 сайтына шолу арқылы тексере аласыз. Бұл сілтемені жаңартқан сайын Google парағына жаңа жазба қосылуы керек.

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

Arduino коды

Қосылған кодты қараңыз.

7 -қадам: Blynk және Google Sheets коды

Екі әлемнің де ең жақсысын алу үшін Blynk пен Google Sheets кодтарын біріктіруге болады.

Қосылған кодты қараңыз.

8 -қадам: Қорытынды пікірлер

Қорытынды пікірлер
Қорытынды пікірлер
Қорытынды пікірлер
Қорытынды пікірлер

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

Жаңарту

Бұл жобаны аяқтағаннан кейін маған сымсыз байланыс параметрлерін өзгерту қажет болды. Мен қазір басқа компьютерде жұмыс істедім. Өзгерістерді жүктегеннен кейін жоба жұмысын тоқтатты. Ақаулықтарды жоюдан кейін мен терең ұйқы функциясы сәтсіз болды деген қорытындыға келдім. Мен жобаны үйге алып келдім және оны сол жерге жүктедім (сол кодты қолдана отырып) және ол жұмыс істеді. Мен өзім қосқан кітапханаларда бір нәрсе өзгерген болуы керек деген қорытындыға келдім. Мен қазіргі уақытта үйдегі компьютерде тұрған кітапханаларды осы бөлімге тіркедім; басқа біреу бұл мәселеге тап болған жағдайда.

Ұсынылған: