Мазмуну:
- Жабдуулар
- 1 -кадам: Arduino чөйрөсүн ESP8266 үчүн даярдаңыз
- 2 -кадам: Керектүү китепканаларды камтуу
- 3 -кадам: Стандарттык мисал эскизин ыңгайлаштырыңыз
- 4 -кадам: Желе интерфейсин жүктөө
- 5 -кадам: BME680 сенсорун кошуңуз
- 6 -кадам: PMS5003 сенсорун кошуу
- 7 -кадам: Тармактын айрым өзгөчөлүктөрүн кошуу
- 8 -кадам: Кээ бир журналдарды кошуу
- 9 -кадам: Аракеттер
- 10 -кадам: Сүрөттөр жана конфигурация файлдары
Video: Inhouse IoT абанын сапатынын сенсорун түзүңүз Булут талап кылынбайт: 10 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Ички же тышкы абанын сапаты булгануунун көптөгөн булактарына, ошондой эле аба ырайына жараша болот.
Бул түзмөк 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 IDEнин акыркы версиясын орнотуңуз (учурда 1.8.2 версиясы).
- Esp8266 колдоосун орнотуу үчүн Board Managerди колдонуңуз. Толук нускаманы бул жерден тапса болот:
- Скриншотто көрсөтүлгөндөй 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 сенсору 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 сенсорун кошуу
Менде панного ылайыктуу туташтыргычы бар сенсор жок болчу, ошондуктан кабелдеги бириктиргичтердин бирин кесүү үчүн, менин ширетүүчү темиримди колдонуп, аны 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 элементи:
Сунушталууда:
Жабык абанын сапатынын көрсөткүчү: 5 кадам (сүрөттөр менен)
Үй ичиндеги абанын сапатын өлчөгүч: Үйүңүздөгү абанын сапатын текшерүү үчүн жөнөкөй проект. Биз акыркы убакта үйдө көп иштеп/иштеп жаткандыктан, абанын сапатын көзөмөлдөп, терезени ачуу убактысы келгенде өзүңүзгө эскертип коюу жакшы болмок. жана таза абага келиңиз
Желдеткичти компьютердин жылыткычына кошуңуз - бурамалар талап кылынбайт: 5 кадам
Желдеткичти компьютердин жылыткычына кошуңуз - бурамалар талап кылынбайт: Көйгөй: Менин файлдык серверимде түндүк көпүрөсү деп эсептеген желдеткичсиз радиатору бар энелик платам бар. Сенсор программасына (ksensors) ылайык, мен Fedoraда чуркап жүргөм, аналык платанын температурасы 190F тегерегинде болчу. Менин тизем
Chrome Желе Кеңейтүүсү - Эч кандай коддоо тажрыйбасы талап кылынбайт: 6 кадам
Chrome Желе Кеңейтүүсү - Алдын ала коддоо тажрыйбасынын кереги жок: Chrome Кеңейтүүлөрү колдонуучуларды карап чыгуу тажрыйбасын жакшыртуу үчүн курулган чакан программалар. Chrome кеңейтүүлөрү жөнүндө көбүрөөк маалымат алуу үчүн https://developer.chrome.com/extensions дарегине өтүңүз. Chrome Web Extension үчүн коддоо талап кылынат, андыктан HTти карап чыгуу абдан пайдалуу
ESP32-CAM сүрөттөрдү тартып, SPIFF эс тутумун колдонуп электрондук почта аркылуу жөнөтүңүз. -- SD карт талап кылынбайт: 4 кадам
ESP32-CAM сүрөттөрдү тартып, SPIFF эс тутумун колдонуп электрондук почта аркылуу жөнөтүңүз. || Эч кандай SD карт талап кылынбайт: Саламатсыздарбы, элдер, ESP32-CAM тактасы-бул ESP32-S чипин, OV2640 камерасын, перифериялык түзүлүштөрдү жана microSD картанын уячасын бириктирүүчү бир нече GPIOдорду камтыган, төмөн чыгымдарды иштеп чыгуучу такта. Бул видео агымдык веб -серверден тартып бир катар тиркемелерге ээ, бул
DTMF көзөмөлдөгөн унаа. Мобилдик телефондор талап кылынбайт: 3 кадам
DTMF көзөмөлдөгөн унаа. Мобилдик телефондордун кереги жок: Роботтор жана Robo унаалары негизинен дүйнө жүзү боюнча технология ышкыбоздору жана окумуштуулар үчүн жаңы күн оюнчуктары. алар бардык жерде колдонмолорду табышат. Бул үйрөткүчтө мен сизге DTMF башкаруучу робот машинасын arduino жана