Мазмуну:

Inhouse IoT абанын сапатынын сенсорун түзүңүз Булут талап кылынбайт: 10 кадам
Inhouse IoT абанын сапатынын сенсорун түзүңүз Булут талап кылынбайт: 10 кадам

Video: Inhouse IoT абанын сапатынын сенсорун түзүңүз Булут талап кылынбайт: 10 кадам

Video: Inhouse IoT абанын сапатынын сенсорун түзүңүз Булут талап кылынбайт: 10 кадам
Video: Вентиляция в хрущевке. Как сделать? Переделка хрущевки от А до Я. #31 2024, Ноябрь
Anonim
Inhouse IoT абанын сапатынын сенсорун түзүңүз, булут талап кылынбайт
Inhouse IoT абанын сапатынын сенсорун түзүңүз, булут талап кылынбайт
Inhouse IoT аба сапатынын сенсорун түзүңүз, булут талап кылынбайт
Inhouse IoT аба сапатынын сенсорун түзүңүз, булут талап кылынбайт
Inhouse IoT абанын сапатынын сенсорун түзүңүз, булут талап кылынбайт
Inhouse IoT абанын сапатынын сенсорун түзүңүз, булут талап кылынбайт
Inhouse IoT абанын сапатынын сенсорун түзүңүз, булут талап кылынбайт
Inhouse IoT абанын сапатынын сенсорун түзүңүз, булут талап кылынбайт

Ички же тышкы абанын сапаты булгануунун көптөгөн булактарына, ошондой эле аба ырайына жараша болот.

Бул түзмөк 2 сенсордук микросхемалардын жардамы менен кээ бир жалпы жана эң кызыктуу параметрлерди тартып алат.

  • Температура
  • Нымдуулук
  • Басым
  • Органикалык газ
  • Микро-бөлүкчөлөр

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

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

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

Жабдуулар

Бул долбоорду куруу үчүн сизге nodemcu тактасы жана абанын сапатын өлчөө үчүн сенсорлор топтому сыяктуу ESP8266 негизделген такта гана керек. Бул долбоордо колдонулган HomeDing китепканасы температура, нымдуулук, басым жана сапат үчүн жалпы сенсор чиптерин колдойт. Бул жерде BMP680 чипи колдонулат.

  • USB плагин жана электр менен камсыздоо үчүн микро-USB кабели.
  • ESP8266 CPU менен 1 nodemcu тактасы.
  • 1 BME680 сенсордук тактасы.
  • 1 PM2.5 аба бөлүкчөлөрүнүн лазердик сенсор түрү PMS5003

BME680 сенсорун DHT22 сенсору менен алмаштыруу оңой, анткени алар китепкананын колдоосу менен башкалардын арасында.

1 -кадам: Arduino чөйрөсүн ESP8266 үчүн даярдаңыз

Arduino чөйрөсүн ESP8266 үчүн даярдаңыз
Arduino чөйрөсүн ESP8266 үчүн даярдаңыз
  1. Arduino IDEнин акыркы версиясын орнотуңуз (учурда 1.8.2 версиясы).
  2. Esp8266 колдоосун орнотуу үчүн Board Managerди колдонуңуз. Толук нускаманы бул жерден тапса болот:
  3. Скриншотто көрсөтүлгөндөй 1MByte SPIFFS Файл системасы менен NodeMCU 1.0 үчүн такта параметрлерин орнотуңуз.

2 -кадам: Керектүү китепканаларды камтуу

Керектүү китепканаларды кошуу
Керектүү китепканаларды кошуу

HomeDing китепканасы сенсорлордун жана дисплейлердин иштеши үчүн кээ бир жалпы кошумча китепканаларга таянат.

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

Кээде (белгисиз себептер менен) китепканаларды орнотуу ишке ашпай калат, андыктан бардык керектүү китепканалар кол менен орнотулушу керек.

Керектүү китепканалар жөнүндө кененирээк маалыматты https://homeding.github.io/#page=/elements.md веб -сайтынан тапса болот.

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

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • SSD1306 дисплейи үчүн ESP8266 жана ESP32 Олед драйвери
  • Бюрократия коддогуч
  • ESPx үчүн DHT сенсор китепканасы
  • OneWire

PMS5003 аба бөлүкчөлөрүнүн лазердик сенсору 9600 baud сериялык линиясынын сигналын колдонуп байланышат. Бул сигнал ESP8266 инструменттерин орнотуу менен келген SoftwareSerial китепканасынын жардамы менен тартылган. Китепкана катары эски версия орнотулбаганын тактаңыз.

3 -кадам: Стандарттык мисал эскизин ыңгайлаштырыңыз

Стандарттык мисал эскизин ыңгайлаштырыңыз
Стандарттык мисал эскизин ыңгайлаштырыңыз

Стандарттык мисал мурунтан эле кээ бир кеңири таралган сенсорлорду камтыйт, андыктан конфигурация гана талап кылынат.

Бул BME680 элементи тарабынан колдоого алынган BME680 сенсоруна тиешелүү.

PMS5003 сенсору азыраак кездешет жана аны PMS Элементин камтылган программага кошуу менен иштетүү керек. Бул эскиздин элементтерди каттоо бөлүмүндө #define HOMEDING_INCLUDE_PMSти аныктоо аркылуу жасалат.

#аныктоо HOMEDING_INCLUDE_BME680#аныктоо HOMEDING_INCLUDE_PMS

Жаңы түзмөктү тармакка кошуу жөнөкөйлүгү үчүн, стандарттуу.ino эскиз файлынын жанындагы secret.h файлына үйүңүздүн SSID жана купуя сөз айкашын кошсоңуз болот. Бирок сиз орнотулган WiFi менеджерин колдонуп, түзмөктү бул каттуу конфигурациясыз тармакка кошо аласыз.

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

4 -кадам: Желе интерфейсин жүктөө

Стандарттык мисал веб -интерфейсинин бардык файлдарын камтыган маалымат папкасы менен келет.

Бул файлдарды жүктөөдөн мурун сиз env.json жана config.json файлын кошуп алсаңыз болот, бул макалада таба аласыз, анткени бул ишти жеңилдетет.

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

ESP8266 файлды жүктөө утилитасын колдонуңуз жана бардык файлдарды жүктөңүз. Конфигурацияны жандандыруу үчүн аны кайра жүктөө керек.

5 -кадам: BME680 сенсорун кошуңуз

BME680 сенсорун кошуу
BME680 сенсорун кошуу
BME680 сенсорун кошуу
BME680 сенсорун кошуу
BME680 сенсорун кошуу
BME680 сенсорун кошуу

BME680 сенсору I2C автобусун колдонуп тактай менен байланышып жатат.

Бул башка сенсорлор же дисплейлер сыяктуу башка кеңейтүүлөр менен бөлүшүлгөндүктөн, түзмөктүн деңгээлинде env.json менен конфигурацияланган. Бул жерде түзмөктүн жана I2C жөндөөлөрүнүн алынган үлгүсү келтирилген:

"түзмөк": {

"0": {"name": "airding", "description": "Абанын сапатынын сенсору",… "i2c-scl": "D2", "i2c-sda": "D1"}}

Нан тактасында сенсорго туташуучу кабелдерди көрө аласыз: 3.3V = кызыл, GND = кара, SCL = сары, SDA = көк

BME680 үчүн тарам config.json колдонулушу мүмкүн:

"bme680": {

"bd": {"адрес": "0x77", "окуу убактысы": "10s"}}

Аракеттерди кийинчерээк кошобуз.

Орнотууну текшерүү үчүн жөн гана браузерди колдонуңуз жана https://airding/board.htm ачыңыз, анда сенсордун чыныгы маанилерин көрөсүз жана алар ар бир 10 секундда жаңыртылып турат:

6 -кадам: PMS5003 сенсорун кошуу

PMS5003 сенсорун кошуу
PMS5003 сенсорун кошуу

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

Бул сенсордун күчү адатта USB шинасы менен иштеген Винден алынышы керек. GND бирдей, бирок Vin пиндин жанында дагы бар.

Сенсордон алынган маалыматтар стандарттуу 9600 байдык форматта өткөрүлөт, андыктан rx жана tx пиндери жана окуу убактысы конфигурацияланышы керек:

"pms": {

"pm25": {"description": "pm25 бөлүкчөлөр сенсору", "pinrx": "D6", "pintx": "D5", "окуу убактысы": "10s"}}

Аракеттерди кийинчерээк кошобуз.

Орнотууну кайра текшерүү үчүн, жөн гана түзмөктү өчүрүп күйгүзүңүз жана браузерди колдонуңуз жана https://airding/board.htm ачыңыз жана сенсордун чыныгы pm35 маанисин көрөсүз жана алар ар бир 10 секунд сайын жаңыртылып турат, бирок бул норма кадимкидей көп өзгөрбөйт.

Шам бул бөлүкчөлөрдүн көп бөлүгүн чыгаргандыктан сенсордун жанына шамдын жарыгын коюп, жогорку баалуулуктарга ээ боло аласыз.

Эми сиз бардыгын жакшы турак жайга коё аласыз, анткени башка конфигурациялар, ал тургай программалык камсыздоону жаңыртуу алыстан жасалышы мүмкүн.

7 -кадам: Тармактын айрым өзгөчөлүктөрүн кошуу

Env.jsonдогу төмөнкү конфигурация үзүндү иштетүүдө

  • түз обону жаңыртуу
  • SSDP тармак протоколун колдонуу менен тармакты аныктоого мүмкүндүк берет жана ntp серверинен учурдагы убакытты алат.

{

… "Ota": {"0": {"порт": 8266, "passwd": "123", "description": "OTA Жаңыртууларын" эфирде угуңуз}}, "ssdp": {"0 ": {" Өндүрүүчү ":" сиздин атыңыз "}}," ntptime ": {" 0 ": {" окуу убактысы ":" 36h "," zone ": 2}}}

Убакыт алкагын жайгашкан жериңизге тууралашыңыз керек. Эгер күмөн санасаңыз, https://www.timeanddate.com/ веб -сайтын UTC/GMTтен алмаштыруу үчүн колдонсоңуз болот. "2" Германиянын жай мезгилине туура келет.

Сиз ошондой эле https://homeding.github.io/index.htm#page=/savemo… дарегиндеги документтердеги сактоо режими боюнча көрсөтмөлөрдү окуп чыккандан кийин, ota сырсөзүн тууралай аласыз.

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

8 -кадам: Кээ бир журналдарды кошуу

Чыныгы баалуулуктар жетишсиз болушу мүмкүн, андыктан дагы башка элементтерди колдонсо болот.

Бул окуя үчүн Log элементи жана NPTTime Element сенсор баалуулуктарынын тарыхын журнал файлына жазуу үчүн колдонулат жана бул элементтин Web UI картасы аны график катары көрсөтө алат.

Төмөнкү конфигурация газ жана бөлүкчөлөр үчүн 2 журнал элементтерин түзөт:

{

"log": {"pm": {"description": "Log25 pm25", "filename": "/pmlog.txt", "filesize": "10000"}, "aq": {"description": " Газдын сапатынын журналы "," файлдын аты ":" /aqlog.txt "," filesize ":" 10000 "}}}

9 -кадам: Аракеттер

Аракеттер
Аракеттер

Эми биз иш -аракеттерди колдонуу менен чыныгы баалуулуктарды журнал элементтерине өткөрүп беришибиз керек. Аракеттер максаттуу элементке кай жана баалуулукту берүү үчүн URL белгилерин колдонуп жатышат. Көптөгөн элементтер жаңы сенсордун маанисин басып алуу сыяктуу кээ бир окуялар боюнча аракеттерди чыгарууну колдойт.

Аракеттерди чыгаруучу элементте конфигурацияланган 2 жазуу керек:

  • Pms/p25 onvalue окуясы чыныгы маанини log/pm элементине баалуулуктун аракетин колдонуп жөнөтөт.
  • Bme680/bd ongas окуясы иш -чаранын жардамы менен чыныгы маанини log/pm элементине жөнөтөт.

{

"pms": {"pm25": {… "onvalue": "log/pm? value = $ v"}}, "bme680": {"bd": {… "ongas": "log/aq? value = $ v "}}}

Азыр бардык элементтер конфигурацияланды.

10 -кадам: Сүрөттөр жана конфигурация файлдары

Сүрөттөр жана конфигурация файлдары
Сүрөттөр жана конфигурация файлдары
Сүрөттөр жана конфигурация файлдары
Сүрөттөр жана конфигурация файлдары
Сүрөттөр жана конфигурация файлдары
Сүрөттөр жана конфигурация файлдары

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

Жүктөө үчүн конфигурация файлдары *.json (no.txt) деп өзгөртүлүшү керек.

Шилтемелер жана шилтемелер

  • HomeDing Source Code репозиторийи:
  • Документтер:
  • Стандарттык мисал:
  • BME680 Элемент:
  • PMS элементи:
  • Журналдын элементи:
  • NtpTime элементи:

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