Мазмуну:
- 1 -кадам: Сизге эмне керек
- 2 -кадам: Breadboard прототиби
- 3 -кадам: Программаны орнотуу
- 4 -кадам: Күн заряддоо тактасын даярдаңыз
- 5 -кадам: Микроконтроллердин схемасын куруу
- 6 -кадам: Кабель бездерин орнотуңуз
- 7 -кадам: Complete Circuit Assembly
- 8 -кадам: Күн панелин даярдоо
- 9 -кадам: Сыноо
- 10 -кадам: Аны сыртта колдонуңуз
Video: ESP8266 менен күн топурагынын нымдуулугу: 10 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Бул Нускамада биз күндүн энергиясы менен иштеген топурактын нымдуулугунун мониторун жасап жатабыз. Бул ESP8266 wifi микроконтроллерин колдонот жана кубаттуулугу аз кодду иштетет жана суу өткөрбөйт, ошондуктан аны сыртта калтырууга болот. Сиз бул рецептти так аткарсаңыз же андан өзүңүздүн долбоорлоруңуз үчүн пайдалуу техникаларды алсаңыз болот.
Эгерде сиз микроконтроллерди программалоодо жаңы болсоңуз, анда Arduino классымды жана Интернет нерселер классын текшерип, зымдардын, коддордун жана интернетке туташуунун негиздерин үйрөнүңүз.
Бул долбоор менин акысыз Күн класстын бир бөлүгү, анда сиз гравировка жана күн батареялары аркылуу күндүн энергиясын пайдалануунун башка жолдорун үйрөнө аласыз.
Мен иштеп жаткан нерсеге жетүү үчүн YouTube, Instagram, Twitter, Pinterestте мени ээрчиңиз жана менин маалымат баракчама жазылыңыз.
1 -кадам: Сизге эмне керек
Сизге күн батареясын кубаттоочу такта жана NodeMCU ESP8266 же Huzzah сыяктуу ESP8266 үзүлүшү, ошондой эле топурак сенсору, батарея, кубат которгуч, кээ бир зымдар жана схемаңызды ичине салуу үчүн корпус керек болот.
Бул жерде топурактын нымдуулугун көзөмөлдөөчү компоненттер жана материалдар келтирилген:
- ESP8266 NodeMCU микроконтроллери (же ушуга окшош, Вин 6В чейин чыдоого тийиш)
- Adafruit күн заряддоо тактасы кошумча термистор жана 2.2K ом каршылыгы менен
- 2200 мАч ли-иондук батарея
- Perma-proto тактасы
- Топурактын нымдуулугу/температура сенсору
- 2 кабель бездери
- Суу өткөрбөй турган корпус
- Суу өткөрбөй турган DC электр кабели
- Жылуулукту кыскартуучу түтүк
- 3.5W күн панели
- Күч баскычын басыңыз
- Кош таяк пенопласт тасмасы
Бул жерде сизге керектүү шаймандар:
- Лампочка жана ширетүүчү
- Жардам берүүчү курал
- Сым тазалагычтар
- Чачты жуу
- Пинцет (милдеттүү эмес)
- Жылытуучу курал же күйгүзгүч
- Мультиметр (милдеттүү эмес, бирок көйгөйдү оңдоо үчүн ыңгайлуу)
- USB A-microB кабели
- Кайчы
- Step drill
Сизге io.adafruit.com жана IFTTT булут маалымат сайттарында акысыз эсептер керек болот.
Amazon Associate катары мен менин өнөктөштүк шилтемелеримди колдонуп, квалификациялуу сатып алуулардан киреше табам.
2 -кадам: Breadboard прототиби
Бул сыяктуу долбоорлор үчүн ширетилбеген панелдин прототибин түзүү маанилүү, андыктан туруктуу туташууларды жасоодон мурун сенсор менен кодуңуздун иштеп жаткандыгын текшере аласыз.
Бул учурда, топурак сенсорунда зымдар туташып калгандыктан, сенсордук зымдардын учтарына ширетүүчү, жардам колу жана кээ бир жылуулукту кысуучу түтүктөрдү колдонуу менен катуу баштарды убактылуу бекитүү керек болчу.
Сенсордун кубаттуулугун, жерди, саатты жана маалымат казыктарын туташтыруу үчүн райондук диаграмманы аткарыңыз (маалыматтар топурак сенсору менен келген 10K тартма каршылыгын алат).
- Жашыл зым сенсор GNDге
- Sensor кызыл зым 3.3V чейин
- Сенсор сары зым NodeMCU пин D5 (GPIO 14)
- Sensor көк зым NodeMCU пин D6 (GPIO 12)
- Көк маалымат пин жана 3.3V ортосундагы 10K тартма каршылыгы
Муну сиз каалаган микроконтроллерге которсоңуз болот. Эгерде сиз Arduino Uno же ушуга окшошту колдонуп жатсаңыз, анда тактаңыз Arduino программасы тарабынан колдоого алынган. Эгерде сиз ESP8266 колдонуп жатсаңыз, Arduino'до ESP8266 менен орнотууга этап-этабы менен жардам алуу үчүн Менин нерселер классын текшерип көрүңүз (Arduino'нун каалоолору боюнча кошумча такталар менеджеринин URL дарегине кошумча URLдерди кошуу менен, андан кийин жана такталар менеджеринен жаңы такталарды тандоо). Мен NodeMCU ESP8266 тактасын программалоо үчүн Adafruit ESP8266 Huzzah тактасынын түрүн колдонууга жакынмын, бирок сиз жалпы ESP8266 тактасынын колдоосун орнотуп жана колдоно аласыз. Ошондой эле SiLabs USB байланыш чипинин драйверине муктаж болосуз (Mac/Windows/Linux үчүн жеткиликтүү).
Сенсорду Arduino менен шайкеш келген тактайым менен иштетүү үчүн, мен SHT1x Arduino Китепканасын Practical Arduino github баракчасынан жүктөп алдым, андан кийин файлды ачып, китепкана папкасын менин Arduino/libraries папкасына жылдырдым, андан кийин SHT1x деп аталды. ReadSHT1xValues мисалынын эскизин ачыңыз жана пин сандарын 12 (dataPin) жана 14 (clockPin) кылып өзгөртүңүз же өзгөртүлгөн эскизди бул жерден көчүрүңүз:
#кошуу
#Define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // instantiate SHT1x object void setup () {Serial.begin (38400); // Сериалдык байланышты ачуу Serial.println баалуулуктарын билдирүү үчүн ("Ишке кирүү"); } void loop () {float temp_c; float temp_f; калкып нымдуулук; temp_c = sht1x.readTemperatureC (); // Сенсордун маанилерин окуу temp_f = sht1x.readTemperatureF (); нымдуулук = sht1x.readHumidity (); Serial.print ("Температура:"); // Serial.print (temp_c, DEC) сериялык портуна баалуулуктарды басып чыгаруу; Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Нымдуулук:"); Serial.print (нымдуулук); Serial.println ("%"); кечигүү (2000); }
Бул кодду тактаңызга жүктөп, сенсордук маалымат агымын көрүү үчүн сериялык мониторду ачыңыз.
Эгерде кодуңуз SHT1x.h табылбай жатканына компиляция кылбаса жана нааразы болсо, сизде керектүү сенсордук китепкана туура орнотулган эмес. Ардуино/китепканалар папкаңызды SHT1x деп текшериңиз жана эгер ал башка жерде болсо, жүктөө папкаңыз сыяктуу, аны Arduino китепканалар папкаңызга жылдырыңыз жана керек болсо атын өзгөртүңүз.
Эгерде кодуңуз түзүлүп, бирок тактаңызга жүктөлбөсө, тактаңыздын орнотууларын эки жолу текшериңиз, тактаңыздын сайылганын тактаңыз жана Куралдар менюсунан туура портту тандаңыз.
Эгерде кодуңуз жүктөлсө, бирок сиздин сериялык мониторуңуз таанылгыс болсо, эскизде көрсөтүлгөн (бул учурда 38400) берүү ылдамдыгыңыздын дал келишин эки жолу текшериңиз.
Эгерде сиздин сериялык мониторуңуз туура эмес көрүнсө, зымыңызды схемага каршы эки жолу текшериңиз. Сиздин 10K тартма каршылыгыңыз маалымат пини менен 3.3V ортосундабы? Маалыматтар жана сааттар туура казыктарга туташканбы? Бийлик менен жер чынжырдын бардык бөлүгүндө болгондой туташканбы? Бул жөнөкөй эскиз иштемейинче уланта бербеңиз!
Кийинки кадам ESP8266 үчүн өзгөчө жана долбоордун кошумча зымсыз сенсорунун отчеттук бөлүгүн конфигурациялайт. Эгерде сиз стандарттуу (зымсыз эмес) Arduino менен шайкеш микроконтроллерди колдонуп жатсаңыз, Arduino акыркы эскизин иштеп чыгууну улантыңыз жана Күн заряддоо тактасын даярдоого өтүңүз.
3 -кадам: Программаны орнотуу
ESP8266 менен бул долбоордун кодун чогултуу үчүн дагы бир нече Arduino китепканаларын орнотушуңуз керек (китепкана менеджери аркылуу жеткиликтүү):
- Adafruit IO Arduino
- Adafruit MQTT
- ArduinoHttpClient
Бул кадамга тиркелген кодду жүктөп алыңыз, андан кийин файлды ачыңыз жана Arduino программаңызда Solar_Powered_Soil_Moisture_Monitor_Tutorial ачыңыз.
#кошуу
#кошуу #кошуу #кошуу #кошуу // Маалыматтарды жана саат байланыштарын белгилөө жана SHT1x объектисин түзүү #dataPin 12 -ди аныктоо // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // тоютту орнотуу AdafruitIO_Feed *нымдуулук = io.feed ("нымдуулук"); AdafruitIO_Feed *температурасы = io.feed ("температура"); const int sleepTime = 15; // 15 мүнөт
жараксыз орнотуу ()
{Serial.begin (115200); // Сериалдык байланышты ачуу Serial.println баалуулуктарын билдирүү үчүн ("Ишке кирүү"); // io.adafruit.com менен туташуу Serial.print ("Adafruit IOго туташуу"); io.connect (); // байланышты күтө туруңуз (io.status () <AIO_CONNECTED) {Serial.print ("."); кечигүү (500); } // биз туташабыз Serial.println (); Serial.println (io.statusText ()); }
боштук цикл ()
{io.run (); // io.run (); кардарды байланыштырып турат жана бардык эскиздер үчүн талап кылынат. float temp_c; float temp_f; калкып ным; temp_c = sht1x.readTemperatureC (); // Сенсордун маанилерин окуу temp_f = sht1x.readTemperatureF (); ным = sht1x.readHumidity (); Serial.print ("Температура:"); // Serial.print (temp_c, DEC) сериялык портуна баалуулуктарды басып чыгаруу; Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Нымдуулук:"); Serial.print (нымдуулук); Serial.println ("%"); нымдуулук-> үнөмдөө (нымдуулук); температура-> үнөмдөө (temp_f); Serial.println ("ESP8266 уктап жатат …"); ESP.deepSleep (sleepTime * 1000000 * 60); // Уйку}
Бул код бул үйрөткүчтөгү мурунку сенсордук коддун топтому жана Adafruit IO булут маалымат кызматынын негизги мисалы. Программа аз кубаттуулук режимине кирип, көпчүлүк учурда уктайт, бирок ар 15 мүнөт сайын ойгонуп, жердин температурасын жана нымдуулугун окуйт жана Adafruit IOго маалымат берет. Config.h өтмөгүнө өтүңүз жана Adafruit IO колдонуучу атыңызды жана ачкычыңызды, ошондой эле жергиликтүү wifi тармагыңыздын атын жана сырсөзүңүздү толтуруңуз, андан кийин кодду ESP8266 микроконтроллерине жүктөңүз.
Сиз io.adafruit.com сайтында бир аз даярдык көрүшүңүз керек. Температура жана нымдуулук үчүн түрмөктөрдү түзгөндөн кийин, сенсордун баалуулуктарынын графигин камтыган монитордун панелин жана кирүүчү каналдардын маалыматтарын түзө аласыз. Эгерде сизге Adafruit IO менен иштөө боюнча жаңылануу керек болсо, бул сабакты менин Интернет нерселер сабагынан текшериңиз.
4 -кадам: Күн заряддоо тактасын даярдаңыз
Күн заряддоо тактасын анын конденсаторуна жана кээ бир зымдарга жүк чыгаруу аянтчаларына ширетүү менен даярдаңыз. Мен шахтаны кошумча ылдамдыкта резистордун жардамы менен тезирээк кубаттоо үчүн ыңгайлаштырып жатам (PROG аркылуу 2.2K ширетилген) жана кароосуз калтырууну коопсуз кылам, үстүңкү каршылыктын резисторун батарейканын өзүнө тиркелген 10K термисторуна алмаштыруу. Бул коопсуз температура диапазонунда заряддоону чектейт. Мен бул өзгөртүүлөрдү Solar USB Заряддоочу долбоорумда кененирээк карап чыктым.
5 -кадам: Микроконтроллердин схемасын куруу
Микроконтроллер тактасын жана электр өткөргүчүн perma-proto тактасына кошуңуз.
Күн заряддагычтын кубаттуулугун туташтыргычыңыздын киришине туташтырыңыз, ал жок дегенде 1 амперге бааланышы керек.
Сенсордун маалымат линиясындагы 10K тартма каршылыгын кошкондо, жогорудагы схемада (же сиздин жеке версияңыздын спецификацияларына) сүрөттөлгөн панель зымдарын туташтырыңыз.
Күн заряддагычтын Load казыктары эч кандай күн энергиясы жок болгондо 3.7V батареянын кубатын камсыз кылат, бирок ал туташтырылган жана күнөстүү болсо, күн панелинен түздөн -түз иштейт. Андыктан микроконтроллер 3,7Вга чейин жана 6В туруктуу токко чейин ар кандай чыңалууга чыдай алышы керек. 5V талап кылгандар үчүн PowerBoost (500 же 1000, керектүү учурга жараша) Load чыңалуусун 5Vга чейин модуляциялоо үчүн колдонулушу мүмкүн (Solar USB Charger долбоорунда көрсөтүлгөндөй). Бул жерде кээ бир жалпы такталар жана алардын киргизүү чыңалуу диапазондору:
- NodeMCU ESP8266 (бул жерде колдонулат): 5V USB же 3.7V-10V Vin
- Arduino Uno: 5V USB же 7-12V Vin
- Adafruit Huzzah ESP8266 Breakout: 5V USB же 3.4-6V VBat
Батарейканын эң узак иштөө мөөнөтүнө жетүү үчүн, учурдагы тартылып жаткан жалпы токту кароого жана оптималдаштырууга бир аз убакыт кетиши керек. ESP8266да терең уктоо өзгөчөлүгү бар, аны биз Arduino эскизинде кубаттуулукту кескин азайтуу үчүн колдонгонбуз. Ал сенсорду окуу үчүн ойгонот жана сенсордун маанисин билдирүү үчүн тармакка туташып жатканда көбүрөөк ток тартат, андан кийин белгилүү бир убакытка чейин уктап калат. Эгерде сиздин микроконтроллер көп энергия тартса жана аны оңой эле уктатуу мүмкүн болбосо, анда долбооруңузду азыраак кубаттуулуктагы шайкеш тактага өткөрүүнү карап көрүңүз. Төмөндөгү комментарийлерге суроолоруңузду билдириңиз, эгер сизге долбооруңузга кайсы такта туура келерин аныктоого жардам керек болсо.
6 -кадам: Кабель бездерин орнотуңуз
Күн панелинин кабели жана сенсордук кабели үчүн аба ырайына каршы кирүүчү чекиттерди жасоо үчүн, биз аба ырайына каршы корпустун капталына эки кабелдик безди орнотобуз.
Идеалдуу жайгаштырууну аныктоо үчүн компоненттериңизге туура келген тестти текшериңиз, андан кийин баскычтуу бургулоону колдонуп, суу өткөрбөөчү корпуста тешиктерди бургулаңыз. Эки кабелдик түйүндү орнотуңуз.
7 -кадам: Complete Circuit Assembly
Суу өткөрбөгөн кубат кабелинин порттун бир жагына кыстарыңыз жана аны күн заряддагычтын DC кирүүсүнө (кызылдан + жана карага чейин) кошуп коюңуз.
Башка без аркылуу топурак сенсорун киргизиңиз жана аны схемага ылайык перма-протого туташтырыңыз.
Батареяга термистордун зондун скотч менен чаптаңыз. Бул кубаттуулукту коопсуз температура диапазонуна чейин чектейт, ал эми долбоор сыртта кароосуз калат.
Өтө ысык же өтө муздак болгондо заряддоо батареяны бузуп же өрттөнүп кетиши мүмкүн. Экстремалдуу температуранын таасири зыянга алып келиши мүмкүн жана батареянын иштөө мөөнөтүн кыскартышы мүмкүн, андыктан ал тоңуп же 45 ℃/113F жогору болсо, аны ичине киргизиңиз.
Тиешелүү кабелдеринин айланасына аба ырайына каршы мөөр жасоо үчүн кабелдик бездерди тартыңыз.
8 -кадам: Күн панелин даярдоо
Күн панелинин кабелин суу өткөрбөй турган DC кубат кабелинин сайгыч тарабы менен бөлүштүрүү үчүн Менин көрсөтмөмдү аткарыңыз.
9 -кадам: Сыноо
Батареяңызды сайыңыз жана электр которгучту басып, схеманы күйгүзүңүз.
Муну сынап көрүңүз жана корпусун жаап, сенсорду чөп бакчаңызга, баалуу идишке же Wi -Fi тармагыңыздын сигнал чегинде башка топуракка орнотуудан мурун интернетке билдирип жатканына ишениңиз.
Сенсордон алынган маалыматтар онлайнга киргизилгенден кийин, API шлюзунун сайтында электрондук почта же текст эскертүүлөрүнүн рецептин орнотуу оңой болсо, анда. Мен топурактын нымдуулугу 50дөн төмөн түшүп кетсе, мага электрондук кат жөнөтүүнү жөнгө салдым.
Менин өсүмдүгүмдүн кургап кетишин күтпөстөн, аны текшерүү үчүн, мен босогодон төмөн түшүп кеткен Adafruit IOдогу нымдуулукту азыктандыруучу маалымат пунктуна кол менен киргиздим. Бир нече мүнөттөн кийин, электрондук почта келет! Эгерде топурактын деңгээли мен көрсөткөн деңгээлден төмөн түшүп кетсе, мен топуракты сугарганга чейин тоют жаңыртылган сайын электрондук кат алып турам. Менин акыл -эсим үчүн, мен топуракты 15 мүнөттөн алда канча аз үлгү алуу үчүн кодумду жаңыладым.
10 -кадам: Аны сыртта колдонуңуз
Бул сиздин өсүмдүктүн гидратация муктаждыгына жараша ыңгайлаштыруу үчүн кызыктуу долбоор жана сенсорлорду алмаштыруу же кошуу же башка Arduino долбоорлоруңузга күн энергиясынын өзгөчөлүктөрүн киргизүү оңой.
Барганыңыз үчүн рахмат! Мен сиздин оюңузду уккум келет; сураныч комментарийге жазыңыз. Бул долбоор менин акысыз Solar классымдын бир бөлүгү, анда сиз короодогу жеңил долбоорлорду жана күн батареялары менен иштөө боюнча көбүрөөк сабактарды таба аласыз. Аны текшерип, каттоодон өтүңүз!
Эгерде сиз бул долбоорду жактырсаңыз, анда менин кээ бирөөлөрүмө кызыкдар болушуңуз мүмкүн:
- бекер нерселер классы Интернети
- ESP8266 менен YouTube жазылуучу эсептегич
- ESP8266 менен Коомдук статистиканы көзөмөлдөөчү дисплей
- WiFi аба ырайы ESP8266 менен
- Интернет Валентин
Мен иштеп жаткан нерсеге жетүү үчүн мени YouTube, Instagram, Twitter, Pinterest жана Snapchat аркылуу ээрчиңиз.
Сунушталууда:
NodeMCU Lua арзан 6 $ Board MicroPython температурасы жана нымдуулугу менен, Wifi жана мобилдик статистика: 4 кадам
NodeMCU Lua Арзан 6 $ Board MicroPython Температурасы жана Нымдуулугу менен, Wifi жана Мобилдик Статистика менен: Бул негизи булут аба ырайы станциясы, сиз телефонуңуздагы маалыматтарды текшере аласыз же кээ бир телефонду түз дисплей катары колдоно аласыз NodeMCU түзмөгү менен сиз сыртта температура жана нымдуулук маалыматын жаза аласыз. , бөлмөдө, күнөсканада, лабораторияда, муздатуу бөлмөсүндө же башка жерлерде толук
Батарея менен иштеген офис. Күн системасы Чыгыш/Батыш Күн панелдери жана шамал турбинасы менен: 11 кадам (Сүрөттөр менен)
Батарея менен иштеген офис. Күн системасы Чыгыш/Батыш Күн панелдери жана шамал турбинасы менен которулат: Долбоор: 200 чарчы фут офис батарея менен иштеши керек. Офис ошондой эле бул система үчүн зарыл болгон бардык контроллерлерди, батареяларды жана компоненттерди камтышы керек. Күн жана шамал энергиясы батареяларды заряддайт. Кичине гана көйгөй бар
OLED экраны бар IoT температурасы жана нымдуулугу: 5 кадам (сүрөттөр менен)
OLED экраны менен IoT температурасы жана нымдуулугун өлчөгүч: каалаган убакта OLED экранында температураны жана нымдуулукту текшерип, ошол эле учурда IoT платформасында бул маалыматты чогултуп алыңыз. Бул жакшы долбоор, анткени сиз
Жөнөкөй IoT температурасы жана нымдуулугу: 5 кадам (сүрөттөр менен)
Жөнөкөй IoT температурасы жана нымдуулугун өлчөөчү: Жөнөкөй IoT температурасы жана нымдуулугу өлчөгүч температураны, нымдуулукту жана жылуулук индексин чогултууга мүмкүндүк берет. Андан кийин аларды Adafruit IOго жөнөтүңүз
ESP8266 NodeMCU кирүү чекити (AP) DT11 температура сенсору жана браузердеги басма температурасы жана нымдуулугу менен: 5 кадам
ESP8266 NodeMCU кирүү чекити (AP) DT11 температура сенсору жана браузердеги басуу температурасы жана нымдуулугу бар веб -сервер үчүн: Салам достор, биз ESP8266 колдонгон долбоорлордун көбүндө жана долбоорлордун көбүндө биз ESP8266ды веб -сервер катары колдонобуз, андыктан маалыматтарга жетүү үчүн wifi аркылуу каалаган түзмөк, ESP8266 тарабынан жайгаштырылган Webserverге кирүү менен, бирок бир гана көйгөй, биз үчүн жумушчу роутер керек