আমি কীভাবে কোনও HTML পৃষ্ঠায় অভ্যন্তরীণ সেন্সর থেকে তাপমাত্রা প্রদর্শন করব?


14

আমি কেবল এটিতে প্রবেশ করছি এবং আমি যখন এসএসএইচের মাধ্যমে টেম্পলটি প্রদর্শন করতে পারি, তখন আমি এটির সামান্য ওয়েবপৃষ্ঠায় এটি প্রদর্শন করার সাথে লড়াই করছি যা আমি আমার পাই চালিয়ে যাওয়া অ্যাপাচি 2 তে সেটআপ করছি। আমি এই উদাহরণটি অনুসরণ করেছি http://www.raspberrypi.org/phpBB3/viewtopic.php?t=35487&p=310038 যা সিজি-বিন ডিরেক্টরিতে কিছু AJAX এবং একটি স্ক্রিপ্ট অন্তর্ভুক্ত করেছিল, তবে আমি এটি বলতে $ was not definedএবং সত্যই নিখুঁত বলে একটি ত্রুটি পেয়েছি জাভাস্ক্রিপ্ট সহ আমার ত্রুটি রয়েছে বলে আমার কোনও ধারণা নেই। আমি ভাবছি এটি সিজি-বিন ডিরেক্টরি হতে পারে কিনা। আমি এটি স্রেফ তৈরি করেছি এবং স্ক্রিপ্টগুলির জন্য এর ব্যবহার সক্ষম করার জন্য আমাকে বিশেষ কিছু করতে হবে কি না সে সম্পর্কিত তথ্য সন্ধান করতে পারিনি। আমার পক্ষে কেউ কি এই প্রশ্নের উত্তর দিতে পারবেন? যদি এটি প্রাসঙ্গিক হয় তবে আমি রাস্প্বিয়ান এর সর্বশেষ সংস্করণটি চালাচ্ছি।

শেষ পর্যন্ত, আমি একটি ডাটাবেসে মানগুলি লগ করতে চাই এবং এটি থেকে গ্রাফ, তবে প্রথমে জিনিসগুলি। :)

প্রধান প্রশ্ন হ'ল আমি কীভাবে অভ্যন্তরীণ সেন্সর থেকে আমার ওয়েবপৃষ্ঠায় তাপমাত্রা প্রদর্শন করতে পারি?

সম্পাদনা

আমি বাড়ি ফিরে আসার পরে প্রথম পরামর্শটি পরে রাতে চেষ্টা করব, তবে আমি দ্রুত দ্বিতীয়টি (লেনিক) পেয়েছিলাম যা ভাল কাজ করছে বলে মনে হচ্ছে। এটির কাজ পেতে গেলেও আমাকে কিছু সম্পাদনা করতে হয়েছিল। স্ক্রিপ্টটি আরআরডি ফাইল তৈরি করতে পারে না তাই আমি স্ক্রিপ্টটিতে তিনি যে বাক্যটি ব্যবহার করেছিলেন সেটি ব্যবহার করে নিজেই এটি তৈরি করেছি। আমি UPDATEকমান্ডটিও সংশোধন করেছি যেহেতু এটি যে মানটিকে দেওয়া হচ্ছে তা পছন্দ করে না। আমাকে কমান্ড widthথেকে অংশটি সরিয়ে ফেলতে হয়েছিল GRAPHকারণ এটি ত্রুটিও ছুঁড়েছে। তারপরে শেষে, আমি একটি যুক্ত cpকরেছি যাতে এটি ফাইলটির ওয়েবসাইটের ইমেজ ডিরেক্টরিতে রাখে এবং তারপরে যুক্ত হয়*/5 * * * * /home/root/scripts/temprec.sh >/dev/null 2>&1 আমার ক্রন্টব এ তাই প্রতি 5 মিনিটে এটি চলে। এটি কাজ করছে বলে মনে হচ্ছে তবে এখন পর্যন্ত মাত্র 4 টি নমুনা নিয়ে এটি নিশ্চিত করে জানা মুশকিল। আমার সম্পাদনাগুলি যদি কাজ করে থাকে তবে এক ঘন্টা বা তার মধ্যে আমার আরও ভাল ধারণা হবে।

#!/bin/bash
#
# update .rrd database with CPU temperature
#
# $Id: update_cputemp 275 2013-05-16 05:20:56Z lenik $
# Thanks to Lenik @ Raspberrypi.stackexchange.com.
cd /path/to/scripts
# read the temperature and convert .59234. into .59.234. (degrees celsius)
TEMPERATURE=`cat /sys/class/thermal/thermal_zone0/temp`
TEMPERATURE=`echo -n ${TEMPERATURE:0:2}; echo -n .; echo -n ${TEMPERATURE:2}`
/usr/bin/rrdtool update cputemp.rrd N:$TEMPERATURE
/usr/bin/rrdtool graph cputemp.png DEF:temp=cputemp.rrd:cputemp:AVERAGE LINE2:temp#00FF00
cp /path/to/scripts/cputemp.png /path/to/website/images

উত্তর:


16

$ শব্দগুলি মনে হচ্ছে আপনি jQuery ব্যবহার করার চেষ্টা করছেন । যদি এটি হয় তবে আপনি এটি ডাউনলোড করে ইনস্টল করতেও পারেন।

যেহেতু আপনি পাইতে আছেন তাই আমি টর্নেডো ব্যবহার করে আপনার নিজের ওয়েব অ্যাপ্লিকেশনটি লেখার চেষ্টা করার পরামর্শ দেব । এটি পাইথন (পাই এর পছন্দসই ভাষা) ব্যবহার করে লেখা হয়েছে এবং এটি ব্যবহার করে ওয়েব অ্যাপ্লিকেশন তৈরি করা আমার পক্ষে সর্বদা সহজ মনে হয়।

'Sudo apt-get ইনস্টল পাইথন-টর্নেডো' ব্যবহার করে এটি ইনস্টল করুন। আমি কেবল একটি নমনীয় টর্নেডো ওয়েব-অ্যাপ্লিকেশন লিখেছি, যা আপনি চেষ্টা করতে পারেন (আমি এটি পরীক্ষা করতে পারিনি), অন্য কোনও ফোরামের পোস্ট থেকে কোনও ফাংশন নিয়ে :

#!/usr/bin/env python

import tornado.ioloop
import tornado.web
import os

class MainHandler(tornado.web.RequestHandler):
    def getCPUtemperature( self ):
        res = os.popen('vcgencmd measure_temp').readline()
        return(res.replace("temp=","").replace("'C\n",""))

    def get(self):
        self.write( "Temperature: %s" % ( self.getCPUtemperature() ) )

application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

আপনি যদি এই প্রোগ্রামটি চালনা করেন ( chmod +x yourprogram.py ; ./yourprogram.py), আপনার ব্রাউজারটি HTTP: //raspberrypi.local: 8888 / এ নির্দেশ করতে এবং আউটপুটটি দেখতে সক্ষম হওয়া উচিত ।

আপডেট: আমি বাড়িতে উপরোক্ত স্ক্রিপ্টটি চেষ্টা করেছি এবং এটি কার্যকর হয়। সুন্দর না, তবে এটি একটি শুরু!


এর জন্য ধন্যবাদ. আমি আজ রাতে বাড়ি এলে আমি এটিকে যেতে যাচ্ছি কারণ এর পেছনের ধারণাটি আমার পছন্দ হয়েছে।
ট্রিডো

13

কিছুক্ষণ আগে আমি একই প্রবন্ধটি নিয়ে " আরএসডিটিওল সহ সিপিইউ তাপমাত্রা পর্যবেক্ষণ করা " রাস্পবেরি পাই :: একটি নিবন্ধ লিখেছিলাম । আমার সমাধানের মধ্যে সিপিইউ থেকে তাপমাত্রা পাওয়া, এটি বৃত্তাকার-রবিন ডাটাবেসে সংরক্ষণ করা এবং .PNG ফাইল হিসাবে একটি দুর্দান্ত গ্রাফ তৈরি করা অন্তর্ভুক্ত, এটি ওয়েব পৃষ্ঠায় রাখা খুব সহজ - আপনি যেখানে খুশি সেখানে অনুলিপি করুন। আমি আশা করি আপনি এটি দরকারী পাবেন।

এখানে চিত্র বর্ণনা লিখুন


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

2

আমি বিশ্বাস করি আপনি আপনার আরপিআই থেকে ডেটা ধরে এবং স্ট্রিম করতে এবং গিটহাবের এই প্যাকেজটির সাথে ব্রাউজারে এম্বেড করতে পারেন ।

গ্রাফটি কেমন দেখাচ্ছে তা এখানে: https://plot.ly/~jensb89/12/

একবার আপনি আপনার গ্রাফটি তৈরি করে ফেললে, আপনি এটিকে এই স্নিপেটের সাথে ইফ্রাম হিসাবে এম্বেড করতে পারেন:

<iframe id="igraph" src="https://plot.ly/~abhishek.mitra.963/1/400/250/" width="400" height="250" seamless="seamless" scrolling="no"></iframe>

আপনি কোডটিতে আপনার URL টি অদলবদল করতে চান। আপনার যদি কোনও সমস্যা থাকে বা আমি যে কোনও কিছুতে সহায়তা করতে পারি তবে আমাকে জানান। এছাড়াও, আমি প্লটলির অংশ, যা এই প্যাকেজে ব্যবহৃত হয়েছিল।

এটি কেমন দেখাচ্ছে তা এখানে:

এখানে চিত্র বর্ণনা লিখুন


এটি দেখতে খুব সুন্দর লাগছে।
ট্রিডো

1

এখানে অন্যান্য উত্তর চমত্কার। শেল স্ক্রিপ্ট এবং পিএইচপি ব্যবহার করে আমার সমাধানটি নিম্নরূপ:

দয়া করে নোট করুন আমি এটি রাস্পবিয়ান হুইজিতে করেছি তাই আমার সমস্ত কোডের অবস্থানটি /var/www/। আপনি যদি জেসি ব্যবহার করছেন তবে এটি '/ var / www / html /' এ থাকা দরকার

প্রথমে ব্যবহারকারীকে রুটে স্যুইচ করতে দেয় (সুপার ব্যবহারকারী):

  • sudo su (এবং আপনার পাসওয়ার্ড লিখুন)

সঠিক জায়গায় পেতে:

  • cd /var/www/ (হুইজি)

এখন সেখানে একটি নতুন ডিরেক্টরি তৈরি করুন:

  • mkdir scripts

এটিকে সঠিক গুণাবলী দিন:

  • chmod 755 scripts/

এখন এটিতে একটি নতুন ফাইল তৈরি করুন, যাকে একে 'টেম্পশ' বলুন lets

  • nano scripts/temp.sh

নিম্নলিখিত কোড লিখুন:

#!/bin/bash

cpuTemp0=$(/opt/vc/bin/vcgencmd measure_temp)
cpuTemp0=${cpuTemp0//\'C/}
cpuTemp0=${cpuTemp0//temp=/}

echo CPU: $cpuTemp0 > /var/www/include/temp.txt

Ctrl+X- Y- Enterসংরক্ষণ এবং প্রস্থান করতে।

এখন এই ফাইলটির বৈশিষ্ট্যগুলি সেট করুন:

  • chmod 755 scripts/temp.sh

এখন একটি নতুন ডিরেক্টরি তৈরি করুন

  • mkdir include/

এর বৈশিষ্ট্যগুলি সেট করুন

  • chmod 744 include/

ঠিক আছে, এখন স্ক্রিপ্টটি চালাতে দিন এবং এর আউটপুটটি পরীক্ষা করতে দিন:

  • cd scripts/
  • ./temp.sh
  • cd ../include/
  • cat temp.txt

এটি এমন কিছু প্রদর্শন করা উচিত:

53.5

অসাধারণ! এখন, মিনিট একবার চালানোর জন্য এটি পেতে দিন। আমরা ক্রন্টবায় একটি নতুন লাইন প্রবেশ করব।

  • crontab -e

নীচের লাইনটি ফাইলের নীচে আটকান

* * * * * /var/www/scripts/temp.sh

Ctrl+X- Y- Enterসংরক্ষণ এবং প্রস্থান করতে।

এখন আমাদের পৃষ্ঠাটি সম্পাদনা করতে হবে যেখানে তাপমাত্রা প্রদর্শিত হবে। সুতরাং আমরা পিএইচপি ফাইল সম্পাদনা করতে যান:

  • cd /var/www/
  • nano index.php

এবং এটি <div>আপনার পছন্দ অনুসারে সন্নিবেশ করান :

<?php require_once("include/temp.txt"); ?>&#176;C

এটা এটা করবে। কেবল আপনার পৃষ্ঠাটি পুনরায় লোড করুন এবং আপনার সিপিইউ এবং জিপিইউ টেম্পগুলি প্রদর্শিত হচ্ছে।

যুক্ত বোনাস: আমি পৃষ্ঠাটি প্রতিবার লোড করতে বাধ্য করতে চাই (ব্রাউজারটিকে তাপমাত্রা ক্যাশে করা থেকে বিরত রাখতে হবে) এটি করার জন্য, আমি ফাইলের একেবারে প্রথম দিকে নীচের পিএইচপি অন্তর্ভুক্ত করছি:

<?php
    header("Cache-Control: no-cache, no-store, must-revalidate");
    header("Pragma: no-cache");
    header("Expires: 0");
?>

দ্রষ্টব্য: এটি আমার পক্ষে কাজ করার কারণটি হ'ল এটি কোনও সংস্থা "ড্যাশবোর্ড", আমার অফিসে একটি টিভিতে একটি পৃষ্ঠাতে প্রদর্শিত হয় যা পুরো গ্রাফের (সার্ভারের স্থিতি, ব্যবহারকারীর সংখ্যা, লোড গড়, ইত্যাদি) দেখায়, ইত্যাদি)। আমি পাইসকে কিওস্ক মোডে রাখার জন্য সেট করেছি (আইসওয়েসেল ব্যবহার করে বুটে ফুল স্ক্রীন ব্রাউজার) এবং একক পৃষ্ঠা দেখায় যা নীচে স্বয়ংক্রিয়ভাবে স্ক্রোল হয়। উপরে থেকে উপরে আসতে প্রায় 4 থেকে 5 মিনিট সময় লাগে এবং তারপরে নীচে হিট হয়ে গেলে স্বয়ংক্রিয়ভাবে পুনরায় লোড হয়। সুতরাং এটি ক্লায়েন্ট-সাইড টেক ব্যবহার করে আমার জন্য তাপমাত্রা প্রদর্শন আপডেট করার প্রয়োজনটিকে বাইপাস করে একবারে পুনরায় লোড করে না। আমি এটি ব্যবহারকারীর এজেন্টের ভিত্তিতে বিভিন্ন সিএসএস / জেএস ব্যবহার করে দেখার জন্য সেট আপ করেছি (কোনও স্ক্রোলিং নেই, কোণায় কোনও বর্তমান সময় নেই, নীচে কোনও পুনরায় লোড নেই), তবে সেই সংস্করণে আমি '

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.