install DHT Raspbian 10

ทำการ update และ upgrade Raspbian

sudo apt-get update
sudo apt-get upgrade
download libray DHT โดยใช้ของ adafruit
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
เข้า ไปใน folder เพื่อติดตั้ง library
cd Adafruit_Python_DHT
ติดตั้ง Library DHT ด้วยคำสั่ง
sudo python3 setup.py install
ทดลองเข้า folder เพื่อทดสอบการทำงาน
cd examples
sudo ./AdafruitDHT.py 11 8

ModuleNotFoundError: No module named ‘Adafruit_DHT’

ModuleNotFoundError: No module named ‘Adafruit_DHT’
เพราะใน Raspbian ล่าสุดเป็น python3 จึงต้องติดตั้งแบบ python3

ใช้คำสั่ง
sudo python3 setup.py install

Raspberry PI DHT Thingspeak Python3

import Adafruit_DHT

from time import time, sleep

from urllib.request import urlopen

import sys

WRITE_API = “Your ThingSpeak Write API” # Replace your ThingSpeak API key here

BASE_URL = “https://api.thingspeak.com/update?api_key={}”.format(WRITE_API)

SENSOR_PIN = 8 #GPIO 8

SENSOR_TYPE = Adafruit_DHT.DHT11

SensorPrevSec = 0

SensorInterval = 2 # 2 seconds

ThingSpeakPrevSec = 0

ThingSpeakInterval = 120 # 120 seconds

try:

    while True:     

        if time() – SensorPrevSec > SensorInterval:

            SensorPrevSec = time()

            humidity, temperature = Adafruit_DHT.read_retry(SENSOR_TYPE, SENSOR_PIN)

            print(“Humidity = {:.2f}%\tTemperature = {:.2f}C”.format(humidity, temperature))

           if time() – ThingSpeakPrevSec > ThingSpeakInterval:

                  ThingSpeakPrevSec = time()

                  thingspeakHttp = BASE_URL + “&field1={:.2f}&field2={:.2f}”.format(temperature, humidity)

                 print(thingspeakHttp)

                 conn = urlopen(thingspeakHttp)

                 print(“Response: {}”.format(conn.read()))

            conn.close()

            sleep(10)

   except KeyboardInterrupt:

    conn.close()

modify from:https://tutorial.cytron.io/2019/10/16/send-sensors-data-to-thingspeak-using-raspberry-pi/

Raspberry Pi DHT11 DHT22 Temperature and Humidity Sensor Python

sudo pip3 install Adafruit_DHT


แบบที่ 1 

#!/usr/bin/python
import sys
import Adafruit_DHT
while True:
humidity, temperature = Adafruit_DHT.read_retry(11, 8) #DHT11
# humidity, temperature = Adafruit_DHT.read_retry(22, 8) #DHT22
if humidity is not None and temperature is not None:
print (‘Temp={0:0.1f}*C Humidity={1:0.1f} %’.format(temperature, humidity))
else:
print (‘Failed to get reading. Try again!’)

แบบที่ 2

#!/usr/bin/python
import sys
import Adafruit_DHT
import time
sensor=Adafruit_DHT.DHT11 # ใส่อุปกรณ์ที่ใช้ในที่นี้คือ DHT11
#sensor=Adafruit_DHT.DHT22
pin=8 # PIN ของ GPIO ที่เชื่อมต่อกับ DHT
while True:
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
print(‘Temp: {0:0.1f} C Humidity: {1:0.1f} %’.format(temperature, humidity))
else:
print(“Sensor Failure. Check wiring.”);
time.sleep(1);

QuasarARM การกลับมาแก้ตัวอีกครั้ง #8

วันนี้ได้ R35 ขนาด 100 โอห์ม 0805 มาต่อแล้ว ทดลองจ่ายไฟ โลกก็สว่างขึ้นทันที

เท่านี้ก็สุขใจ ระหว่างรอ อุปกรณ์ที่เหลือทยอยมา หาเวลาประกอบอีก board ดู

QuasarARM การกลับมาแก้ตัวอีกครั้ง #7

วันนี้ได้ลองบัดกรี switch powerแและ menu ไล้ตะกั่ว ที่จุด switch UP DOWN LEFT RIGHT OK ครบ พอต่อไฟ กด POWER ก็ทำงาน กด MENU ก็แสดงได้ ยูเรก้าอีกครั้ง เอาสายไฟมาจิ้มครงปุ่มก็เลื่อนได้ โอเคเลย เป้าหมายคือการไปปรับ BACKLIGHT ของ LCD ในเมนู   หาข้อมูลของตารางเมนู จนเจอหวิธีปรับความสว่่าง Backlight ลองตั้ง Level จน 99 ก็ยังไม่สว่าง มานั่งเดาว่าขา 12 ของ STM32 บัดกรีไม่ดีหรือเปล่าหว่า ไล่ไปพบว่า R35 100 โอห์ม 1206 ไม่ได้ใส่ไว้  กำลังสั่งมา  ว่างๆจะเอา 100 โอห์ม 0805 ใส่ไปแทนก่อน    

QuasarARM การกลับมาแก้ตัวอีกครั้ง #6

คราวก่อนเราใช้ไฟ 3.3V จาก USB TTL UART  คราวนี้จะบัดกรีอุปกรณ์เพิ่มเติม โดยตั้งใจจะจ่ายไฟ ด้วยตนเอง และเชื่อม LCD 16×2 สีฟ้า เพื่อดูการทำงาน และเป็นกำลังใจให้ตัวเอง บนหนทางอีกยาวไกล
  • บัดกรี  AMS1117-3.3 ตามแบบต้องใช้ LD1117S33 แต่อันนี้ถอดจากอันเดิมได้ เอามาก่อน ไม่ลืมบัดกรีสาย ต่อ ไปยัง LP2985-33 แค่นี้ CPU ก็ทำงานแล้ว
  • จุดหนึ่งใช้ AMS1117 5 โวลท์ ตามแบบต้องใช้ LD1117S50 ของที่เพิ่งซื้อมายังงี้ แทนกันได้  จ่ายไฟให้กับ LCD มี VR10k อีก 1 ตัว
  • บัดกรี Resistor Capacitor และ Transistor BC846 องค์ประกอบให้ LCD ทำงาน
  • บัดกรี FM IC KT0803L  ส่วนนี้เกือบครบขาด L 1uH กับ Transistor 2SC3356
  • บัดกรี  MC34119
  • บัดกรี 24C08
มาดูที่ board  ต้องใช้ connector แบบยาว เอา LCD มาเชื่อม ลืมซื้ออุปกรณ์ ไม่มี ต้องโมดิฟายอุปกรณ์เอา เสียเวลามาก เชื่อมสายไฟเข้าก่อน AMS ทั้งคู่ต่อ power supply ตั้งไฟ 6V พอพร้อมแล้วจ่ายไฟ พบว่า LED สีฟ้า Diag แว๊บขึ้นมา มองจอ LCD เหมือนมีอะไรแว๊บ แต่มองไม่เห็นจอมืดมาก ลองปรับ VR10k พบตัวอักษร ขึ้นมารางๆ แสดงว่า ทำงานก็ดีใจ   แต่ก็สงสัยว่าทำไม LCD ไม่สว่างเลย  แม่บ้านให้ลูกมาตามไปนอนแล้ววันนี้คงพอแค่นี้ก่อน มีโอกาสพรุ่งนี้จะหาวิธีทำให้ LCD สว่างและทดสอบการทำงานของปุ่มต่างๆ รวมทั้งสั่งซื้ออุปกรณ์ที่เหลือให้ครบ นี่ยังไม่รวม การพัน Searchcoil คอยที่ยังต้องใช้เวลาศึกษาอีกนานสักระยะหนึ่ง  

QuasarARM การกลับมาแก้ตัวอีกครั้ง #5

วันนี้พอมีเวลา ก็ทำการทดลองการ upload  Firmware โดย Download มาจาก https://fandy.ucoz.org/publ/metalloiskatel_quot_kvazar_quot_quot_quasar_quot/metalloiskatel_quot_quasar_arm_quot/2-1-0-5  โดยใช้ Download Firmware รุ่น 2.6.3M ส่วนอุปกรณ์การอัพโหลด ได้ซื้อ FT232 USB to TTL UART มาไว้นานแล้ว และใช้ซอฟต์แวร์ upload ของ STMicroelectronics คือ STM32 Flash loader demonstrator (FLASHER-STM32) https://www.st.com/en/development-tools/flasher-stm32.html ความเข้าใจเดิมคือต้องupload ผ่าน ST-Link V2 ผ่านทาง Single wire interface module (SWIM) ผ่านทางขา NRST SWDCLK SWDIO GND VCC แต่ดูตัวอย่างจากเว็บ youtube ที่มีคนอัพโหลดเฟิร์มแวร์ที่ QuasarARM อุปกรณ์ที่สำเร็จมาแล้ว ก็ผ่าน TTL UART ในการ Upload ครั้งนี้ ใช้
  • ไฟ VCC 3.3V ของ UART บัดกรีขั้วมาลงบอร์ด
  •  GND จาก  UART กับ GND ของ board
  • เชื่อม TX ฝั่ง UART  เข้ากับ RX ของ board
  •  RX ฝั่ง UART เข้ากับ TX ของ board
จากนั้นเสียบ USB TTL เข้ากับคอม  Device Manager แสดง COM5 มาวัดไฟเข้าก็ 3.3V โอเค พร้อม โปรแกรม STM32 Flash loader demonstrator  ระบบแสดง COM5 อัตโนมัติ ปรับ speed จาก 115200 เป็น 9600 เอาแบบช้าแต่ชัวร์ 🙂 กด Next ถ้าระบบเชื่อมกัน จะผ่านไปเมนูถัดไป พอกดปุ่ม โปรแกรมค้างทันที แล้วขึ้น ข้อความ No response from the target,the Boot loader can not be started. Please, verify the boot mode configuration and the flash protection status, Reset your device then try again… ข้อความนี้เห็นมาเยอะมากแล้วใน board เดิม แสดงว่า อุปกรณ์ไม่เชื่อมกัน cpu ไม่ทำงาน ไม่ได้ตั้ง boot mode  แต่นี่เป็น board ใหม่ มีคนทำสำเร็จ YouTube แสดงว่า ต้องมีอะไรผิดพลาด ต้องตรวจสอบอีกครั้ง พบว่า ไม่ได้ต่อไฟ 3.3V อีกจุด จาก IC LP2985-33 เนื่องจาก สั่งของแล้วยังไม่มา จึงต่อสายไฟ เชื่อม 3.3V มาเข้าอีกจุด คราวนี้ลองย้อนการทำงานใหม่ พอกด Next จอก็ขึ้น ยูเรก้า ผ่านแล้ว เท่าที่ดูใน youtube มาจุดนี้นี่สำเร็จไปค่อนนึงแล้ว กด Next จากนั้นกด Next ใส่ชื่อไฟล์ ที่upload ลงไป ผมใช้ QuasarARM_261M.hex จากนั้นกด Next ขั้นตอน load ไปเรื่อยๆ จน upload เสร็จ ยูเรกา อีกครั้ง  

QuasarARM การกลับมาแก้ตัวอีกครั้ง #3

บอร์ด PCB และอุปกรณ์บางส่วนมาแล้ว น่าจะลองเริ่มทำเล่นๆ ได้ แต่ก็รอจน ชุด Capacitor และ Resistor มาถึงได้วันสองวัน แกะดูบอร์ด QuasarARM PCB ปรากฎว่า น่าผิดหวัง คือในเวปบอกว่า เป็น PCB รุ่น 0.6 แต่อันนี้ไม่ระบุรุ่น น่าจะเป็น รุ่น 0.5C ความแตกต่างของรุ่น 0.5 กับ 0.6 อยู่ที่ QuasarARM 0.6 – เพิ่ม IC CP2102 ทำให้ Quasar สามารถ UP Firmware ผ่าน USB ได้
  • เปลี่ยน LD1117 ที่เลี้ยง LCD เป็น LD1117S50
  • เปลี่ยน  LD1117V33 ตัวแรกที่เลี้ยง CPU เป็น LD1117S33 และ LD1117V33 เป็น  LP2985-33 ดูว่า เพื่อความเสถียรภาพทางไฟฟ้าและป้องกันการกวนของคลื่นต่อง CPU
  • เปลี่ยน MCP6022 เป็น LT6203 อันนี้แก้ noise โดยตรง
  • มีวงจรวิทยุ FM IC KT0803L
  • เปลี่ยน LM321 (ผมซื้อมาแล้ว) เป็น BC846 ร่วมกับ 2N7002
  • เปลี่ยน Jack Stereo จาก SJ1-3515 เป็น PJ-327A
ผมได้สั่งซื้ออุปกรณ์บางส่วนอ้างอิง Partlist 0.5 ไป พอมาดูจึงทยอยสั่งอุปกรณ์ของ 0.6 ไป เริ่มต้นการบัดกรี  STM32F100 โดย STM32F100C8 ชุดนี้ เหลือมาจากการซื้อเมื่อปี 2558  ลง PCB  ความยากของที่ต้องเจอที่ขาเล็กมากกกกกก ผมอายุ 40 กว่าปีแล้วสายตาไม่ใช่คนหนุ่มดังนั้น ยิ่งยากเข้าไปใหญ่ ใช้แว่นตาขนาดสายตายาว 110 ทำให้สามารถเห็นชัดเจนขึ้น และอุปกรณ์ช่วยดู ที่เคยซื้อมา นานแล้ว จริงๆแล้วซื้อแว่นช่วยดู มา แต่ปรากฏว่าใช้ประโยชน์อะไรไม่ได้เลย ห่วยมาก ใช้หัวแร้งที่ติดมากับเครื่องเป่าลมร้อน พยายามใจเย็นๆ เหนื่อย ล้าก็หยุด ไม่ดันทุรังต่อ สามารถทำไปได้  3 แผ่น น่าจะรอด 1 แผ่น อีกสองแผ่น ดูแย่หน่อย อาจโดนเป่าออก เพื่อลดความเสียง สั่ง STM32F100C8 มาเก็บไว้ก่อน ของเดิมเหลืออีก 4 สั่งมาอีก  10 ตัว จาก Aliexpress ตัวละ 0.754 us ประมาณ 24 บาทเศษ (1 us 32 บาท)  ถ้ามีเวลาจะลองใส่อุปกรณ์เพิ่มเติม ดูก่อนเพื่อทดสอบ  

QuasarARM การกลับมาแก้ตัวอีกครั้ง #2

สวัสดี ผมทำโปรเจคนี้เริ่มตั้งแต่ต้นเดือนมกราคม 2563 เป็นต้นมา สั่ง PCB  QuasarARM วงจรรุ่นใหม่ เวอร์ชั่น 0.6 จาก PCBWay เจ้าเก่า ซึ่งมีแผ่นรุ่นนี้ขาย รออยู่ 1 เดือนจะได้ของ Capacitor  Resistor Transistor IC ส่วนใหญ่ขนาด 0805 สามารถสั่งทาง Aliexpress ในราคาไม่แพงนัก ถ้าถูก จะรอนานหน่อย ประมาณ 2-3 สัปดาห์ บางอันเป็นเดือน รอได้ไม่รีบ รอมานานหลายปีแว้วววว ชิ้นส่วน บางส่วนได้มากจากของเดิม ที่ซื้อไว้  ตัวผมเองในขณะนี้ น่าจะมีความรู้ความเข้าใจมากขึ้น ไม่ต้องมั่ว เหมือนแต่ก่อน  อุปกรณ์ SMD มีความเข้าใจ เรื่องขนาดที่มีมากมาย ทั้ง  0603 1210 1206 0805  เยอะแยะไปหมด  ความรู้อันนี้นำไปสู่การซื้ออุปกรณ์ที่ถูกต้อง และมีส่วนให้ประกอบแล้ว ทำงานได้ตามมา รวมทั้ง มีคลิป youtube และหลายแหล่ง หลากภาษา มาประกอบความเข้าใจ ทั้งการจัดการเรื่อง upload firmware และจัดการอุปกรณ์ วันนี้พอมีเวลส ลองเอาบอร์ดเดิมกลับมาดูอีกครั้ง ลองแก้ไข บัดกรี วัดวงจร พบว่า ช็อต พยายามแก้ไขแล้วปรากฏว่ามัน ไม่ทำงาน  จึงลองถอดอุปกรณ์บางส่วนย้ายไปยัง PCB เดิม ที่มี STM32 อยู่แล้ว ก็ไม่รอด ดูแล้วยิ่งทำ ยิ่งทำให้ลดทอนกำลังใจ  ดังนั้นผมจึงทิ้งไม่ไปต่อกับบอร์ดเดิม รออุปกรณ์ชุดใหม่ดีกว่า