فهرست مطالب:
- مرحله 1: ایستگاه هواشناسی کوتاه با Attiny85: فرستنده
- مرحله 2: ایستگاه هواشناسی کوچک با Attiny85: گیرنده
- مرحله 3: ایستگاه هواشناسی کوچک با Attiny85/45: صفحه نمایش
- مرحله 4: مینی ایستگاه هواشناسی با Attiny85/45: امکانات/نتیجه گیری
- مرحله 5: ایستگاه هواشناسی کوتاه: آنتن
- مرحله 6: افزودن BMP180
تصویری: مینی ایستگاه هواشناسی با Attiny85: 6 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
Indigod0g اخیراً یک ایستگاه هواشناسی کوچک را توصیف کرد که با استفاده از دو آردوینو بسیار خوب کار می کند. شاید همه مایل نباشند 2 آردوینو را قربانی رطوبت و دما کنند و من نظر دادم که می توان عملکرد مشابهی را با دو Attiny85 انجام داد. من حدس می زنم صحبت آسان است ، بنابراین بهتر است پولم را جایی بگذارم که دهانم در آنجا باشد.
در حقیقت ، اگر دو دستورالعمل قبلی را ترکیب کنم ، نوشتم:
رابط LCD 2-Wire برای Arduino یا Attiny و دریافت و ارسال داده بین Attiny85 (Arduino IDE 1.06) و سپس بیشتر کار در حال حاضر انجام شده است. فقط باید کمی نرم افزار را وفق دهید.
من یک راه حل ال سی دی دو سیمه با یک شیفت رجیستر را انتخاب کردم ، نه یک LCD I2C ، زیرا در Attiny اجرای شیفت آسانتر از گذرگاه I2C است. با این حال … اگر به عنوان مثال می خواهید سنسور فشار BMP180 یا BMP085 را بخوانید ، به هر حال برای آن نیاز به I2C دارید ، بنابراین ممکن است از LCD I2C نیز استفاده کنید. TinyWireM یک کتابخانه خوب برای I2C در Attiny است (اما به فضای بیشتری نیاز دارد).
BOM فرستنده: DHT11 Attiny85 10 ماژول فرستنده مقاومت 433 مگاهرتز
گیرنده Attiny85 10k مقاومت 433 مگاهرتز ماژول گیرنده
صفحه نمایش 74LS164 shift shift 1N4148 دیود 2x1k مقاومت 1x1k مقاومت متغیر یک صفحه نمایش LCD 2x16
مرحله 1: ایستگاه هواشناسی کوتاه با Attiny85: فرستنده
فرستنده یک پیکربندی بسیار اساسی از Attiny85 با مقاومت کششی در خط تنظیم مجدد است. یک ماژول فرستنده به پین دیجیتال '0' وصل شده است و پین داده DHT11 به پین 4 دیجیتال متصل می شود. یک سیم 17.2 سانتی متری را به عنوان آنتن وصل کنید (برای آنتن بسیار بهتر مرحله 5 را ببینید). نرم افزار به شرح زیر است:
// روی Attiny // RF433 = D0 پین 5 کار می کند
// DHT11 = D4 پین 3 // کتابخانه ها #شامل // از راب تیلارت #شامل dht DHT11 ؛ #define DHT11PIN 4 #dexine TX_PIN 0 // pin جایی که فرستنده شما متصل است // متغیرها float h = 0؛ شناور t = 0 ؛ int transmit_t = 0؛ int transmit_h = 0؛ int transmit_data = 0؛ void setup () {pinMode (1، INPUT)؛ man.setupTransmit (TX_PIN ، MAN_1200) ؛ } void loop () {int chk = DHT11.read11 (DHT11PIN)؛ h = DHT11. رطوبت ؛ t = DHT11.temperature؛ // می دانم ، من از 3 متغیر صحیح در اینجا استفاده می کنم // جایی که می توانم از 1 // استفاده کنم ، اما این فقط به این دلیل است که می توان transmit_h = 100* (int) h را دنبال کرد؛ transmit_t = (int) t ؛ transmit_data = transmit_h+transmit_t؛ man.transmit (transmit_data) ؛ تأخیر (500) ؛ }
این نرم افزار از کد منچستر برای ارسال داده ها استفاده می کند. DHT11 را می خواند و دما و رطوبت را در 2 شناور جداگانه ذخیره می کند. از آنجا که کد منچستر شناور ارسال نمی کند ، بلکه یک عدد صحیح است ، من چندین گزینه دارم: 1- شناورها را به دو عدد صحیح تقسیم کرده و آنها را ارسال کنید 2- هر شناور را به صورت یک عدد صحیح ارسال کنید 3- دو شناور را به عنوان یک عدد صحیح ارسال کنید با گزینه 1 من باید ترکیب کنم اعداد صحیح دوباره در گیرنده شناور می شود و من باید تشخیص دهم که کدام عدد صحیح چیست و کد طولانی می شود. با گزینه 2 ، من هنوز باید تشخیص دهم که کدام عدد صحیح برای رطوبت و کدام برای دما است. در صورتی که یک عدد صحیح در انتقال از بین برود ، نمی توانم به تنهایی دنبال کنم ، بنابراین باید یک شناسه متصل به یک عدد صحیح ارسال کنم. با گزینه 3 ، می توانم فقط یک عدد صحیح را ارسال کنم. بدیهی است که این امر خواندن را کمی دقیق تر می کند - در یک درجه- و نمی توان دمای زیر صفر را ارسال کرد ، اما این فقط یک کد ساده است و راه هایی برای حل آن وجود دارد. در حال حاضر این فقط در مورد اصل است. بنابراین آنچه من انجام می دهم این است که شناورها را به اعداد صحیح تبدیل می کنم و رطوبت را با 100 ضرب می کنم. سپس دما را به رطوبت ضرب شده اضافه می کنم. با توجه به این واقعیت که رطوبت هرگز 100 the نخواهد بود حداکثر عددی که من دریافت می کنم 9900 است. با توجه به این واقعیت که درجه حرارت نیز بالاتر از 100 درجه نخواهد بود ، حداکثر عدد 99 خواهد بود ، بنابراین بالاترین عددی که ارسال می کنم 9999 است و به راحتی در طرف گیرنده جدا می شود. محاسبه من که در آن از 3 عدد صحیح استفاده می کنم بیش از حد است زیرا می توان به راحتی با 1 متغیر انجام داد. من فقط می خواستم کد را آسان تر دنبال کنم. کد اکنون به صورت زیر کامپایل می شود:
اندازه طرح باینری: 2 ، 836 بایت (حداکثر 8 ، 192 بایت) به طوری که در Attiny 45 یا 85 توجه داشته باشید ، کتابخانه dht.h که من استفاده می کنم کتابخانه Rob Tillaart است. آن کتابخانه همچنین برای DHT22 مناسب است. من از نسخه 1.08 استفاده می کنم. با این حال ممکن است Attiny85 در نسخه های پایین تر کتابخانه با خواندن DHT22 مشکل داشته باشد. برای من تأیید شده است که 1.08 و 1.14 - اگرچه در Arduino معمولی کار می کنند - در خواندن DHT22 در Attiny85 مشکل دارند. اگر می خواهید از DHT22 در Attiny85 استفاده کنید ، از نسخه 1.20 این کتابخانه استفاده کنید. همه اینها با زمان بندی انجام می شود. نسخه 1.20 کتابخانه دارای خواندن سریعتر است. (با تشکر از تجربه کاربری Jeroen)
مرحله 2: ایستگاه هواشناسی کوچک با Attiny85: گیرنده
دوباره از Attiny85 در پیکربندی اولیه استفاده می شود و پین Reset با مقاومت 10 k بالا کشیده شده است. ماژول گیرنده به پین دیجیتال 1 (پایه 6 روی تراشه) متصل شده است. LCD به پین های دیجیتال 0 و دو متصل شده است. سیم 17.2 سانتی متری را به عنوان آنتن وصل کنید. کد به شرح زیر است:
#عبارتند از
#شامل LiquidCrystal_SR LCD (0 ، 2 ، TWO_WIRE) ؛ #تعریف RX_PIN 1 // = پین فیزیکی 6 void setup () {lcd.begin (16، 2)؛ lcd.home ()؛ man.setupReceive (RX_PIN ، MAN_1200) ؛ man.beginReceive ()؛ } void loop () {if (man.receiveComplete ()) {uint16_t m = man.getMessage ()؛ man.beginReceive ()؛ lcd.print ("مرطوب:") ؛ ال سی دی چاپ (m/100) ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("Temp") ؛ lcd.print (m 100 100) ؛ }}
کد نسبتاً ساده است: عدد صحیح منتقل شده در متغیر 'm' دریافت و ذخیره می شود. این عدد بر 100 تقسیم می شود تا رطوبت ایجاد شود و مدول 100 دما را نشان می دهد. بنابراین فرض کنید عدد صحیح دریافت شده 33253325/100 = 333325٪ 100 = 25 این کد به عنوان 3380 بایت کامپایل می شود و بنابراین فقط با attiny85 قابل استفاده است ، نه با 45
مرحله 3: ایستگاه هواشناسی کوچک با Attiny85/45: صفحه نمایش
برای صفحه نمایش بهتر است به دستورالعمل خود در صفحه دو سیم اشاره کنم. به طور خلاصه ، یک صفحه نمایش معمولی 16x2 از shiftregister استفاده می کند تا بتواند با دو پین دیجیتال کار کند. البته اگر ترجیح می دهید از صفحه نمایش آماده I2C استفاده کنید ، یعنی امکان پذیر است ، اما سپس باید پروتکل I2C را در Attiny پیاده سازی کنید. پروتکل Tinywire می تواند این کار را انجام دهد. اگرچه برخی منابع می گویند که انتظار می رود یک ساعت 1 مگاهرتز باشد ، من در استفاده از آن در 8 مگاهرتز (در پروژه دیگری) مشکلی نداشتم.
مرحله 4: مینی ایستگاه هواشناسی با Attiny85/45: امکانات/نتیجه گیری
همانطور که گفته شد ، من این دستورالعمل را برای نشان دادن این که می توان یک ایستگاه هواشناسی کوچک با دو attiny85 (حتی با یک attiny85+ 1 attiny45) ساخت ، ایجاد کرد. فقط با استفاده از DHT11 رطوبت و دما را ارسال می کند. با این حال ، Attiny دارای 5 پین دیجیتالی برای استفاده است ، 6 حتی با برخی حیله ها. بنابراین می توان داده ها را از سنسورهای بیشتری ارسال کرد. در پروژه من- همانطور که در تصاویر روی نوار صفحه و روی یک PCB حرفه ای (OSHPark) دیده می شود- من داده ها را از DHT11 ، از LDR و از PIR ارسال می کنم/دریافت می کنم ، همه با استفاده از هر دو محدودیت در استفاده از attiny85 به عنوان گیرنده ارائه داده ها به سبک پر زرق و برق است. از آنجا که حافظه محدود است: متن هایی مانند "دما ، رطوبت ، سطح نور ، نزدیک شدن موضوع" فضای حافظه با ارزش را به سرعت پر می کند. با این وجود ، هیچ دلیلی برای استفاده از دو آردوینو فقط برای ارسال/دریافت دما و رطوبت وجود ندارد. علاوه بر این ، این امکان وجود دارد بخواهید فرستنده بخوابد و فقط بیدار شود تا داده ها را هر 10 دقیقه یکبار ارسال کرده و در نتیجه از سلول دکمه تغذیه کنید. بدیهی است که نه تنها داده های دما یا رطوبت قابل ارسال است بلکه می توان آرایه ای از فرستنده های کوچک را ارسال کرد رطوبت خاک را نیز بخوانید ، یا بادسنج یا باران سنج اضافه کنید
مرحله 5: ایستگاه هواشناسی کوتاه: آنتن
آنتن بخش مهمی از هر 433 مگاهرتز است. من آنتن استاندارد 17.2 سانتی متری "میله ای" را آزمایش کرده ام و با آنتن سیم پیچ کوتاه معاشقه کرده ام. آنچه به نظر می رسد بهترین کار را می کند ، آنتن بارگذاری شده با سیم پیچ است که ساخت آن آسان است. طراحی از بن شولر است و ظاهراً در مجله "Elektor" منتشر شده است. پیاده سازی PDF با شرح این "آنتن هوای خنک 433 مگاهرتز" آسان است. (پیوند ناپدید شد ، اینجا را بررسی کنید)
مرحله 6: افزودن BMP180
آیا می خواهید سنسور فشار فشار مانند BMP180 را اضافه کنید؟ دستورالعمل دیگر من را در این مورد بررسی کنید
توصیه شده:
مینی ایستگاه هواشناسی با استفاده از آردوینو و ThingSpeak: 4 مرحله
مینی ایستگاه هواشناسی با استفاده از آردوینو و ThingSpeak: سلام به همه. در این دستورالعمل ، من شما را از طریق مراحل ایجاد یک ایستگاه هواشناسی کوچک شخصی راهنمایی می کنم. همچنین ، ما از API ThingSpeak برای بارگذاری داده های آب و هوا در سرورهای خود استفاده می کنیم ، وگرنه هدف از وضعیت آب و هوا چیست
ایستگاه هواشناسی NaTaLia: ایستگاه آب و هوایی خورشیدی آردوینو به درستی انجام شد: 8 مرحله (همراه با تصاویر)
ایستگاه هواشناسی NaTaLia: ایستگاه آب و هوایی خورشیدی آردوینو به درستی انجام شد: پس از 1 سال عملیات موفق در 2 مکان مختلف ، من برنامه های پروژه ایستگاه هواشناسی خورشیدی خود را به اشتراک می گذارم و توضیح می دهم که چگونه به یک سیستم تبدیل شده است که می تواند در مدت زمان طولانی زنده بماند. دوره های انرژی خورشیدی اگر دنبال کنید
ایستگاه هواشناسی DIY و ایستگاه حسگر WiFi: 7 مرحله (همراه با تصاویر)
DIY Weather Station & WiFi Sensor Station: در این پروژه نحوه ایجاد ایستگاه هواشناسی به همراه ایستگاه حسگر WiFi را به شما نشان خواهم داد. ایستگاه حسگر داده های دما و رطوبت محلی را اندازه گیری می کند و آنها را از طریق WiFi به ایستگاه هواشناسی ارسال می کند. سپس ایستگاه هواشناسی t
ایستگاه هواشناسی مینی آردوینو UNO: 5 قدم
Arduino UNO Mini-Weather Station: این اولین نسل ایستگاه مینی هواشناسی مبتنی بر Arduino من با اتصال wi-fi است که قادر است داده ها را با استفاده از پلت فرم ThingSpeak بصورت آنلاین به صورت عمومی ارسال کند. ایستگاه هواشناسی داده های زیر را در رابطه با آب و هوا و محیط
ایستگاه هواشناسی Acurite 5 در 1 با استفاده از Raspberry Pi و Weewx (سایر ایستگاه های هواشناسی سازگار هستند): 5 مرحله (همراه با تصاویر)
ایستگاه هواشناسی Acurite 5 در 1 با استفاده از Raspberry Pi و Weewx (دیگر ایستگاه های آب و هوایی سازگار هستند): وقتی ایستگاه هواشناسی Acurite 5 in 1 را خریداری کردم ، می خواستم بتوانم آب و هوا را در خانه ام بررسی کنم. وقتی به خانه رسیدم و آن را راه اندازی کردم ، متوجه شدم که یا باید صفحه نمایش را به کامپیوتر وصل کنم یا هاب هوشمند آنها را بخرم ،