সুচিপত্র:

বিজ্ঞাপন-ব্লকিং Neopixels: 11 ধাপ
বিজ্ঞাপন-ব্লকিং Neopixels: 11 ধাপ

ভিডিও: বিজ্ঞাপন-ব্লকিং Neopixels: 11 ধাপ

ভিডিও: বিজ্ঞাপন-ব্লকিং Neopixels: 11 ধাপ
ভিডিও: মোবাইলের বিজ্ঞাপন বন্ধ করার উপায় how to ad blocking in mobile 2024, জুলাই
Anonim
বিজ্ঞাপন-ব্লকিং Neopixels
বিজ্ঞাপন-ব্লকিং Neopixels

আমি আমার রাস্পবেরি পাই শূন্যের সাথে সংযুক্ত নিওপিক্সেলের একটি স্ট্রিপের জন্য একটি সহজ ওয়েবসাইটকে রিমোট হিসাবে তৈরি করতে চেয়েছিলাম এবং পাই-হোল ব্যবহার করে আমার নেটওয়ার্কে বিজ্ঞাপন ব্লক করার জন্য এটি ব্যবহার করতে থাকলাম। প্রথমে আমি আমার রুমে কিছু এলইডি যোগ করতে চেয়েছিলাম, কিন্তু সবকিছুকে তারের সাথে সংযুক্ত করে আমি বুঝতে পেরেছিলাম যে তাদের সুবিধামত নিয়ন্ত্রণ করার কোন উপায় নেই। তাই আমি অ্যাপাচি সার্ভার পাই-হোল ইন্সটলার ইতিমধ্যেই সেট আপ করে কিছু বেসিক কন্ট্রোল অপশন সহ একটি সহজ ওয়েবসাইট তৈরি করার সিদ্ধান্ত নিয়েছি। আমি www- ডাটা রুট পারমিশন দিয়েছি, যা একটি নিরাপত্তা ঝুঁকি, তাই আপনার অবশ্যই ওয়েব সার্ভারটি বাইরের জগতের জন্য উপলব্ধ নয়। এটি মূলত আমার নিজের ডকুমেন্টেশনের জন্য শুরু হয়েছিল এবং একরকম আমার প্রথম নির্দেশযোগ্য হওয়ার চেয়ে;) তাই আমি সত্যিই প্রশংসা করব যদি আপনি যদি কিছু অস্পষ্ট হয় বা আমি সম্পূর্ণরূপে কিছু মিস করি তা উল্লেখ করতে পারি।

ধাপ 1: ব্যবহৃত উপকরণ

  • রাস্পবেরি পাই (আমি একটি পাই 2 এ শুরু করেছিলাম এবং তারপর WH তে পরিবর্তিত হয়েছিল, জিপিও পিনগুলি কিছুটা ভিন্ন হতে পারে তবে অন্যথায় প্রতিটি মডেল ঠিক আছে)

    • আপনার যদি ওয়াইফাই ছাড়া আরপিআই থাকে তবে ওয়াইফাই অ্যাডাপ্টারটিও কার্যকর।
    • রাস্পবেরি পাই এর জন্য চ্ছিকভাবে একটি কেস
  • 2 পুরুষ-মহিলা জাম্পার তার (উদাহরণস্বরূপ)
  • Neopixels ws2811 (আমি এগুলো ব্যবহার করেছি)
  • RPi এর জন্য 1 10W পাওয়ার সাপ্লাই (একটি পুরানো ফোন চার্জার করবে)
  • নিওপিক্সেলগুলির জন্য 1 ~ 50W পাওয়ার সাপ্লাই (আমি এইরকম একটি ব্যবহার করেছি, তবে সম্ভবত একটি ছোটটি যথেষ্ট হবে, তবে যদি আপনি আরও এলইডি চান তবে আপনার সম্প্রসারণের জন্য কিছু জায়গা বাকি আছে।)
  • মহিলা জ্যাক সংযোগকারী প্লাগ (এই মত)

পদক্ষেপ 2: অপারেটিং সিস্টেম প্রস্তুত করুন

অপারেটিং সিস্টেম প্রস্তুত করুন
অপারেটিং সিস্টেম প্রস্তুত করুন

Raspberrypi.org থেকে সর্বশেষ সংস্করণ রাসবিয়ান ডাউনলোড করুন এই প্রকল্পের জন্য লাইট সংস্করণটি ভাল, যদি আপনি অন্য কোন কিছুর জন্য রাস্পবেরি পাই ব্যবহার করার পরিকল্পনা করেন এবং আপনি গুই দিয়ে সম্পূর্ণ সংস্করণ ইনস্টল করার কথা ভাবতে পারেন। তারপর আমি ইচার দিয়ে ছবিটি পুড়িয়ে দিলাম। তারপরে এটি আমার ওয়াইফাই নেটওয়ার্কের সাথে সংযুক্ত হবে তা নিশ্চিত করার জন্য আমি এসডি কার্ডের বুট ডিরেক্টরিতে wpa_supplicant.conf যোগ করেছি। ফাইলের বিষয়বস্তু এইরকম হওয়া উচিত:

~~~

ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdev update_config = 1

নেটওয়ার্ক = {

ssid = "SSID"

psk = "পাসওয়ার্ড"

key_mgmt = WPA-PSK}

~~~

Ssh সক্ষম করতে আমি একই ডিরেক্টরিতে ssh (কোন এক্সটেনশন ছাড়াই) নামে একটি ফাইল তৈরি করেছি। এটি নিশ্চিত করবে যে আপনি আপনার ল্যানের অন্য কম্পিউটার থেকে সবকিছু কনফিগার করতে সক্ষম হবেন।

ধাপ 3: Neopixels সংযোগ

Neopixels সংযোগ
Neopixels সংযোগ
Neopixels সংযোগ
Neopixels সংযোগ

প্রথমে আমি মহিলা জ্যাক সংযোগকারীতে পাওয়ার সাপ্লাই প্লাগ করেছি এবং একটি ক্ষেত্রে RPi রেখেছি। আমি জ্যাক কানেক্টরের নেগেটিভ সাইডে লেডস (ব্লু ক্যাবল) এবং একটি জাম্পার তারের একটি পুরুষ দিক থেকে গ্রাউন্ড ক্যাবলটি স্ক্রু করেছি। জাম্পার তারের অন্য প্রান্তটি আমি জিপিও হেডারের একটি গ্রাউন্ড পিনের সাথে সংযুক্ত করেছি, আমি পিন 6 ব্যবহার করেছি কিন্তু আপনি যে সঠিক পিনগুলি ব্যবহার করতে পারেন তা নির্ভর করবে আপনি যে মডেলটি ব্যবহার করছেন তার উপর নির্ভর করবে।

দ্বিতীয়ত আমি জ্যাক সংযোগকারীর ইতিবাচক প্রান্তে 5v তারের এলইডি (লাল তারের) থেকে সংযুক্ত করেছি। আমার নেতৃত্বে তাদের একটি অতিরিক্ত গ্রাউন্ড ক্যাবল এবং ডাটা ক্যাবল (হোয়াইট ক্যাবল) এ একটি জাম্পার ওয়্যার সংযোগকারী ছিল। আমি কেবল অতিরিক্ত গ্রাউন্ড কেবল উপেক্ষা করেছি, এটি আমার সেটআপের জন্য অপ্রয়োজনীয় ছিল। ডেটা ক্যাবলে আমি জিপিও পিন 12 দিয়ে একজন পুরুষকে মহিলা জাম্পার তারের সাথে সংযুক্ত করেছি, আবার আপনার সঠিক পিনটি ব্যবহার করা উচিত তা আপনার RPi- এর উপর নির্ভর করে। তারপর আমি আরপিআই এবং পিক্সেলের জন্য আমার পাওয়ার সাপ্লাই প্লাগ করেছি। যদি সবকিছু সঠিকভাবে তারযুক্ত হয় তবে লেডগুলি অল্প সময়ের জন্য আলোকিত হয়েছিল।

ধাপ 4: RPi শুরু করুন

RPi শুরু করুন
RPi শুরু করুন

RPi কে বুট করার জন্য এক মিনিট বা তারও বেশি সময় দেওয়ার পরে, আমি nmap দিয়ে রাস্পবেরি থেকে IP ঠিকানাটি দেখলাম। কিন্তু যেকোনো নেটওয়ার্ক স্ক্যানার, আপনার রাউটারের তথ্য প্যানেল বা বেশিরভাগ ক্ষেত্রে কেবল "raspberrypi.local" কাজ করবে। সেই তথ্যের সাথে আমি RPi এর সাথে ssh এর মাধ্যমে সংযুক্ত হয়েছি। ডিফল্ট ব্যবহারকারী হল পাসওয়ার্ড রাস্পবেরি দিয়ে pi। তাই প্রথম লগইন করার পরে আমি সরাসরি 'passwd' ব্যবহার করে পরিবর্তন করেছি। আপনি যদি আপনার স্থানীয় নেটওয়ার্কের বাইরে থেকে ssh এর মাধ্যমে আপনার pi অ্যাক্সেস করতে চান, তাহলে আপনার ফেল 2ban এবং কী অথেন্টিকেশন দেখা উচিত। আমার ব্যক্তিগতভাবে এর জন্য ব্যবহারের কেস নেই, তাই আমি এটি কেবল একটি পাসওয়ার্ড দিয়ে ছেড়ে দেব।

দ্বিতীয়ত আমি `sudo apt update && sudo apt upgrade -Y` ব্যবহার করে সফটওয়্যারটি আপডেট করেছি। লিবারি `sudo apt-get install scons swig git python-dev build-essential -Y` কম্পাইল করার জন্য আমার কিছু অতিরিক্ত সফটওয়্যারেরও প্রয়োজন ছিল। তারপরে আমি জেরেমি গারফের গিথুব `গিট ক্লোন https:// github.com/jgarff/rpi_ws281x.git` তে চমৎকার লিবারি কপি করেছি। তারপরে লিবারি ক্লোন করা হয়েছিল আমি rpi_ws281x ডিরেক্টরিতে গিয়েছিলাম, স্কন ব্যবহার করেছি এবং তারপর `sudo python python/setup.py install` দিয়ে libary ইনস্টল করেছি। পাইথন/উদাহরণগুলিতে একটি সুন্দর ডেমো "strandtest.py" সত্যিই ঝরঝরে অ্যানিমেশন সহ যা আপনি 'সুডো পাইথন পাইথন/উদাহরণ/strandtest.py' দিয়ে শুরু করতে পারেন।

ধাপ 5: পাই-হোল

পাই-হোল
পাই-হোল

নেটওয়ার্ক বিস্তৃত অ্যাড ব্লকার তৈরি করতে, পাই-হোল নিখুঁত। এটি শুধু `sudo curl -sSL https://install.pi-hole.net | bash`। চমৎকার অংশ হল এটি একটি ওয়েব সার্ভারও সেট-আপ করবে।

ইন্সটলার চালানোর পর আপনি আপনার রাউটারের অ্যাডমিন সাইটে লগ ইন করতে চান এবং আপনার RPi কে একটি স্ট্যাটিক আইপি-অ্যাড্রেস দিতে চান এবং DHCP সার্ভার হিসেবে সেট আপ করতে চান। আপনি যদি আপনার পিআই-হোল এর চেয়ে কম ইজারার সময় নির্ধারণ করেন তবে এখনই কাজ করা উচিত।

ধাপ 6: লাইট নিয়ন্ত্রণ করুন

লাইট নিয়ন্ত্রণ করুন
লাইট নিয়ন্ত্রণ করুন
লাইট নিয়ন্ত্রণ করুন
লাইট নিয়ন্ত্রণ করুন
লাইট নিয়ন্ত্রণ করুন
লাইট নিয়ন্ত্রণ করুন

নিওপিক্সেল নিয়ন্ত্রণের সবচেয়ে সহজ উপায় হল ছোট পাইথন প্রোগ্রাম। কিন্তু প্রতিবার আপনি ssh ব্যবহার করতে চান যখন আপনি লাইট চালু করতে চান তা অসুবিধাজনক, বিশেষ করে একটি মোবাইল ডিভাইসে। তাই আমি রিমোট কন্ট্রোল হিসাবে একটি ছোট ওয়েবসাইট ব্যবহার করার সিদ্ধান্ত নিয়েছি। এটি একটি নিরাপত্তা ঝুঁকি, কারণ আমি পাসওয়ার্ড যাচাই ছাড়াই www-data রুট অনুমতি দিয়েছি। আপনি সম্ভবত এই সাইটটি আপনার ল্যানের বাইরে উপলব্ধ করা উচিত নয়।

পিআই -হোল এবং হালকা রিমোটের ড্যাশবোর্ডের মধ্যে নির্বাচন করা সহজ করার জন্য, আমি ব্যবহারকারীকে 'sudo chown -R pi/var/www.html` দিয়ে/var/www/html- এ লিখতে অ্যাক্সেস দিয়েছি এবং আমি একটি তৈরি করেছি index.php ফাইল/var/www/html/। কিছু সহজ মত:

~~~

সূচক পাই হোল লাইট রিমোট

~~~

ভাল. তারপরে আমি নিওপিক্সেল থেকে সবকিছু একসাথে রাখার জন্য লাইট নামে একটি নতুন ফোল্ডার তৈরি করেছি। এখানে আমি libre থেকে strandtest.py এর উপর ভিত্তি করে colour.py তৈরি করেছি।

~~~

নিওপিক্সেল আমদানি থেকে * # কিছু লাইব্রেরি আমদানি করুন

আমদানি sys

def led (স্ট্রিপ, কালার, স্টার্ট, এন্ড): # এলইডি কল করার জন্য একটি ফাংশন তৈরি করুন

আমি পরিসরে (শুরু, শেষ):

strip.setPixelColor (i, color)

strip.show ()

BRIGHTNESS = int (sys.argv [4]) # কমান্ডলাইনের চতুর্থ প্যারামিটার হবে উজ্জ্বলতা। (1-255)

COUNT = 50 # LDS PIN = 12 # RPi তে ব্যবহৃত পিন

FREQ_HZ = 800000 # হার্টজে LED সিগন্যাল ফ্রিকোয়েন্সি (সাধারণত 800khz)

DMA = 5 # DMA চ্যানেল সিগন্যাল উৎপাদনের জন্য ব্যবহার করুন (5 চেষ্টা করুন)

INVERT = মিথ্যা # সংকেত উল্টানোর জন্য সত্য (NPN ট্রানজিস্টার লেভেল ব্যবহার করার সময়

স্ট্রিপ = Adafruit_NeoPixel (COUNT, PIN, FREQ_HZ, DMA, INVERT, BRIGHTNESS)

strip.begin ()

R = int (sys.argv [1]) # লাল পরিমাণ হল প্রথম প্যারামিটার

G = int (sys.argv [2]) # সবুজের পরিমাণ দ্বিতীয় প্যারামিটার

B = int (sys.argv [3]) # নীল পরিমাণ তৃতীয় প্যারামিটার

চেষ্টা করুন:

লেডস (স্ট্রিপ, কালার (R, G, B), 0, 49) #বেছে নেওয়া রং এবং উজ্জ্বলতা দিয়ে শুরু করতে হবে।

কীবোর্ড ব্যতীত:

রঙ (ফালা, রঙ (0, 0, 0), 0, 49)

~~~

যদি আপনি টার্মিনালে সুডো দিয়ে এটি চালান তবে লাইটগুলি নির্দিষ্ট রঙে চলতে হবে। Www-data sudo অনুমতি দিতে আমি রুট ব্যবহারকারীর অধীনে সরাসরি sudoers ফাইলে (/etc/sudoers) `www-data ALL = (ALL) NOPASSWD: ALL)` যোগ করেছি।

ধাপ 7: ব্রাউজারের সাহায্যে লাইট চালু করুন

তারপর আমি anonther index.php তৈরি করেছি, এইবার /লাইটে। ~~~

< ?php $R = 100; $G = 100; $B = 100; $BRIGHTNESS = 100; exec("sudo python colour.py $R $G $B $BRIGHTNESS"); ?>

~~~

যখন আমি এখন raspberrypi.local/lights/index.php পরিদর্শন করি তখন এলইডি সাদা হয়ে যাবে। যদিও এটি একটি চমৎকার শুরু, আমি অন্তত একটি রিমোট কিছু বোতাম আছে পছন্দ।

ধাপ 8: ব্রাউজার থেকে লাইট নিয়ন্ত্রণ করুন

আমি একটি এইচটিএমএল ফর্ম ব্যবহার করে বোতাম সহ একটি ইন্টারফেস তৈরি করেছি। আমি এমন কিছু করতে অপছন্দ করি যা প্রয়োজন হয় না, তাই আমি আমার হেডার, ফুটার এবং প্রধান পিএইচপি কোড দিয়ে টেমপ্লেট নামে একটি ফোল্ডার তৈরি করেছি।

~~~

~~~

বোতামগুলি কাজ করার জন্য আমি একটি টেমপ্লেট তৈরি করেছি BasicControl.php। এর মধ্যে আমি কোডটি নির্দিষ্ট করেছি যা একটি বোতাম চাপলে কার্যকর করা উচিত। কারণ আমি স্ট্র্যান্ডটেস্ট অ্যানিমেশন পছন্দ করেছি আমি সেইটিও অন্তর্ভুক্ত করেছি। স্ট্র্যান্ডটেস্ট অসীম দীর্ঘ অব্যাহত থাকবে, তাই আমি যখনই চাই প্রক্রিয়া বন্ধ করার জন্য আরেকটি বোতাম তৈরি করেছি।

~~~ <? php

$ I = 100;

$ R = 0;

$ জি = 0;

$ B = 0;

যদি (isset ($ _ POST ['strandtest_start'])) {exec ("sudo python strandtest.py"); }

অন্যথায় যদি (isset ($ _ POST ['strandtest_stop'])) {exec ("sudo pkill -9 -f strandtest.py"); }

অন্যথায় যদি (isset ($ _ POST ['red'])) {$ R = 255; $ জি = 0; $ B = 0; exec ("sudo python colour.py $ R $ G $ B $ I"); }

অন্যথায় যদি (isset ($ _ POST ['green'])) {$ R = 0; $ G = 255; $ B = 0; exec ("sudo python colour.py $ R $ G $ B $ I"); }

অন্যথায় যদি (isset ($ _ POST ['blue'])) {$ R = 0; $ জি = 0; $ B = 255; exec ("sudo python colour.py $ R $ G $ B $ I"); }

অন্যথায় যদি (isset ($ _ POST ['white'])) {$ R = 255; $ G = 255; $ B = 255; exec ("sudo python colour.py $ R $ G $ B $ I"); }

অন্যথায় যদি (isset ($ _ POST ['off'])) {shell_exec ('sudo python off.py'); }

অন্যথায় যদি (isset ($ _ POST ['reboot'])) {shell_exec ('sudo reboot now') }?>

~~~

ধাপ 9: হেডার এবং পাদলেখের জন্য একটি টেমপ্লেট তৈরি করুন

এখন এটি সব কাজ করে, কিন্তু এটি দেখতে খুব সুখকর নয়। হেডার এবং ফুটার আমদানি করার পর সাইটের সমস্ত উপাদান পাওয়া যায়, শুধু স্টাইল করা হয় না।

Header.php:

~~~

আলো

ল্যাম্পজেস

মৌলিক নিয়ন্ত্রণ

উন্নত নিয়ন্ত্রণ

~~~

এবং footer.php:

~~~

~~~

ধাপ 10: কিছু সিএসএস এটি সব কিছু একটু ভাল দেখতে

কিছু সিএসএস এটি সব কিছু একটু ভাল দেখায়
কিছু সিএসএস এটি সব কিছু একটু ভাল দেখায়

আপনি হয়তো লক্ষ্য করেছেন, আমি লেআউট নিয়ন্ত্রণ করতে একটি CSS ফাইল ব্যবহার করছি। আমার রিমোট ছোট স্ক্রিনে ব্যবহারযোগ্য তা নিশ্চিত করার জন্য আমি অটোর্যাপ সহ কিছু CSS ফ্লেক্সবক্স ব্যবহার করেছি।

~~~

/ * হালকা নিয়ন্ত্রণ ইন্টারফেসের জন্য স্টাইলশীট *

* প্রতিটি পৃষ্ঠায় প্রযোজ্য */

শরীর {পটভূমি-রঙ: f9fcfa; ফন্ট-পরিবার: এরিয়াল; মার্জিন: 0; }

h1 {রঙ: সাদা; পাঠ্য-সারিবদ্ধকরণ: কেন্দ্র; }

p {font-family: verdana; ফন্ট সাইজ: 20px; }

h2 {}

/ * হেডার */

। হেডার {উচ্চতা: 10%; প্রদর্শন: ফ্লেক্স; justify-content: flex-start; সারিবদ্ধ আইটেম: কেন্দ্র; মার্জিন: 0px; প্যাডিং-বাম: 5%; পটভূমি:#3F51B5; সারিবদ্ধ আইটেম: কেন্দ্র; }

. HeaderLinks {রঙ: সাদা; }

.navbar {প্রদর্শন: ফ্লেক্স; ফ্লেক্স: 30%; ন্যায্যতা-সামগ্রী: স্থান-চারপাশে; পটভূমি রঙ: #3F51B5; সাদা রং; }

/ * পাদলেখ */

.ফুটার {পটভূমি-রঙ: #3F51B5; উচ্চতা: 10%; পাঠ্য-সারিবদ্ধকরণ: কেন্দ্র; }

/ * Index.php */

.buttons {প্রদর্শন: ফ্লেক্স; flex-direction: সারি; flex-wrap: মোড়ানো; justify-content: space-between; উচ্চতা: 80%; align-items: flex-start; }

.buttons_index {প্যাডিং: 0%; সীমানা-প্রস্থ: পাতলা; সীমানা-শৈলী: কঠিন; বর্ডার-কালার: কালো; ব্যাকগ্রাউন্ড-কালার: #3949ab; সাদা রং; ফন্ট-পরিবার: সান-সেরিফ; প্রস্থ: 24%; উচ্চতা: 20%; }

.buttons_index: হোভার {প্যাডিং: 0%; সীমানা-প্রস্থ: পাতলা; সীমানা-শৈলী: কঠিন; বর্ডার-কালার: কালো; পটভূমি রঙ: #536DFE; সাদা রং; ফন্ট-পরিবার: সান-সেরিফ; প্রস্থ: 24%; উচ্চতা: 20%; }

~~~

ধাপ 11: আপনাকে ধন্যবাদ

এবং এটাই. সবকিছু আমার জন্য কাজ করে এবং আমি আশা করি এটি আপনার জন্যও কাজ করবে যদি আমার নির্দেশাবলী চেষ্টা করুন। যদি আপনি কিছু কোড অনুলিপি করার চেষ্টা করেন, তাহলে আমাকে এখানে এটি আপলোড করার জন্য কয়েকটি স্পেস যোগ করতে হয়েছিল, তাই কোডটি আবার কার্যকর হওয়ার আগে আপনাকে সেগুলি মুছে ফেলতে হবে।

আমি আশা করি আপনি সবকিছু পড়ে উপভোগ করেছেন। যদি আপনার মতামত থাকে, আমি এটা শুনতে চাই!

প্রস্তাবিত: