به نام خدا
نمایش پیام از طریق اینترنت بر روی ال سی دی توسط رزبری پای
در این پروژه قصد داریم تا با استفاده شبکه ی وایرلس پیامی را از طریق رزبری پای بر روی ال سی دی نمایش دهیم. این پیام از طریق یک وبسایت توسط وایرلس به رزبری پای منتقل می شود و سپس بر روی ال سی دی نمایش داده می شود. این پروژه در ادامه ی پروژه های اینتر نت اشیا می باشد.
قطعات مورد نیاز :
رزبری پای ۳ ( یا هر مدل دیگر)
اداپتر وایفای یو اس بی ( اگر که از رزبری پای سه استفاده نمی کنید)
ال سی دی ۲ در ۱۶
برد برد
کابل تغذیه ی رزبری پای
سیم برد بردی
پتانسیومتر ۱۰ کیلو
نحوه ی کار و ساخت وبسایت:
در این پروزه قطعه ی اصلی رزبری پای است و تمامیه عملیات را کنترل می کند. همانند راه اندازی درایور ، دریافت پیام از سرور و ….
در اینجا یک وب سرور با استفاده از Flask in a web browser ایجاد کردیم که راهی برای ارسال پیام برای رزبری پای می باشد. Flask یک فریم ورک کوچک برای پایتون است. در آن جا یک صفحه ی وب ایجاد کردیم و در آن جایی برای تایپ و دکمه ای برای ارسال ایجاد کردیم. صفحه ی وب با استفاده از زبان html نوشته شده است که در زیر مشاهده می کنید.
<h1>Web Control Notice Board (Circuit Digest)</h1> </div> <div data-role="content"> <form method="post" action="change"> <label for="slider-1">Notice Message:</label> <input type="text" name="lcd" id="lcd" /> <br /> <input type="submit" value="Submit" /> </form> {% if value %} <p>Notice Submitted Successfully: {{ value }}</p> {% endif %} </div>
کاربر تنها نیاز دارد تا کد داده شده را در یک فایل txt ذخیره کند. سپس این فایل را در کنار فایل کد پایتونی که در انتها داده شده است قرار دهد. حال تنها کافی ست تا کد پایتون را رزبری پای اجرا کنید و سپس IP_address_of_your_Pi:8080 را در مرور گر وب بزنید (مثل ۱۹۲٫۱۶۸٫۱٫۱۴:۸۰۸۰). سپس پیام را تایپ کرده و ارسال را بزنید. همینکه ارسال را بزنید بر روی ال س دی پیام را مشاهده می کنید.
بعد از آن می تواید خطی اضافه کنیم که صحت ارسال پیام بر روی رزبری پای را به ما ثابت کند.
{% if value %} <p>Notice Submitted Successfully: {{ value }}</p> {% endif %}
این کد بررسی میکند که آیا متن مورد نظر به درستی به رزبری پای منتثل شده است یا نه.
شماتیک و توضیحات مدار :
اتصالات این مدار بسیار ساده است. تنها کافی ست با استفاده از تعدادی سیم رابط ال سی دی را به رزبری پای متصل کنیم. از یک پتانسیو متر ۱۰ کیلو اهمی می توان برای تنظیم میزان کنتراست ال سی دی استفاده کرد. در زیر تمامیه اتصالات بین قطعات را مشاهده می کنید.
دانلود کد برنامه :
دانلود فایلfrom flask import Flask from flask import render_template, request import RPi.GPIO as gpio import os, time app = Flask(__name__) RS =18 EN =23 D4 =24 D5 =16 D6 =20 D7 =21 HIGH=1 LOW=0 OUTPUT=1 INPUT=0 gpio.setwarnings(False) gpio.setmode(gpio.BCM) gpio.setup(RS, gpio.OUT) gpio.setup(EN, gpio.OUT) gpio.setup(D4, gpio.OUT) gpio.setup(D5, gpio.OUT) gpio.setup(D6, gpio.OUT) gpio.setup(D7, gpio.OUT) def begin(): lcdcmd(0x33) lcdcmd(0x32) lcdcmd(0x06) lcdcmd(0x0C) lcdcmd(0x28) lcdcmd(0x01) time.sleep(0.0005) def lcdcmd(ch): gpio.output(RS, 0) gpio.output(D4, 0) gpio.output(D5, 0) gpio.output(D6, 0) gpio.output(D7, 0) if ch&0x10==0x10: gpio.output(D4, 1) if ch&0x20==0x20: gpio.output(D5, 1) if ch&0x40==0x40: gpio.output(D6, 1) if ch&0x80==0x80: gpio.output(D7, 1) gpio.output(EN, 1) time.sleep(0.0005) gpio.output(EN, 0) # Low bits gpio.output(D4, 0) gpio.output(D5, 0) gpio.output(D6, 0) gpio.output(D7, 0) if ch&0x01==0x01: gpio.output(D4, 1) if ch&0x02==0x02: gpio.output(D5, 1) if ch&0x04==0x04: gpio.output(D6, 1) if ch&0x08==0x08: gpio.output(D7, 1) gpio.output(EN, 1) time.sleep(0.0005) gpio.output(EN, 0) def lcdwrite(ch): gpio.output(RS, 1) gpio.output(D4, 0) gpio.output(D5, 0) gpio.output(D6, 0) gpio.output(D7, 0) if ch&0x10==0x10: gpio.output(D4, 1) if ch&0x20==0x20: gpio.output(D5, 1) if ch&0x40==0x40: gpio.output(D6, 1) if ch&0x80==0x80: gpio.output(D7, 1) gpio.output(EN, 1) time.sleep(0.0005) gpio.output(EN, 0) # Low bits gpio.output(D4, 0) gpio.output(D5, 0) gpio.output(D6, 0) gpio.output(D7, 0) if ch&0x01==0x01: gpio.output(D4, 1) if ch&0x02==0x02: gpio.output(D5, 1) if ch&0x04==0x04: gpio.output(D6, 1) if ch&0x08==0x08: gpio.output(D7, 1) gpio.output(EN, 1) time.sleep(0.0005) gpio.output(EN, 0) def lcdprint(Str): l=0; l=len(Str) for i in range(l): lcdwrite(ord(Str[i])) begin() lcdprint("Circuit Digest") lcdcmd(0xc0) lcdprint("Welcomes You") time.sleep(5) @app.route("/") def index(): return render_template('web.html') @app.route("/change", methods=['POST']) def change(): if request.method == 'POST': # Getting the value from the webpage data1 = request.form['lcd'] lcdcmd(0x01) lcdprint(data1) return render_template('web.html', value=data1) if __name__ == "__main__": app.debug = True app.run('192.168.1.14', port=8080,debug=True)
دیدگاهها (0)