Mündəricat:
- Addım 1: Torpaq Sensorları
- Addım 2: Heyvan sensoru
- Addım 3: Su Pompası Nəzarətçisi
- Addım 4: Yağış Sensoru
- Addım 5: Heyvan Sireni
- Addım 6: Əsas Sistem
- Addım 7: Veb Sistemi
Video: Simsiz Bağ Sistemi: 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Bu layihə Arduino -ya əsaslanır və bitkilərinizi sulamağa, tempə, torpağa və yağışa daxil olmaq üçün "modullardan" istifadə edir.
Sistem 2, 4 GHz -ə qədər simsizdir və məlumatları göndərmək və qəbul etmək üçün NRF24L01 modullarından istifadə edir. Bunun necə işlədiyini bir az izah edim PS! İngilis dili 100 % doğru deyilsə, bağışlayın, mən İsveçliyəm.
Bu sistemdən bitkilərimi idarə etmək üçün istifadə edirəm, onları fərqli qeyd etmək üçün lazım olan fərqli bitkilərim var.
Torpağın rütubətini və istiliyini oxuyan (batareyada işləyən) Torpaq sensorlar hər saat yoxlayır və məlumatları wifi bağlantısı olan əsas maşına ötürür. Məlumatlar evimdəki bir serverə yüklənir və bir veb səhifəyə daxil olur.
Torpağın suya ehtiyacı varsa, torpaq sensorunun yoxladığından asılı olaraq düzgün nasosu işə salacaq. Ancaq yağış yağarsa, su verməyəcək. Və həqiqətən isti olsaydı, əlavə su əlavə edəcək.
Tutaq ki, bir kartof torpağınız var, biri tütün və biri pomidor üçün, o zaman 3 fərqli sensoru olan 3 zonaya və 3 nasosa sahib ola bilərsiniz.
Hərəkətləri yoxlayan pir sensorlar da var və veb səhifədə aktivləşdirilərsə, yüksək bir siren heyvanı və ya bitkilərimə yaxın gəzən adamı qorxutmağa başlayacaq.
İnşallah bir az başa düşərsən. İndi som sensorlar istehsal etməyə başlayaq.
Hər şeyi yüklədiyiniz GitHub səhifəm:
Addım 1: Torpaq Sensorları
Hər bir sensorun veb səhifəsinə əlavə edilən unikal nömrəsi var. Belə ki, torpaq sensoru həmin torpaq sensorundan məlumatları ötürəndə düzgün zonaya əlavə olunacaq. Sensor qeydiyyata alınmasa, heç bir məlumat təqdim edilməyəcək.
Bu quruluş üçün sizə lazımdır:
- 1x Atmega328P-PU çipi
- 1x nRF24L01 modulu
- 1x 100 uf kondansatör
- 1x NPN BC547 Transistor
- 2 x 22 pF kondansatörler
- 1x 16.000 MHz Kristal
- 1x Torpaq Nəm sensoru
- 1 x DS18B20 Temperatur sensoru
- 1x RGB Led (Ümumi Anod mənim tərəfimdən istifadə olunur)
- 3x 270 ohm rezistorlar
- 1x4, 7 K ohm müqavimət
- Batareya (3.7v Li-Po batareyası istifadə edirəm)
- Və li-po istifadə edilərsə, batareya üçün şarj cihazı modulu.
Sensorların uzun müddət işləməsi üçün əvvəlcədən hazırlanmış Arduino lövhəsini istifadə etməyin, batareyanı tez boşaldır. Bunun əvəzinə Atmega328P çipini istifadə edin.
Hər şeyi elektrik vərəqimdə göstərildiyi kimi bağlayın. (Şəkilə və ya PDF faylına baxın) Şarj edərkən gücünü kəsə biləcəyiniz üçün bir güc açarı da əlavə etmək tövsiyə olunur.
Kodu yükləyərkən onlara unikal bir şəxsiyyət nömrəsi vermək üçün sensor təyin etməyi unutmayın, kod GitHub səhifəmdə mövcuddur.
Torpaq sensorlarını uzun müddət canlı tutmaq üçün yalnız oxumaq başlayanda onları gücləndirmək üçün NPN tranzistorundan istifadə edirəm. Buna görə də hər zaman aktivləşmirlər, Hər bir sensorun 45XX -dən 5000 -ə qədər bir ID nömrəsi var (bu dəyişdirilə bilər), buna görə də hər sensorun özünəməxsus nömrələri olmalıdır, etməniz lazım olan şey kodda müəyyən etməkdir.
Batareyaya qənaət etmək üçün sensorlar yuxuya gedəcək.
Addım 2: Heyvan sensoru
Heyvan Sensoru sadə bir pir sensorudur. Heyvanlardan və ya insanlardan gələn istiliyi hiss edir. Sensor hərəkəti hiss edirsə. Əsas stansiyaya göndərəcəklər.
Ancaq həyəcan siqnalı olmayacaq, bunu etmək üçün səhifəni aktivləşdirməlisiniz və ya bir taymer qurmusunuzsa, o zaman avtomatik olaraq işə salınacaq.
Əgər baza Heyvan sensorundan hərəkət siqnalı alarsa, onu Siren sensoruna ötürəcək və (ümid edirəm) heyvanı qorxudacaq. Sirenim 119 db -dir.
Pir sensoru batareya ilə işləyir və mən onu köhnə siqnalizasiyadan köhnə pir sensoru qutusuna yerləşdirmişəm. Heyvan sensorundan çıxan kabel yalnız batareyanı doldurmaq üçündür.
Bu sensor üçün sizə lazımdır:
- ATMEGA328P-PU çipi
- 1 x 16000 MHz Kristal
- 2 x 22 pF kondansatör
- 1 x Pir sensor modulu
- 1 x 100 uF kondansatör
- 1 x NRF24L01 modulu
- 1 x Led (burada heç bir RGB led istifadə etmirəm)
- 1 x 220 ohm müqavimət
- Batareyada işləyəcəksinizsə buna ehtiyacınız var (Li-Po istifadə edirəm)
- Batareyanız varsa, şarj cihazı modulu.
- Bir növ güc açarı.
Elektrik lövhəsində gördüyünüz kimi hər şeyi bağlayın. Pir sensorunuzu batareyanızdan enerji ilə təmin edə biləcəyinizi yoxlayın (Bəzi işləmək üçün 5v lazımdır).
Kodu GitHub -dan alın və istifadə edəcəyiniz ifritə sensoru təyin edin (məsələn: SENS1, SENS2 və s.)
ATMEGA çipi yalnız hərəkət qeydiyyata alındıqda oyanacaq. Günahlar pir sensoru modulunda gecikmə üçün taymer quraşdırmışdır ki, kodda bunun üçün heç bir şey yoxdur, buna görə də oyanacaq gecikmə üçün pir sensoru üzərindəki qazanı tənzimləyin.
Heyvan sensoru üçün budur, davam edirik.
Addım 3: Su Pompası Nəzarətçisi
Su nasosunun idarəedicisi tarlalarınızı sulamaq üçün bir nasos və ya su klapanı işə salmaqdır. Bu sistem üçün batareyaya ehtiyac yoxdur, nasosunuzu işə salmaq üçün gücə ehtiyacınız var. Nano. Həm də 12 voltda işləyən bir su klapanı istifadə edən bir nasos növünə ehtiyacım var, bunun üçün röle lövhəsində AC 230 - DC 12v modulu var.
Digəri röle üçün 230 AC -dir, buna görə 230 V AC nasosunu işlədə bilərəm.
Sistem olduqca sadədir, hər bir nasos nəzarətçisinin özünəməxsus id nömrələri var, buna görə də kartof sahəsinin quruduğunu və sensorun avtomatik suya qoyulduğunu söyləyin, sonra kartof sahəsinə aid olan nasosum həmin sensora əlavə olunur, buna görə də torpaq sensoru baza sisteminə suvarmağın başlamalı olduğunu bildirir, buna görə də baza sistemi o pompaya işə salınması üçün bir siqnal göndərir.
Veb səhifədə nə qədər çalışacağını təyin edə bilərsiniz (məsələn, 5 dəqiqə), sensorlar yalnız hər saat yoxlayır. Həm də nasos dayandıqda sistemdəki vaxtı saxlayacaq, belə ki avtomatik sistem tezliklə nasosu işə salmayacaq. (Veb səhifədə qurmaq da mümkündür).
Xüsusi vaxt təyin edərək veb səhifəni gecə/gündüz suvarmağı da dayandıra bilərsiniz. Həm də suvarmağa başlamaq üçün hər bir nasos üçün taymerlər qurun. Və yağış yağsa suvarmazlar.
Ümid edirəm başa düşürsən:)
Bu layihə üçün sizə lazımdır:
- 1 x Arduino Nano
- 1 x NRF24L01 modulu
- 1 x 100 uF kondansatör
- 1 RGB Led (ümumi anod mənim tərəfimdən istifadə olunur)
- 3 x 270 ohm rezistorlar
- 1 x röle lövhəsi
Hər şeyi elektrik hesabatı olaraq bağlayın (pdf faylına və ya şəkilə baxın) GitHub -dan kodu yükləyin və sensor nömrəsini təyin etməyi unutmayın.
İndi bir nasos nəzarətçiniz var, sistem birdən çoxunu idarə edə bilər.
Addım 4: Yağış Sensoru
Yağış sensoru yağışları aşkar etmək üçün istifadə olunur. Birdən çox ehtiyacınız yoxdur. Ancaq daha çox əlavə etmək mümkündür. Bu yağış sensoru batareyadan işləyir və hər 30 dəqiqədən bir yağışın olub olmadığını yoxlayır.
Yağış sensoru analoq və rəqəmsal sancaqlar istifadə edir. Rəqəmsal pin, yağış yağdığını yoxlamaqdır (Rəqəmsal olaraq yalnız bəli və ya yox) və "yağış" barədə xəbərdarlıq etmək üçün (sensordakı suyun səviyyəsi) yağış sensoru modulunun qabını açmalısınız. yağış yağdığını göstərir.)
Analoq pin, sensorda nə qədər nəm olduğunu faizlə bildirmək üçün istifadə olunur.
Rəqəmsal pin, yağış olduğunu algılarsa, sensor onu əsas sistemə göndərəcək. Və "yağışlı" olduğu müddətdə əsas sistem bitkiləri sulamayacaq. Sensor həmçinin nəm və batareyanın vəziyyətini də göndərir.
Yağış sensörünü yalnız rəqəmsal bir pin vasitəsilə təmin edən transistordan oxumaq vaxtı gəldikdə işə salırıq.
Bu sensor üçün sizə lazımdır:
- ATMEGA328P-PU çipi
- 1x 16000 MHz Kristal
- 2 x 22 pF kondansatör
- 1x Yağış sensoru modulu
- 1x 100 uF kondansatör
- 1x NRF24L01 modulu
- 1x RGB Led (Ümumi anod istifadə etdim, GND əvəzinə VCC -dir)
- 3x 270 Ohm rezistorlar
- 1x NPN BC547 tranzistor
- 1x Batareya (Li-Po istifadə edirəm)
- 1x Li-Po Şarj Cihazı modulu (Li-Po batareyası istifadə olunarsa)
Hər şeyi elektrik vərəqində gördüyünüz kimi bağlayın (pdf və ya şəkil) Sonra kodu GitHub səhifəmdə tapa biləcəyiniz kimi ATMEGA çipinə yükləyin Yağış sensoru Doğru id nömrəsini əldə etmək üçün sensoru təyin etməyi unutmayın.
Və indi hər 30 dəqiqədə bir işləyən bir yağış sensoru olacaq, daha az və ya çox istəməsəniz bunun vaxtını dəyişə bilərsiniz.
CounterHandler () funksiyasında çip üçün oyanma vaxtını təyin edə bilərsiniz. Bunu belə hesablayırsınız: Çiplər hər 8 saniyədə bir oyanır və hər dəfə bir dəyər artar. 30 dəqiqə ərzində hərəkət etməzdən əvvəl 225 dəfə alacaqsınız.. Beləliklə, yarım saatda 1800 saniyə var. Beləliklə 8 -ə bölün (1800/8) 225 alacaqsınız. Bu o deməkdir ki, sensoru 225 dəfə işləyənə qədər yoxlamayacaq və bu təxminən 30 dəqiqə olacaq. Eyni şeyi torpaq sensoru üzərində də edirsiniz.
Addım 5: Heyvan Sireni
Heyvan sensoru sirenin aktiv olacağını algıladığı zaman heyvan sirenası sadədir. Əsl siren istifadə edirəm ki, hətta insanları qorxutum. Ancaq yalnız heyvanların eşitdiyi sirenlərdən də istifadə edə bilərsiniz.
Bu layihədə bir Arduino nano istifadə edirəm və onu 12v ilə gücləndirirəm. Siren də 12 voltdur, buna görə də bir rölin yerinə sireni işə salmaq üçün 2N2222A tranzistorundan istifadə edəcəyəm. Eyni yerə sahib olduğunuz zaman bir röle istifadə etsəniz, Arduino -ya zərər verə bilərsiniz. Buna görə sireni işə salmaq üçün bir tranzistordan istifadə edirəm.
Ancaq sireniniz və Arduino eyni zəmindən istifadə etmirsə, bunun yerinə bir röle istifadə edə bilərsiniz. Transistoru və 2.2K rezistorunu atlayın və əvəzinə bir rölə lövhəsi istifadə edin. YÜKSƏDƏN LOW -a keçid aktivləşdirildikdə və pin 10 üçün LOW -dan HIGH -a qədər rəqəmsal oxunuşda aktiv olmadıqda Arduino kodundakı dəyişiklik, röleyi aktivləşdirmək üçün LOW -u istifadə edir və tranzistor HIGH -u istifadə edir, buna görə bunu dəyişməlisiniz.
Bu quruluş üçün sizə lazımdır:
- 1 x Arduino nano
- 1x 2.2K Rezistor (Röle lövhəsindən istifadə etsəniz atlayın)
- 1x 2N2222 Transistor
- 1x Siren
- 3x 270 Ohm Rezistor
- 1x RGB Led (GND əvəzinə ümumi anod, VCC istifadə edirəm)
- 1X NRF24L01 modulu
- 1x 100 uF kondansatör
Elektrikli vərəqdə gördüyünüz kimi hər şeyi PDF -də və ya görüntüdə bağlayın. GitHub səhifəmdə Heyvan Sireni altında tapdığınız kodu Arduino -ya yükləyin Doğru şəxsiyyət nömrəsi üçün sensoru təyin etməyi unutmayın.
Və indi işləyən bir sireniniz var.
Addım 6: Əsas Sistem
Əsas sistem bütün modulların ən əhəmiyyətlisidir. Onsuz bu sistemi istifadə edə bilməzsiniz. Əsas sistem ESP-01 modulu ilə internetə qoşulur və biz onu birləşdirmək üçün Arduino Megas Serial1 pinlərindən istifadə edirik. ESP -də Mega -dan TX -ə qədər, ancaq voltun 3.3 -ə düşməsi üçün iki rezistordan keçməliyik. Və ESP -də Mega -dan TX -ə.
ESP Modulunu qurun
ESP -dən istifadə etmək üçün əvvəlcə onun üzərindəki baud dərəcəsini 9600 -a təyin etməlisiniz, bu layihədə istifadə etdiyim budur və ESP -nin ən yaxşı şəkildə işlədiyini gördüm. Qutudan 115200 baud dərəcəsinə təyin etdi, sınaya bilərsiniz, amma mənimki o qədər də sabit deyildi. Bunu etmək üçün bir Arduino (Mega yaxşı işləyir) lazımdır və ESP TX -ni (vərəqdə gördüyünüz kimi rezistorlar vasitəsilə) Serial TX -ə (Mega istifadə edərkən Serial1 deyil) və ESP -də RX -ni Arduino Serial -a bağlamalısınız. RX.
Göz qırpma eskizini (və ya serialdan istifadə etməyən hər hansı bir eskizi) yükləyin və seriyalı monitoru açın və xətlərdə 11500 və NR & CR -ə baud sürətini təyin edin.
Komanda satırına AT yazın və Enter düyməsini basın. Tamam deyən bir cavab almalısınız, buna görə də indi ESP -nin işlədiyini bilirik. (Əgər əlaqə problemi və ya pis ESP-01 modulu yoxdur)
İndi əmr satırına AT+UART_DEF = 9600, 8, 1, 0, 0 yazın və enter düyməsini basın.
OK ilə cavab verəcək və bu, baud sürətini 9600 olaraq təyin etdiyimiz deməkdir. ESP -ni aşağıdakı əmrlə yenidən başladın: AT+RST və enter düyməsini basın. Serial monitordakı baud sürətini 9600 olaraq dəyişdirin və AT daxil edin və enter düyməsini basın. Tamam geri alsanız, ESP 9600 üçün qurulmuşdur və layihə üçün istifadə edə bilərsiniz.
SD Kart Modulu
İstəyirəm ki, sistem üçün WIFI parametrlərini dəyişək, yeni bir parol dəyişdirilsin və ya wifi adı olsun. Buna görə SD Kart moduluna ehtiyacımız var. SD Kartın içərisində config.txt adlı bir mətn faylı yaradın və oxumaq üçün JSON istifadə edirik, buna görə də JSON formatına ehtiyacımız var. Beləliklə, mətn faylında aşağıdakı mətn olmalıdır:
}
Wi -Fi şəbəkənizi düzəltmək üçün mətni BÜYÜK hərflərlə dəyişdirin.
SPR istifadə edən NRF24L01 və SD Kart Oxuyucudan istifadə etdiyimiz günahlar, SoftwareSPI -dən istifadə etmək üçün SDFat kitabxanasından istifadə etməyimiz lazım olan SPI -dən istifadə edir (SD kart oxuyucusunu istənilən pinlərə əlavə edə bilərik)
DHT Sensoru
Bu sistem xaricində yerləşdirilib və havanın rütubətini və istiliyini yoxlamaq üçün DHT sensoru var. İsti günlərdə əlavə suvarma üçün istifadə olunur.
Bu quruluş üçün sizə lazımdır:
- 1x Arduino Mega
- 1x NRF24L01 Modulu
- 1x ESP-01 Modulu
- 1 x SPI Micro SD Kart Modulu
- 1 x DHT-22 Sensoru
- 1x RGB Led (GND əvəzinə ümumi anod, VCC istifadə etdim)
- 3x 270 Ohm rezistorlar
- 1x 22 K Ohm müqavimət
- 2x 10 K Ohm müqavimət
Diqqət yetirin ki, ESP-01 modulu sabit deyilsə, onu xarici 3.3v enerji mənbəyindən işə salmağa çalışın.
PDF sənədindəki və ya şəkildəki elektrik vərəqində gördüyünüz kimi hər şeyi bağlayın.
Kodu Arduino Mega -ya yükləyin və şərh üçün bütün kodu yoxlamağı unutmayın, çünki hostu birdən çox yerə serverə təyin etməlisiniz (bu mənim bildiyim ən yaxşı həll deyil).
İndi Base sisteminiz istifadəyə hazırdır. Torpaq nəmliyi günahlarının kodundakı dəyişənləri dəyişdirməyə ehtiyac yoxdur, bunu veb səhifədən edə bilərsiniz.
Addım 7: Veb Sistemi
Sistemdən istifadə etmək üçün veb serverə də ehtiyacınız var. Apache, PHP, Mysql, Gettext ilə moruq pi istifadə edirəm. Veb sistemi çox dildir, buna görə də dilinizdə asanlıqla edə bilərsiniz. İsveç və İngilis dili ilə gəlir (İngilis dilində səhv ingilis dili ola bilər, tərcüməm 100 %deyil.) Buna görə də serveriniz üçün Gettext və eyni zamanda yerli proqramları quraşdırmalısınız.
Sizə yuxarıda sistemdən bəzi ekran görüntülərini göstərirəm.
Sadə bir giriş sistemi ilə gəlir və əsas giriş: istifadəçi olaraq admin və şifrə kimi su.
İstifadə etmək üçün üç cron işi qurmalısınız (onları cronjob qovluğunun altında tapırsınız)
Hər saniyədə işləməyiniz lazım olan timer.php faylı. Bu, çuxur sistemi üçün bütün avtomatizasiyanı ehtiva edir. Temperatur.php fayl adı sistemə hava istiliyinin oxunmasını və daxil olmasını bildirmək üçün istifadə olunur. Buna görə nə qədər tez -tez işləyəcəyinizə dair bir cron işi qurmalısınız. Məndə hər 5 dəqiqədən bir var. Sonra dagstatistik.php adlı fayl yalnız gecə yarısından əvvəl (23:30, 23:30 kimi) işləməlidir. Gün ərzində sensorlardan bildirilən dəyərləri alır və həftə və ay statikası üçün saxlayır.
Nəzərə alın ki, bu sistem temperaturu selsiydə saxlayır, ancaq Fahrenheit -ə dəyişə bilərsiniz.
Db.php faylında sistem üçün mysql verilənlər bazası bağlantısını qurursunuz.
Əvvəlcə sistemə sensorlar əlavə edin. Sonra zonalar yaradın və zonalara sensorlar əlavə edin.
Sistemdə suallarınız və ya səhvləriniz varsa, bunları GitHub səhifəsində bildirin. Veb sistemindən istifadə edə bilərsiniz və onu satmağa icazə verilmir.
Gettext üçün yerli dil ilə probleminiz varsa, unutmayın ki, moruqdan server olaraq istifadə etsəniz, adətən en_US. UTF-8 kimi adlandırılır, buna görə bu dəyişiklikləri i18n_setup.php faylında və yerli qovluq altında etməlisiniz. Əks təqdirdə, İsveç dili ilə sıxışacaqsınız.
GitHub səhifəsində yükləyə bilərsiniz.
Tövsiyə:
Açıq havada və ya içəridə Raspberry Pi üzərində qurulmuş Avtomatlaşdırılmış Bağ Sistemi - MudPi: 16 Addım (Şəkillərlə birlikdə)
Açıq və ya qapalı üçün Raspberry Pi üzərində qurulmuş Avtomatlaşdırılmış Bağ Sistemi - MudPi: Bağçılıqdan xoşunuz gəlir, amma onu saxlamağa vaxt tapa bilmirsiniz? Bəlkə bir az susamış və ya hidroponikinizi avtomatlaşdırmaq üçün bir yol axtaran ev bitkiləriniz varmı? Bu layihədə bu problemləri həll edəcəyik və əsaslarını öyrənəcəyik
Mövcud Sensorlardan istifadə edən Arduino Simsiz Siqnal Sistemi: 9 Addım (Şəkillərlə birlikdə)
Mövcud Sensorlardan istifadə edərək Arduino Simsiz Siqnal Sistemi: 433Mhz və ya 315Mhz simsiz siqnal sensoru varsa bu layihə təxminən 20.00 dollar dəyərində təxminən yarım saat ərzində inşa edilə bilər. Həm də infraqırmızı hərəkət detektorları və sazlıqlar kimi simsiz siqnalizasiya sensorları olan tamamilə yeni bir layihə ola bilər
HC12 Simsiz Modulundan istifadə edən Simsiz Arduino Robotu: 7 addım
HC12 Simsiz Modulundan istifadə edən Simsiz Arduino Robotu: Hey uşaqlar, yenidən xoş gəlmisiniz. Əvvəlki yazımda, H Körpü Devrinin nə olduğunu, L293D motor sürücüsü IC, yüksək cərəyanlı motor sürücülərini idarə etmək üçün piggybacking L293D Motor sürücüsü IC və öz L293D motor Sürücü Kartını necə dizayn edə biləcəyinizi izah etdim
Raspbian Stretch -də TP Link WN7200ND USB Simsiz Adaptorlu Əlli Metrlik Simsiz Giriş Nöqtəsi: 6 addım
Raspbian Stretch -də TP Link WN7200ND USB Simsiz Adaptoru ilə Əlli Metr Aralığında Simsiz Giriş Nöqtəsi: Raspberry Pi Təhlükəsiz Simsiz Giriş Nöqtələri yaratmaq üçün əladır, amma yaxşı bir sıra yoxdur, onu genişləndirmək üçün TP Link WN7200ND USB Simsiz Adaptoru istifadə etdim. Necə edəcəyimi paylaşmaq istəyirəm Niyə marşrutlaşdırıcı yerinə moruq pi istifadə etmək istəyirəm? T
DIY Simsiz Mikrofondan Simsiz Gitara Sisteminə: 4 addım
DIY Simsiz Mikrofondan Simsiz Gitara Sisteminə qədər: Bəzi videoları və bəzi qrupları izləyirəm və demək olar ki, hamısı gitara üzərində simsiz sistemdən istifadə edir. Çıldırıram, hərəkət edirəm, gəzirəm və kordon olmadan istədiklərimi edirəm, buna görə də onu tutmağı xəyal edirəm .. Amma .. mənim üçün indi çox bahadır, buna görə gəldim