Blog of science and life

/Hack /Life /Math /Programming
Contact
Archives

Elixir note


Module

  • Bắt đầu bằng chữ in hoa và dạng CamelCase

  • Chứa các function, các function phải viết trong một module.

  • Có thể viết dạng Module.Part.One. Chỉ là syntactic sugar.

defmodule Bot.Chat do
  def hello do
    IO.puts "Hi there"
  end
end

Bot.Chat.hello()

Function

  • Phải viết trong một module

  • Giá trị return là dòng cuối, không giống như Python phải return something

  • Tên function viết thường, vi_du_nhu_the_nay

  • ? trả về true hoặc false, ! ám chỉ function có thể raise runtime error

  • defdefmodule là các macro, ko phải keyword

defmodule MyTool.Math do
  def sum(a, b) do
    a + b
  end

  def multiply(a, b), do: a * b

  def sub(a, b \\ 0) do
    a - b
  end
end
  • Dùng |> (pipeline), kết quả trả về được đưa vào args đầu tiên của function đằng sau
prev() |> next(arg1, arg2) == next(prev(), arg1, arg2)
  • Arity là số args của một function. Rất quan trọng vì trong một module có thể def nhiều function tên giống nhau nhưng khác về args nhận vào.
defmodule Foo do
  def add(a) do
    a
  end

  def add(a, b) do
    a + b
  end
end

# Ở đây ta có 2 func: Foo.add …

Ý tưởng mới: Hôm nay tôi tiết kiệm được bao nhiêu?


Ý tưởng mới: Hôm nay tôi tiết kiệm được bao nhiêu?

Chúng ta rất ngại việc phải ghi lại chi tiết từng đồng một họ tiêu pha, vì điều đó làm ta hối hận khi nhìn lại.

Nhưng nếu ta ghi lại những thứ mà ta tiết kiệm được thì sao?

Smart

Ví dụ:

  • Hôm nay tôi muốn ăn gà rán + hamberger, nhưng thay vì đó tôi đã đi ăn cơm ở gần nhà. Thay vì tốn 120k, thì tôi chỉ mất có 30k. Tiết kiệm được 90k và lại còn đỡ béo hơn nhiều.
  • Hôm nay tôi muốn mua một thứ rất ngầu trên mạng. Nhưng thay vì thế tôi ngồi suy nghĩ lại và thấy mình cũng ko có nhu cầu sử dụng nó. Vì thế tôi tiết kiệm được khoảng $50.
  • Hôm nay tôi muốn đi nhậu ghê gớm, nhưng thay vì thế tôi mua 1 chai bia và ít đồ khô về ăn, và tôi tiết kiệm được khoảng $80 cho những cuộc ăn chơi hát hò. Tôi lại còn có thêm thời gian để đọc sách và làm việc nữa.

Và cứ thế, dần rồi sẽ cộng lên, và có thêm cả bảng tính xem với …


Dùng Raspberry Pi để gửi và nhận SMS với Sim900A


Hướng dẫn kết nối module Sim900A với Raspberry Pi 3 B+, dùng để gửi và nhận tin nhắn SMS

Dạo này vì lý do công việc nên cần phải tìm cách kết nối và sử dụng module Sim900A với con Raspberry Pi 3, dùng để nhận SMS.

Tìm hiểu mấy hôm, rất là cực nên hôm nay mình viết lại bài này, cho những ai cần tới sau này đỡ tốn thời gian mày mò lại từ đầu.

Chuẩn bị

Để bắt đầu, bạn cần:

  • Một combo Raspberry Pi 3 B+ đầy đủ nguồn, thẻ nhớ, đã cài đặt Raspbian

  • Một module Sim900A

  • Dây chuyển đổi USB — UART PL2303 (Có thể không có)

  • Đầy đủ dây nối

Kết nối

Chỉ cần bạn kết nối đúng các cổng Tx, Rx, Gnd và nguồn 5v vào Pi là xong. Tham khảo ảnh dưới:

Ảnh thực tế (Nếu kết nối thẳng vào GPIO)

Còn nếu kết nối qua USB

Cài đặt

Đầu tiên ta cần mở cổng ttyS0

Bạn có thể dùng “raspi-config” để mở UART:

  1. Trong “Interfacing Options”, chọn “Serial”

  2. Chọn “No” khi được hỏi “You want a login shell over serial?”.

  3. Chọn “Yes” khi được hỏi “You want the hardware enabled …


« Page 2 / 3 »